当前位置: 首页 > 知识库问答 >
问题:

创建数据流经典模板,以通过DataflowflowTemplatedJobOperator编排作业

濮阳和泰
2023-03-14

我正在尝试创建和阶段数据流经典模板。按照下面提供的链接中的文档-

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_ID\-StagingLocd=gs://BUCKET_NAME/staging\-templateLocd=gs://BUCKET_NAME/模板/TEMPLATE_NAME-地区=区域"

作曲家

start_job = 数据流模板作业启动操作程序(task_id=“start_job”,模板=“gs://存储桶/最新/job1”,参数={“输入文件”:API 终结点,“输出”:GCS_OUTPUT},位置=“区域”,

我的理解是,首先我必须使用maven编译和部署模板,然后使用json类型将参数传递给数据流模板操作符

我不确定必须如何创建参数和模板。我过去手动创建了数据流jar文件并将其部署到GCS存储桶。从文档中看起来必须使用maven编译来编译和部署模板,并使用数据流java运算符将参数传递给作业。但现在有了新设计,我想我必须通过数据流模板作业启动运算符传递参数。

是否有人使用Templated方法来编排自定义Java数据流作业,如果是,json文件如何用于传递参数。任何例子都会非常有帮助。目前,我正在从本地计算机编译二进制文件并将其上传到存储桶上。

感谢任何解决问题的建议。

问候

共有2个答案

姬宝
2023-03-14

我从位桶存储库创建了模板文件,并在GCS中创建了模板。

mvn compile exec:java \
-Dexec.mainClass=com.google.cloud.teleport.templates.<template-class> \
-Dexec.cleanupDaemonThreads=false \
-Dexec.args=" \
--project=<project-id> \
--stagingLocation=gs://<bucket-name>/staging \
--tempLocation=gs://<bucket-name>/temp \
--templateLocation=gs://<bucket-name>/templates/<template-name>.json \
--runner=DataflowRunner"

Maven还需要额外的参数来创建模板。

问题-我是否需要创建json文件以将参数传递到模板-(即通过在模板位置创建单独的文件夹)。我认为我将在json文件中再次复制参数

如何在数据流操作符中调用json文件——参数是什么

DataflowTemplatedJobStartOperator

task_id="start_job",
template='gs://template location', 
parameters={ what should be the  parameters ? should it point to 
           json file},
location= xxx

我的另一个问题是,当我们部署到上层环境,特别是UAT和PROD时,我们不允许在分配的调度时间到达之前运行管道。因此,问题是,运行MVN只是为了打包jar文件并将其发送到staging,而不运行管道吗

问候

琴元凯
2023-03-14

您可以按照这个快速入门使用mvn编译部署数据流经典模板

您不必将参数存储在json文件中,您可以使用DataflowTemplatedJobStart0014 ator添加下面给出的参数。有关更多信息,您可以参考此文档。

start_template_job = DataflowTemplatedJobStartOperator(
    task_id="start-template-job",
    template='gs://dataflow-templates/latest/Word_Count',
    parameters={'inputFile': "gs://dataflow-samples/shakespeare/kinglear.txt", 'output': GCS_OUTPUT},
    location='europe-west3',
)

运行 MVN 不可能只是为了打包 jar 文件并将其发送到暂存而不运行管道。

 类似资料:
  • 在 Illustrator 中,使用“变量”面板,可通过将数据源文件(CSV 或 XML 文件)与 Illustrator 文档合并,轻松地创建图稿的多个变化。例如,无需手动修改模板中的对象,使用合并数据功能便可快速、准确地为不同的输出表面生成数以百个的模板变化。同样,您可以更改活动徽章上的参与人员姓名或者 Web 横幅和明信片上的各种图像,而无需重新创建图稿。只需创建一个设计模板,然后从数据源文

  • 是否可以像使用WordPress用户一样通过编程方式创建客户。显然,WooCommerce用户共享一些相同的WordPress用户字段,还有其他内容需要设置,如账单/邮政地址。 以前有人做到过吗?我在他们网站上的WooCommerce API/函数列表中找不到任何内容。 编辑:刚刚找到这个:http://docs.woothemes.com/wc-apidocs/function-wc_creat

  • 我正在Azure Kubernetes服务上工作。我正在通过门户成功创建AKS。但是,我需要通过ARM模板来完成。 如何使用ARM模板创建AK? 为此,我选择了link 但是,我收到的问题如下: 代码:InvalidTemplate 消息:部署模板验证失败:“模板资源”AKSsubnet/Microsoft。授权/36985XXX-XXXX-XXXX-XXXX-XXXX-5fb6b7ebXXXX“

  • 如何在谷歌VPC项目中运行的谷歌数据流模板中传递/设置“usepublicips”作为运行时参数?

  • 我在xaml代码中创建了一个名为ValueTreeView的treeView,它使用下面代码中创建的数据板,它完全绑定到一个通用类ValueHolder 这是用于绑定的类 这是具有treeview的用户控件 下面是选择项更改时调用的事件处理程序 每个TreeViewItem中的两个文本块绑定到两个类变量。 我的问题是,当我更改Class属性的值时,它不会反映在UI中,即使我对TreeView的项目

  • 我用下面的命令创建了一个数据流模板 数据流不为table_view2调用此函数,而是为该作业使用table_view。