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

数据流管道上的BigQuery SQL作业依赖关系

卫嘉言
2023-03-14

我有一个python中的ApacheBeam管道,不管出于什么原因,它都有下面这样的流。

client = bigquery.Client()
query_job1 = client.query('create table sample_table_1 as select * from table_1')  
result1 = query_job.result()

with beam.Pipeline(options=options) as p:

    records = (
            p
            | 'Data pull' >> beam.io.Read(beam.io.BigQuerySource(...))
            | 'Transform' >> ....
            | 'Write to BQ' >> beam.io.WriteToBigQuery(...)
    )

query_job2 = client.query('create table sample_table_2 as select * from table_2')  
result2 = query_job2.result()

SQL作业--

当我在本地运行此程序时,此序列工作正常。然而,当我试图将其作为数据流管道运行时,它实际上并没有按此顺序运行。

在数据流上运行时是否有强制依赖关系的方法?

共有1个答案

焦宁
2023-03-14

正如@PeterKim所提到的,您在注释部分描述的处理流不可能仅用数据流实现。目前,数据流编程模型不支持它。

在这里,您可以使用Composer来编排相互依赖的顺序作业执行。

 类似资料:
  • 我想通过管道传输我的hadoop流作业。例如,我运行了一个命令hadoop jarhadoop-streaming.jar-mappermap1.pyreducer.py-inputxx输出 /output1 但是我想使用第一步的输出作为第二步mapduce作业的输入,而不存储在hdfs中,也许输出为标准输出。有没有像linux管道一样的东西?比如hadoop jarhadoop-streamin

  • 问题内容: TL; DR:显然,在Jenkins管道作业中,您可以轻松地向下游传递参数。我想知道的是,是否可以将它们传递给 上游 。 用例: 我们有三份工作;,和。它们通常仅需要一个阶段就可以单独运行,但是在越来越频繁的情况下,我们希望能够将所有三个阶段背靠背运行。 第一个和第二个依赖于您可以提前定义的参数,但是第三个和第二个依赖于从第二个作业生成的参数(该文件名的结构在job_two运行之前是未

  • Posthoc将FFMPEG连接到opencv-python二进制文件,用于Google云数据流作业 根据这个问题,可能会拉出一个自定义docker图像,但我找不到任何关于如何使用DataFlow进行处理的文档。 https://issues.apache.org/jira/browse/beam-6706?focusedcommentid=16773376&page=com.atlassian.

  • 当我在GCP中运行作业时,这工作很好,但如果没有任何更新,它将失败。如果我删除update标志,只要没有正在运行的作业,它就可以正常工作。 是否有一种方法来指定,如果作业存在,则更新它,而不仅仅是开始一个新的作业?

  • 第二个存储区是。它的责任是管理随机选择的TODO项目。在我看来,应该使用通过访问TODO项。 问题在于,如前所述,在启动时不会加载TODO项。 问题是:“如何保证已经检索了TODO项?”

  • 我只是从GitHub操作开始,并尝试正确配置作业。现在我有了一个建立python并安装依赖项的作业构建,我还有一个需要运行依赖项的behave test作业。当我在一个工作中进行测试和构建时,一切正常。但我想在不同的工作中进行构建和测试。但是当我在这个配置中运行它们时,我得到了错误。我在requirementx中安装了Behave。txt文件。我做错了什么?这种配置通常可能吗?