如何优化Google Big查询字节数

时间:2018-11-21 22:13:43

标签: sql google-bigquery

我最近发现了Google Big Query,它是开放数据集。在311_service requests数据集中的new_york表上执行以下查询后,云控制台将bytes billed报告为130 MB

SQL查询:

SELECT unique_key FROM `bigquery-public-data.new_york.311_service_requests` LIMIT 10

查询返回:

+------+-------------+
| Rows | unique_key  |
+------+-------------+
| 1    | 37911459    |
| 2    | 38162601    |
| 3    | 32560181    |
| 4    | 38259076    |
| 5    | 36034528    |
| 6    | 36975822    |
| 7    | 38028455    |
| 8    | 37993135    |
| 9    | 37988664    |
| 10   | 35382611    |
+------+-------------+

对于返回如此少量数据的查询,为什么收费字节数为130 MB?

是否有优化的方法?查询结果是否应该存储在另一个数据库中以便以后检索?

1 个答案:

答案 0 :(得分:2)

  

为什么收费的字节数为130 MB?

查询定价是指运行SQL命令和用户定义函数的成本。 BigQuery使用一种度量标准对查询收费:已处理的字节数(也称为读取的字节数)。无论数据是存储在BigQuery中还是存储在外部数据源(例如Cloud Storage,Google Drive或Cloud Bigtable)中,您都需要为处理的字节数付费。

运行查询时,即使您对结果设置了明确的LIMIT,也会根据所选列中处理的总数据向您收费。每列的总字节数是根据列中的数据类型计算的。有关我们如何计算您的数据大小的更多信息,请参阅数据大小计算。

查询定价取决于您的使用模式:按月查询的固定费用或基于交互式查询的定价。企业客户通常更喜欢统一价格的查询,因为该模型提供一致的月度成本。按需(或交互式)定价提供了灵活性,并且仅基于使用情况。

您可以在https://cloud.google.com/bigquery/pricing

上看到更多内容

因此,在您的情况下,unique_key列的大小为130MB

  

查询结果是否应存储在另一个数据库中以供以后检索?

确定 您可以这样做,以在不接触原始数据的情况下管理连续处理该小数据的成本
请记住-这将为您调用存储价格-有关详细信息,请参见上述链接