背景
我们可能会将BigQuery用于store our immutable business events,以便我们以后可以将它们重播到其他服务。我认为一种方法基本上只是将每个事件存储为blob(带有一些元数据)。为了轻松地重放它们,保持事件的全局顺序当然是好的,并且只是将每个事件保存到BigQuery中的同一个表中。我们可能每秒有10个事件(这远远超过每秒100000个消息的限制)。
问题
答案 0 :(得分:1)
你必须记住的要点:
希望它对你有用。
答案 1 :(得分:1)
如果主要使用场景存储事件然后回复它们 - 没有理由将不同的事件类型拆分到不同的表中。特别是因为每个事件都是不透明的blob。将它们全部保存在同一个表中将使您能够根据事件类型和其他元数据进行分析。 按天划分是有道理的,特别是如果您要查看最新数据 - 这将有助于您降低BigQuery查询成本。
但我担心你要求按顺序回复事件。 BigQuery中没有聚集索引,因此每次您需要回复事件时,都必须使用" ORDER BY timestamp"在您的查询中,它只能扩展到相对较少的数据量(数十兆字节)。所以你想重播很多活动 - 这个设计不适合你。