动态创建数据流作业



我是Google Cloud和Dataflow的新手。我想做的是创建一个工具,检测和恢复(大(csv文件中的错误然而,在设计时,并不是每个应该处理的错误都是已知的。因此,我需要一种简单的方法来添加处理特定错误的新函数

该工具应该类似于一个框架,用于根据用户选择自动创建数据流模板。我已经想到了一个可以工作的工作流程,但如前所述,我对此完全陌生,所以请随时提出更好的解决方案:

  1. 用户选择应该在前端使用哪些纠错方法
  2. 创建一个yaml文件,用于指定选定的转换
  3. python脚本解析yaml文件,并使用错误处理函数来构建数据流作业,该作业执行yaml文件中指定的这些函数
  4. 数据流作业存储为模板,并通过对存储在GCP上的文件的REST API调用运行

为了实现可扩展性,应该很容易地添加实现纠错的新功能。我想到的是:

  1. 开发人员编写所需的函数并将其上传到指定的文件夹
  2. 新功能手动添加到前端/或数据库等中,可以选择它来检查/处理错误
  3. 用户现在可以选择新添加的错误处理函数,并且正在创建的数据流模板使用此函数,而无需编辑构建数据流模板的代码

然而,我的问题是,我不确定这是否可能;"好";这个问题的解决方案。此外,我不知道如何创建一个使用设计时未知功能的python脚本。(我曾想过使用类似策略模式的东西,但据我所知,您仍然需要在设计时就已经实现了这些功能,即使在运行时正在决定使用哪个功能(如有任何帮助,我们将不胜感激!

您可以在架构中使用Cloud Functions和Cloud Composer(Airflow的托管解决方案(。Apache Airflow旨在定期运行DAG,但您也可以触发DAG以响应事件,例如云存储桶(可以存储CSV文件(中的更改。您可以在前端对此进行配置,每次新文件到达Bucket时,都会触发包含DAG的分步过程。

请查看官方文档,其中描述了使用DataflowTemplateOperator使用Cloud Composer启动数据流管道的过程。

最新更新