【发布时间】:2022-02-18 19:48:43
【问题描述】:
我正在尝试创建和暂存 Dataflow Classic 模板。按照下面提供的链接中的文档-
https://cloud.google.com/dataflow/docs/guides/templates/creating-templates#java_8.
mvn 编译 exec:java \ -Dexec.mainClass=com.example.myclass \ -Dexec.args="--runner=DataflowRunner \ --project=PROJECT_ID \ --stagingLocation=gs: //BUCKET_NAME/staging \ --templateLocation=gs://BUCKET_NAME/templates/TEMPLATE_NAME --region=REGION"
作曲家
start_job = DataflowTemplatedJobStartOperator( task_id="start_job", 模板='gs://bucket/latest/job1', 参数={'inputFile':API END POINT,'输出': GCS_OUTPUT}, location='地区',
我的理解是首先我必须使用 maven 编译和部署模板,然后使用 json 类型将参数传递给 Dataflow 模板化操作员
我不确定如何创建参数和模板。我过去手动创建了数据流 jar 文件并将其部署到 GCS 存储桶。从文档看来,必须使用 maven compile 来编译和部署模板,并使用 dataflow java operator 将参数传递给作业。但是现在有了新设计,我想我必须通过 Dataflow Templated Job Start 传递参数运算符。
是否有人使用模板化方法来编排自定义 Java 数据流作业,如果是,json 文件如何用于传递参数。任何示例都会非常有帮助。目前我正在从本地机器编译二进制文件并将其上传到存储桶。
感谢任何解决问题的建议。
问候
【问题讨论】:
-
各种数据流模板文件可以参考这个document,暂存模板文件。检查此document 为各个模板指定正确的参数。您可以使用 Airflow 的 DataflowTemplatedJobStartOperator 在 DAG 中创建任务。如果有帮助,请告诉我。
-
嗨@recyclinguy,如果我的回答解决了您的问题,请考虑接受并支持它。如果没有,请告诉我,以便我改进答案。
标签: java airflow google-cloud-dataflow google-cloud-composer