有大量表的bigquery

时间:2016-12-11 13:04:55

标签: google-bigquery

我知道有关于表号限制的问题,但它含糊不清...... 在数据集中,我想创建大约1-2百万个表。发生这种情况是因为我想将用户活动表拆分为较小的表;为每个用户一个表。随着时间的推移,这个数字将继续增长。 据我所知,BigQuery的问题没有问题......但是我担心我无法从浏览器(https://bigquery.cloud.google.com/queries/appname)访问(列出)这些数据集;因为这些表没有按时间分组(就像有时间范围的表一样)并且它们全部列在无限滚动中(可能阻止浏览器)

感谢您提出任何建议

2 个答案:

答案 0 :(得分:3)

  

...问题是浏览器会在列出所有内容时被阻止   数据集中的表

您可以使用“?minimal”参数将加载操作限制为每个项目30,000个表,因此不会阻止浏览器。例如:

https://bigquery.cloud.google.com/queries/<your_project_name>?minimal.   

详细了解Display limits

  

我无法轻易探索我的数据集(并查询它们)

如果您计划在同一数据集中拥有超过200万个表,即使Web UI要向您展示而不被阻止 - 我真的怀疑您能够以某种方式合理地在视觉上探索它们。太多的物体要“吞下”
顺便说一句,这不仅是人类特定的问题 - 即使以编程方式查询这样的“长”表列表也可能存在问题。详细了解Using meta-tables

  

因为表没有按时间分组(就像带有时间范围的表一样)并且它们全部列在无限滚动中(可能阻止浏览器)

这是正确的,在BigQuery Web UI表中,只有当它们遵循table_preffixYYYYMMDD模式时才会被分组。即使你将你的userID名称空间映射到YYYYMMDD值 - 你仍然会运气不好,因为你的组仍将由数百万个表组成。

  

感谢您提出任何建议

BigQuery支持Partitioned Tables,允许在同一个表中包含多个分区。不幸的是,截至今天,只支持Date-Partitioned表,但是我听到BigQuery Team计划通过任意列添加分区。
这可能适合您想要的设计,除非对列基数有限制 同时,如果您愿意,可以通过将用户标识映射到YYYYMMDD(~9999 * 12 * 30>> 3百万用户)来尝试使用日期分区表功能来应用您的设计

  

我的建议:

  1. 按照我在上一个(上面)部分中的建议播放/试验分区表
  2. 将BigQuery中的表格分片(分割)到数百万个表格对我来说非常不切实际。你应该重新审视你的设计。你试图通过这种分片来解决什么问题?试着关注这个,如果需要的话 - 在这里发布具体问题吧!

答案 1 :(得分:0)

作为替代解决方案,您可以使用Google cloud sdk client

您可以阅读此bq命令行工具here的文档。

例如:bq ls [project_id:][dataset_id]列出所有表格。

注意:每个查询的最大表数限制为1000. Refer