我最近发现了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?
是否有优化的方法?查询结果是否应该存储在另一个数据库中以便以后检索?
答案 0 :(得分:2)
为什么收费的字节数为130 MB?
查询定价是指运行SQL命令和用户定义函数的成本。 BigQuery使用一种度量标准对查询收费:已处理的字节数(也称为读取的字节数)。无论数据是存储在BigQuery中还是存储在外部数据源(例如Cloud Storage,Google Drive或Cloud Bigtable)中,您都需要为处理的字节数付费。
运行查询时,即使您对结果设置了明确的LIMIT,也会根据所选列中处理的总数据向您收费。每列的总字节数是根据列中的数据类型计算的。有关我们如何计算您的数据大小的更多信息,请参阅数据大小计算。
查询定价取决于您的使用模式:按月查询的固定费用或基于交互式查询的定价。企业客户通常更喜欢统一价格的查询,因为该模型提供一致的月度成本。按需(或交互式)定价提供了灵活性,并且仅基于使用情况。
您可以在https://cloud.google.com/bigquery/pricing
上看到更多内容因此,在您的情况下,unique_key
列的大小为130MB
查询结果是否应存储在另一个数据库中以供以后检索?
确定
您可以这样做,以在不接触原始数据的情况下管理连续处理该小数据的成本
请记住-这将为您调用存储价格-有关详细信息,请参见上述链接