Bigquery事件流和表创建

时间:2015-06-24 11:46:45

标签: google-bigquery

我们目前正在将事件保存到bigquery,方法是将文件上传到Google云端存储,然后将这些文件插入bigquery。

我们有一个非常活跃的应用程序在cirka 300节点上运行,每天节省大约10亿个事件。

我们现在计划将其更改为使用" new"流媒体API。

我现在关注的是,我们当前的解决方案创建了表,如果它不存在,而不是流API的情况。 (我们的事件表在游戏+月份进行分片,以减少我们必须查询的数据。)

我们如何以最佳方式解决这个问题?即有+300个节点将数据流式传输到bigquery,并在需要时创建新表!

提前致谢!

/ Gunnar Eketrapp

1 个答案:

答案 0 :(得分:1)

根据我们的经验说。我们创建了在部署时管理表的脚本,而不是在日期更改时实时管理表。每个分片表预先指示此脚本为create一年。

如果结构发生变化,我们可以对旧表进行patch调用,对于新表,我们只需delete并重新创建它们,因为它们是空表。

当您并行节点时,很难知道哪个节点充当创建表的主节点,因此为此我们使用了部署阶段,实际上我们在开发人员运行部署时触发了表。

您可以提前预测游戏ID,并提前为其创建表格。运行创建一些表和批量更新的脚本要比从所有可用节点编写正确的同步方式更容易。如果您无法预测游戏ID,则可以在游戏ID可用时调用将提前创建表格的同步API。