【发布时间】:2018-12-30 19:55:26
【问题描述】:
我创建了一个带有集群文件的表,但我没有看到任何保存或任何性能改进,这就是我所做的:
我创建了一个包含 3 列的目标表:projectId、tableId 和 schema 使用此 SQL:
SELECT projectId, tableId, schema
FROM `project.dataset.tables`
WHERE _partitionTime >= '2018-12-27 00:00:00'
分区字段:默认分区时间 集群字段:projectId、tableId
这条sql的原成本是:$2.82
现在从我期望的新表中选择时
- 降低成本
- 为了获得更好的性能
我正在使用这个 SQL
SELECT * FROM `project.table.testCluster`
WHERE projectId = 'xxx' and tableId = 'yyy'
AND _PARTITIONTIME >= TIMESTAMP("2018-12-30") LIMIT 1000
从我的基准测试和 BigQuery 控制台执行报告中我都没有看到
有什么想法吗?
【问题讨论】:
-
您的屏幕截图显示 578GB 查询已减少到 346 MB 已处理。我想你只是错过了。
-
看起来 dryRun API 和 Run API 返回不同的字节进程 620558572756 Vs 363303416 也许这就是我的问题所在。但是仍然不确定我看到了什么
-
这是这样设计的。 DryRun 无法返回优化的查询成本,并将返回完整的扫描数。执行查询后始终信任统计信息。
-
谢谢,你知道cluster字段中逗号分隔是什么意思吗?
-
您可以有5个维度进行聚类(例如:大洲、国家、地区、县、市),具体示例请阅读这篇博文:medium.com/google-cloud/…
标签: google-bigquery