【问题标题】:BigQueryIO.Write with dynamic schemaBigQueryIO.Write 使用动态架构
【发布时间】:2016-10-18 10:49:55
【问题描述】:

是否有可能创建BigQueryIO.Write-like sink 指定函数以返回表模式(或者最好从侧面输入中读取)?

在我的用例中,我从 PubSub 获取消息,这些消息已转换为 TableRow。消息可以有不同的模式,总是向后兼容。

在我的管道中,我能够为特定窗口创建最新架构,并且此类架构需要在写入 BigQuery 的接收器中使用。

SDK 中是否有可能提供此类功能? ;)

【问题讨论】:

  • Marcin,您希望架构多久更改一次?
  • 我不知道。这意味着是自动的,因为我们向最终用户公开了用于更改架构的 UI。出于这个原因,我们希望消除此处所需的所有手动工作。
  • (要明确回答原始问题,SDK 中不提供此功能。)是否可以通过 UI 使用的任何代码路径触发架构更新?与消息处理的即时更新相比,这似乎没有那么激烈。
  • 该解决方案如何提供帮助,因为 BigQueryIO.Write 需要在将数据写入 BigQuery 期间使用的架构?另一方面,我们可以停止当前的 Dataflow Pipeline 并启动新的管道,将最新的模式传递给它(这是我现在正在做的方式)。我们还可以创建一个“多路分解器”,它将消息从一个 PubSub 主题分离到 N 个按模式分组并具有 N 个管道,但这会使成本加倍。在一个管道中使用“动态模式”的全部意义在于消除管道重启的麻烦。
  • 我可能弄错了,但我的理解是写入 BigQuery 的数据在流式传输时未针对架构进行验证。这是一个流式管道,对吗?

标签: google-cloud-dataflow


【解决方案1】:

https://issues.apache.org/jira/browse/BEAM-2023 跟踪从侧面输入中提取模式以动态确定它们的能力。最新版本的 Apache Beam 现已提供此功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    相关资源
    最近更新 更多