我想澄清一下 Cloud Dataflow 或 Cloud Composer 是否适合这项工作,但我从 Google 文档中不清楚。
目前,我正在使用 Cloud Dataflow 读取非标准 csv 文件——做一些基本处理——并将其加载到 BigQuery 中。
让我举一个非常基本的例子:
# file.csv
type\x01date
house\x0112/27/1982
car\x0111/9/1889
从这个文件中,我们检测架构并创建一个 BigQuery 表,如下所示:
`table`
type (STRING)
date (DATE)
而且,我们还格式化数据以插入(在 python 中)到 BigQuery:
DATA = [
("house", "1982-12-27"),
("car", "1889-9-11")
]
这是对正在发生的事情的极大简化,但这就是我们目前使用 Cloud Dataflow 的方式。
那么我的问题是,
Cloud Composer
在哪里?进入画面?它可以在上面提供哪些附加功能?换句话说,为什么要在“云数据流之上”使用它?
最佳答案
Cloud composer(由 Apache Airflow 支持)专为小规模任务调度而设计。
这是一个帮助您理解的示例:
假设您在 GCS 中有一个 CSV 文件,并使用您的示例,假设您使用 Cloud Dataflow 处理它并将格式化的数据插入 BigQuery。如果这是一次性的事情,那么您刚刚完成它并且它是完美的。
现在假设您的 CSV 文件在每天 01:00 UTC 被覆盖,并且您希望在每次被覆盖时运行相同的 Dataflow 作业来处理它。如果您不想在 UTC 时间 01:00 手动运行作业,而不管周末和节假日,您需要定期为您运行作业(在我们的示例中,每天 01:00 UTC)。在这种情况下,Cloud Composer 可以为您提供帮助。您可以向 Cloud Composer 提供配置,其中包括要运行的作业(运算符(operator))、运行时间(指定作业开始时间)以及运行频率(可以是每天、每周甚至每年)。
看起来已经很酷了,但是,如果 CSV 文件不是在 UTC 时间 01:00 被覆盖,而是在一天中的任何时候被覆盖,您将如何选择每日运行时间? Cloud Composer 提供了传感器,可以监控条件(在本例中为 CSV 文件修改时间)。 Cloud Composer 可以保证只有在满足条件的情况下才会启 Action 业。
Cloud Composer/Apache Airflow 提供了更多功能,包括使用 DAG 运行多个作业、失败的任务重试、失败通知和漂亮的仪表板。您还可以从他们的文档中了解更多信息。
关于google-cloud-dataflow - 使用 Dataflow 与 Cloud Composer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54154816/