19、BigQuery查询性能优化指南

BigQuery查询性能优化指南

1. 读取查询计划信息

除了测量查询速度和检查日志外,还可以通过查看查询计划信息来诊断查询性能。查询计划信息列出了查询被分解的阶段,并提供了每个执行步骤中处理的数据信息。该信息以JSON格式从作业信息中获取,也可以在BigQuery Web UI中可视化查看。

在BigQuery中,SQL语句的执行图被分解为查询阶段,每个阶段由多个工作进程并行执行的工作单元组成。阶段之间通过分布式洗牌架构进行通信,大多数阶段从读取前一阶段的输出开始,以写入后续阶段的输入结束。需要注意的是,前一阶段不必完成后后续阶段才能开始,阶段可以利用手头的数据开始执行,因此阶段并非按顺序执行。

由于在执行阶段之前,中间阶段的确切数据大小和计算成本是未知的,所以查询计划是动态的。如果实际大小与预期大小差异很大,可能会引入新的阶段来重新分区数据,提高工作进程之间的数据分布。因此,在探索查询性能时,应在查询完成后查看查询计划信息。

1.1 从作业详情中获取查询计划信息

已完成查询的每个阶段在作业信息中列出的信息包括阶段开始和结束的时间戳、读取和写入的记录总数,以及为处理此查询在所有工作进程中写入的字节数。

例如,执行以下查询:

SELECT 
  start_station_name, 
  AVG(duration) AS duration, 
  COUNT(duration) AS num_trips 
FROM 
  `bigquery-public-data`.london_bicycles.cycle_hire 
GROUP BY 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值