Google bigquery BigQuery行限制

Google bigquery BigQuery行限制,google-bigquery,Google Bigquery,谷歌称BigQuery可以处理数十亿行 对于我的应用程序,我估计使用量为200000000*1000行。远远超过几十亿 我可以将数据按每个分区划分为200000000行,但BigQuery中对此的唯一支持似乎是不同的表。(如果我错了,请纠正我) 总数据大小约为2TB 我在示例中看到了一些大数据量,但行数都在10亿以下 BigQuery能否支持我在单个表中处理的行数? 如果没有,除了多个表之外,我还能以任何方式对其进行分区吗?下面应该回答您的问题 我在我们的一个数据集上再次运行它 如您所见,表大小

谷歌称BigQuery可以处理数十亿行

对于我的应用程序,我估计使用量为200000000*1000行。远远超过几十亿

我可以将数据按每个分区划分为200000000行,但BigQuery中对此的唯一支持似乎是不同的表。(如果我错了,请纠正我)

总数据大小约为2TB

我在示例中看到了一些大数据量,但行数都在10亿以下

BigQuery能否支持我在单个表中处理的行数?


如果没有,除了多个表之外,我还能以任何方式对其进行分区吗?下面应该回答您的问题

我在我们的一个数据集上再次运行它
如您所见,表大小接近10TB,大约有13-16亿行

SELECT 
  ROUND(size_bytes/1024/1024/1024/1024) as TB, 
  row_count as ROWS
FROM [mydataset.__TABLES__] 
ORDER BY row_count DESC
LIMIT 10
我认为到目前为止,我们处理的最大表至少达到了50-60亿,并且都按预期工作

Row   TB        ROWS     
1   10.0    1582903965   
2   11.0    1552433513   
3   10.0    1526783717   
4    9.0    1415777124   
5   10.0    1412000551   
6   10.0    1410253780   
7   11.0    1398147645   
8   11.0    1382021285   
9   11.0    1378284566   
10  11.0    1369109770   

简短回答:是的,即使将所有数据放在一个表中,BigQuery也能很好地处理这个问题


如果确实要对数据进行分区,现在唯一的方法就是将数据显式存储在多个表中。如果你经常只查询数据的一个子集,你可以考虑这样做来减少账单。许多用户按日期对数据进行分区,并使用这些分区表的子集编写查询。

很有希望,但我处理的行数要多出两个数量级。忘了提及-这是每日分区数据/表-一天一个表。对于某些分析,我们必须查询远远不止一个表。很明显,但是-BigQuery是列式存储,所以您可以通过只使用您真正需要的字段来控制查询量。我的数据也是如此-按天分区。我还可以使用另一个索引来增加分区。您是如何完成分区的?通过使用不同的表?类似这样的事情-每天都转到新的每日表-lognameyyyymmddbigquery-对于活动的可查询数据,单个表或多个小表的最大问题是定价!谷歌将对请求列中的所有数据收费(5美元/TB),即使你只提取了一行!如果您的表太小,任何查询的最低收费是10MB!这显然是一个优化问题,但我发现它的解决方案空间非常有限,主要集中在将要查询的数据量以及将查询批处理到10MB的程度上。对于一家每月在数据存储上花费10万美元以上的公司来说,这是值得的,因为它可以优化存储2TB的数据,而每月仅需40美元。你为什么说每月10公里以上?在bigquery中输入数据几天,看看价格是多少,然后你会惊讶地发现价格竟如此之低。@Pentium10不,我没有说过这两件事。我说的是查询成本,而不是存储成本。我不打算花10万美元,但这对一家公司来说是值得优化的。。@BAR,你的用例是什么?BigQuery的查询引擎和定价结构针对每个查询扫描大量数据的分析查询进行了优化。如果您正在进行点查找,而您的目标是提取单个记录,那么使用像Google Data Store这样的系统可能会更幸运,它是为事务性工作负载而设计的。