You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重启SpannerToBigQuery Flex模板时如何避免GCP Dataflow数据丢失

Spanner变更流同步BigQuery架构变更时的数据丢失问题

我使用官方Flex模板--template-file-gcs-location=gs://dataflow-templates-us-central1/latest/flex/Spanner_Change_Streams_to_BigQuery,将Spanner变更流的数据流式同步到BigQuery。

现状

  • Spanner架构会不定期变更
  • 每次Spanner架构变更时,需手动同步修改BigQuery对应表结构
  • 该模板使用Splittable DoFunc,无法执行drain操作,只能直接取消当前Dataflow管道
  • 旧管道关闭到新管道启动的间隙会出现数据丢失

求助问题

我考虑过用水印指标启动新管道的方案,但不确定这个方法是否正确,也不清楚具体操作步骤。有没有更简便的方法能避免架构变更时的数据丢失?

另外,我尝试通过const result = await dataflow.projects.jobs.getMetrics(request);获取所有水印,但得到了模板每个阶段的多个水印(示例如下)。请问这种获取方式是否正确?如果正确,如何基于这些多阶段水印启动新的Flex模板?

DataWatermark F174 1697517770000000
{
  name: {
    origin: 'dataflow/v1b3',
    name: 'DataWatermark',
    context: { execution_step: 'F174' }
  },
  scalar: 1697517770000000,
  updateTime: '2023-10-17T04:43:06.711Z'
}
DataWatermark F174 1697517770000000
{
  name: {
    origin: 'dataflow/v1b3',
    name: 'DataWatermark',
    context: { execution_step: 'F175', tentative: 'true' }
  },
  scalar: 1697517770000000,
  updateTime: '2023-10-17T04:43:06.711Z'
}
DataWatermark F175 1697517770000000
{
  name: {
    origin: 'dataflow/v1b3',
    name: 'DataWatermark',
    context: { execution_step: 'F175' }
  },
  scalar: 1697517770000000,
  updateTime: '2023-10-17T04:43:06.711Z'
}
DataWatermark F175 1697517770000000

内容的提问来源于stack exchange,提问作者Michael Brenndoerfer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:08:31