使用Dataflow避免BigQuery Storage API上的会话关闭



我正在实现一个ETL作业,该作业将未分区的BigQuery表迁移到分区的BigQuery表。为此,我使用BigQuery中的Storage API。这会创建多个会话以从中提取数据。为了将BigQuery写入路由到正确的分区,我使用File Loads方法。由于30天的限制,无法选择流式插入。存储写入API识别分区似乎受到限制。

通过采用文件加载方法,将数据写入地面军事系统。问题是,这需要太多时间,而且存在会议结束的风险。在幕后,"文件加载方法"是一个包含多个步骤的复杂方法。例如,写入GCS并将条目组合到目的地/分区连接文件。

基于数据流过程,节点似乎可以在管道的不同部分执行工作负载。

如何避免会议结束的风险?我的数据流节点是否有办法只关注首先写入GCS的关键部分,一旦完成,然后关注所有其他方面?

您可以在将写入应用于BigQuery之前执行Reshuffle。在Dataflow中,这将在作业中创建一个检查点和一个新阶段。对BigQuery的写入将在重新排列之前的所有步骤都完成时开始,如果出现错误和重试,作业将回溯到该检查点。

请注意,进行改组意味着对数据进行改组,因此会对性能产生影响。

最新更新