我们是一家将事件(每天最多 1 个千兆事件)存储到 bigquery 的游戏公司。事件按月和应用程序进行分片,以降低查询成本。
现在到我们的问题。
我们当前的解决方案支持添加新类型的事件,从而导致新版本的表模式。此版本也已添加到表格中。
即events_app1_v2_201308和events_app1_v2_201308
如果我们在 9 月添加具有新列类型的事件,我们还将获得events_app1_v3_201309
我们已经编写了代码来找出涉及的表(对于一个日期范围),并将它们合并为一个大查询的逗号分隔的 FROM 子句。
但是我刚刚意识到,当我们对不同版本的事件表进行联合时,这将不起作用。
任何人都有一个聪明的解决方案来解决这个问题!?
现在我们正在研究 JSON 结构是否可以帮助我们。当前的解决方案只是平柱。[时间戳,eventId,值,值,值,...]
来自https://developers.google.com/bigquery/query-reference#from
注意:与许多其他基于 SQL 的系统不同,BigQuery 使用逗号语法来表示表联合,而不是联合。这意味着您可以在兼容的多个表上运行查询!?架构如下: