gpt4 book ai didi

google-bigquery - 处理不断发展的模式

转载 作者:行者123 更新时间:2023-12-04 18:43:50 27 4
gpt4 key购买 nike

我们是一家将事件(每天最多 1 个千兆事件)存储到 bigquery 的游戏公司。事件按月和应用程序分片,以降低查询成本。

现在我们的问题。

我们当前的解决方案支持添加新类型的事件,这会导致表模式的新版本。此版本也已添加到表格中。

IE。 events_app1_v2_201308 events_app1_v2_201308

如果我们在 9 月添加具有新列类型的事件,我们也会得到 events_app1_v3_201309

我们已经编写了代码来找出涉及的表(对于日期范围),并将它们合并为一个'la bigquery 的逗号分隔 FROM 子句。

但我刚刚意识到,当我们对不同版本的事件表进行联合时,这将不起作用。

任何有如何处理这个问题的聪明解决方案的人!?

现在我们正在研究 JSON 结构是否可以帮助我们。当前的解决方案只是平柱。 [时间戳、事件 ID、值、值、值、...]

来自 https://developers.google.com/bigquery/query-reference#from

注意:与许多其他基于 SQL 的系统不同,BigQuery 使用逗号语法来指示表联合,而不是连接。这意味着您可以对多个表运行查询 兼容!? 模式如下:

最佳答案

您应该能够修改旧表的表架构以添加列,然后联合应该匹配。请注意,您只能添加列,而不能删除它们。您可以使用 tables.patch() 方法来执行此操作,或 bq update --schema
此外,只要新字段没有被标记为 REQUIRED,它们就应该被认为是兼容的。但是,如果情况并非如此,那么这将是一个错误——如果您遇到了这种情况,请告诉我们。

关于google-bigquery - 处理不断发展的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18609114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com