【发布时间】:2017-11-20 20:25:50
【问题描述】:
我们是 BigQuery 的新手,正在尝试找出使用它进行实时分析的最佳方式。我们正在从后端服务向 Kafka 发送日志流,我们希望使用流式插入将这些日志流式传输到 BigQuery。对于可查询性,我们既按时间分区,又按事件类型分表(用于通配符查询)。我们将视图置于创建的表族之上,使它们看起来像 1 个表,并使用 _TABLE_SUFFIX(好吧,当他们推出该功能时,现在使用 UNION ALL)和 _PARTITIONTIME 列来减少为查询扫描的行集.到目前为止一切顺利。
我们不确定如何正确处理的是架构更改。我们的日志消息的架构经常更改。让 BigQuery 保持同步的手动过程是站不住脚的。理想情况下,我们的流式传输管道将检测到更改并根据需要应用架构更新(用于添加列)或表创建(用于添加事件类型)。我们有上游工具,因此我们知道所有架构更新都将向后兼容。
我的理解是所有分片必须具有相同的架构。我们如何以如下方式应用架构更新:
- 我们不会中断更新期间运行的查询。
- 我们不会中断流式插入。
#1 可能吗?我不相信我们可以原子地改变所有分片表的架构。
对于 #2,我认为我们必须在架构更新过程发生时停止流式传输管道。
谢谢, --本
【问题讨论】:
标签: google-bigquery