繁体   English   中英

使用 Apache Beam 处理非结构化数据的最佳实践

[英]Best Practice for processing unstructured data with Apache Beam

我们使用 Airflow 进行作业调度,并为 ETL 步骤调用 Apache Beam。 数据源是非结构化文件(批处理),需要对其进行解析才能将其转换为 PCollections。 在我看来,可用的两个最佳选择是:

  1. 将预处理节点添加到 Airflow DAG 以解析文件并写入 Parquet 文件,然后由 Beam 处理。
  2. 在 Beam 中编写自定义 IO 连接器来解析非结构化文件并创建 PCollection。

哪个选项更适合 Beam 最佳实践?

如果您以后需要将这些文件重新用于其他管道,并且解析这些非结构化文件需要花费大量时间,我会投票支持 1)。

另一方面,如果解析这些文件可以并行运行并且您不需要等待所有文件都准备好,那么我会选择 2)。

无论如何,我认为这将取决于您的需求和输入数据。

在我看来,ETL 最重要的部分不是它完美运行时的作用; 但是你如何处理拒绝(错误、不完整的数据等)。

如果您可以重用代码,那么#1 可以工作,但我打赌是#2,因为处理 ETL 的所有代码都放在一起。

如果您不想编写 customIO 但想执行一些外部应用程序来解析数据,您可以使用自定义 docker 容器进行数据流作业。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM