写入并从BIGQUERY读取在一个Dataflow作业中

2024-09-29 18:40:10 发布

您现在位置:Python中文网/ 问答频道 /正文

在为数据流构建管道时,我遇到了一个看似简单的问题。我有多个管道从外部源获取数据,转换数据并将其写入几个BigQuery表。当查询完成后,我将运行一个查询。理想的情况下,我希望这发生在同一份工作。在

这是数据流的使用方式,还是应该将加载到BigQuery和表的查询在作业之间分开?在

如果在同一个作业中这是可能的,那么如何解决这个问题,因为bigQueryLink不会生成PCollection?如果在同一个作业中这是不可能的,是否有某种方法可以在完成另一个作业(即写入作业和查询作业)时触发作业?在


Tags: 数据方法管道作业方式情况bigquery数据流
1条回答
网友
1楼 · 发布于 2024-09-29 18:40:10

您提到了在单个作业中完成此操作所需的操作BigQuerySink将需要生成PCollection。即使它是空的,您也可以使用它作为从BigQuery读取的步骤的输入,使该步骤等待第一个接收器完成。在

您需要创建自己的bigQueryLink版本才能完成此操作。在

如果可能,一个更简单的选择可能是让第二步从您写入BigQuery的集合中读取,而不是读取刚刚放入BigQuery中的表。例如:

PCollection<TableRow> rows = ...;
rows.apply(BigQuery.Write.to(...));
rows.apply(/* rest of the pipeline */);

如果您想继续处理写入BigQuery的元素而不是表行,那么您甚至可以在前面这样做。在

相关问题 更多 >

    热门问题