如何优化 Google Big Query 计费字节数
Posted
技术标签:
【中文标题】如何优化 Google Big Query 计费字节数【英文标题】:How to Optimize Google Big Query Bytes Billed 【发布时间】:2018-11-21 22:13:42 【问题描述】:我最近发现了 Google Big Query,它是开放数据集。对new_york
数据集中的311_service requests
表执行以下查询后,云控制台将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】:为什么按 130 MB 计费的字节数?
查询定价是指运行 SQL 命令和用户定义函数的成本。 BigQuery 使用一种指标对查询收费:处理的字节数(也称为读取的字节数)。无论数据是存储在 BigQuery 中还是存储在 Cloud Storage、Google Drive 或 Cloud Bigtable 等外部数据源中,您都需要为处理的字节数付费。
当您运行查询时,即使您对结果设置了明确的 LIMIT,也会根据您选择的列中处理的总数据向您收费。每列的总字节数是根据列中的数据类型计算的。有关我们如何计算您的数据大小的更多信息,请参阅数据大小计算。
查询定价基于您的使用模式:查询的每月固定费率或基于交互式查询的定价。企业客户通常更喜欢查询的统一费率定价,因为该模型提供一致的月度成本。按需(或交互式)定价提供了灵活性,并且完全基于使用情况。
你可以在https://cloud.google.com/bigquery/pricing看到更多
因此,在您的情况下,130MB 是相应 unique_key
列的大小
是否应该将查询结果存储在另一个数据库中以供以后检索?
确定 您可以这样做来管理不接触原始数据的连续处理小数据的成本 请记住-这将为您调用存储价格-有关详细信息,请参见上述相同的链接
【讨论】:
谢谢米哈伊尔。是否还有其他可以降低成本的查询技术? 当然——你可以查看BigQuery Best Practices: Controlling Costs,在特定的用例中你会进入——只需发布新问题,我们会帮助你以上是关于如何优化 Google Big Query 计费字节数的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Google Cloud SQL 与 Google Big Query 集成
如何将 Google 工作区数据自动导入 Big Query 数据库?
如何在 Google Big Query 中的多个列上执行模式功能