在查询说明上处理的字节

时间:2016-04-14 13:00:56

标签: google-bigquery

我有一个“代价高昂”的查询。我想优化它(使它更便宜)。 我运行查询并查看了我认为对优化运行时非常有用的解释。

我的问题如下:对于每个阶段,我都看到“行”,但我没有看到“字节已处理”。由于BQ按“已处理的字节数”收费,我想根据处理的数据量而不是扫描的记录数进行优化。

我的问题是:有没有办法获得这种信息? (实际读取数据的每个执行阶段的字节读取数据量)

1 个答案:

答案 0 :(得分:1)

  

有没有办法获得这种信息?

我认为它不适用于我们(用户)
解释可视化来自Jobs: get API

的下方部分
"query": {
 "queryPlan": [
  {
   "name": "Stage 1",
   "id": "1",
   "waitRatioAvg": 0.008679262671196536,
   "waitRatioMax": 0.009519650796361627,
   "readRatioAvg": 0.45445465918366207,
   "readRatioMax": 1,
   "computeRatioAvg": 0.1796969833724843,
   "computeRatioMax": 0.2585664334066632,
   "writeRatioAvg": 0.06727424173478641,
   "writeRatioMax": 0.06727424173478641,
   "recordsRead": "37098285",
   "recordsWritten": "37098285",
   "steps": [
    {
     "kind": "READ",
     "substeps": [

statistics.query.queryPlan

上查看更多详情
  

对于每个阶段,我都会看到" Rows",但我看不到" Bytes Processed"。由于BQ按" Bytes Processed"收费,我想优化......

你很可能知道,但想提一下 我不认为收费是基于所有阶段的所有处理字节的总和 一点也不! more details here
您根据所选列中处理的总数据收费,并根据列中的数据类型计算每列的总数据。
所以,我可能有点不对劲,但是你所寻求的优化在性能方面是完全合理的,而不是在收费方面。

另一方面 - 这对我来说是盲点 - billing tier是如何精确计算的?有什么因素?等
如果您知道如何驱动计费层,那么每个阶段处理的字节可能会有所帮助 - 所以这对我来说仍然是个未解决的问题:o(