在将查询配置设置为DryRun = true时,我在Jobs.Insert API的响应中注意到一个名为totalBytesProcessedAccuracy
的字段。
"query": {
"totalBytesProcessed": "341880728292",
"totalBytesBilled": "0",
"totalBytesProcessedAccuracy": "UPPER_BOUND",
"cacheHit": false,
"referencedTables": [
{
"projectId": "mydata-1470162410749",
"datasetId": "EVALUEX_PROD",
"tableId": "tables"
}
]
从我的实验中,我看到了该字段的2个值:
WHERE
WHERE
我在BigQuery文档中搜索了此字段,以获得对此的更好解释,但找不到任何参考
关于如何找到该字段的更多详细信息及其含义的任何想法?
答案 0 :(得分:1)
使用传统表,BigQuery确切知道在运行查询(空运行)之前它将查询多少字节:
SELECT SUM(views) views
FROM `fh-bigquery.wikipedia_v2.pageviews_2019`
WHERE DATE(datehour)='2019-01-05'
AND wiki='en'
AND title='Shakira'
estimated bytes to be processed: 6.36 GB
actual bytes processed: 6.36 GB
但是对于群集表,很难知道将实际处理多少个字节。因此,BigQuery目前能做的最好的就是告诉您可以处理的最大字节数:
SELECT SUM(views) views
FROM `fh-bigquery.wikipedia_v3.pageviews_2019`
WHERE DATE(datehour)='2019-01-05'
AND wiki='en'
AND title='Shakira'
estimated bytes to be processed: 6.36 GB (upper bound)
actual bytes processed: 148 MB
通过从我的v2
表切换到v3
(我已经集群的表),此查询节省了98%的数据处理成本。另一方面,您必须接受试运行只能给您带来成本的“上限”。