gpt4 book ai didi

google-cloud-dataflow - 如何使用在 Dataflow 执行期间计算的架构写入 BigQuery?

转载 作者:行者123 更新时间:2023-12-05 00:22:45 30 4
gpt4 key购买 nike

我有以下场景:

  • 管道 A 在 BigQuery 中查找表 A,进行一些计算并返回列名列表。
  • 此列名称列表用作管道 B 输出的 BigQuery 架构。

  • 您能否让我知道实现这一目标的最佳选择是什么?

    管道 A 是否可以使用 TextIO 将列名列表写入临时或暂存位置文件,然后由管道执行程序读取以定义管道 B 的架构。如果这种方法看起来不错,请告诉我是否有数据流实用程序,用于从临时或暂存位置读取文件,或者是否应使用 GCS API。

    最佳答案

    您需要执行以下操作:

  • 构建管道 A 以写入某个位置,例如 GCS(构建管道 B 时可以引用的任何持久位置都可以工作)。
  • 使用 BlockingDataflowPipelineRunner 运行并等待流水线 A 完成。
  • 通过从您在步骤 1 中定义的位置读取,使用架构信息构建管道 B。
  • 运行管道 B。

  • 我不会使用临时位置,因为我们可能会在您开始 build 管道 B 之前对其进行清理。可以使用临时位置(如果与临时位置不同)。我还建议使用唯一的文件名,这样如果流水线 A 运行多次,您就不会读取流水线 B 的陈旧结果。

    这应该可以帮助您读取和写入 GCS:
    https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/src/main/java/com/google/cloud/dataflow/sdk/util/GcsUtil.java

    您可以从 PipelineOptions 对象中获取 GcsUtil 的实例:
    https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/GcsOptions.java#L43

    关于google-cloud-dataflow - 如何使用在 Dataflow 执行期间计算的架构写入 BigQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440279/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com