当您具有高并发性和大行数时,哪个是BQ中建模的最佳模式?
由于行限制为2MB(JSON),我认为您必须在多个表中放置一个实体并使用一个标识符收集所有属性。
这样的事情:
id,attribute0_1,attribute1_1,...,attributen_1 - > EntityTable1(每行限制= 2MB)
id,attribute0_2,attribute1_2,...,attributen_2 - > EntityTable2(每行限制= 2MB)
然后你需要通过id加入。但你不能加入两张大桌子,其中一张必须< 8 MB。
此外,您还有20(+2)个并发查询的限制。
如果我想只用1个查询获取所有实体数据,这是最好的建模方法?
如果我被迫有很多疑问,如何解决并发限制问题?
谢谢!
答案 0 :(得分:2)
在哪里可以看到您无法加入两张大桌子的要求?如果你使用'每个'关键字,你可以加入几乎任何大小的两个表。记录在案here。
此外,截至最近,BigQuery支持多路连接,因此将多个大型表连接在一起的语法应该更加清晰。
答案 1 :(得分:0)
我不确定2MB JSON限制是否准确。限制大小为2MB,但往往比相应的JSON大小小得多,后者可以轻松地大5倍。值大小计算为记录中字段的大小:
记录中的值是否超过2MB。如果您可以将数据打包到一个表中,那么JOIN EACH将起作用,您将获得更好的性能。