19、BigQuery查询性能优化指南

BigQuery查询性能优化指南

1. 读取查询计划信息

在评估查询性能时,除了测量查询速度和检查日志外,还可以通过查看查询计划信息来诊断查询性能。查询计划信息会列出查询被分解的各个阶段,并提供每个阶段中每个执行步骤所处理数据的相关信息。

1.1 查询计划的动态性

在BigQuery中,SQL语句的执行图会被拆分为多个查询阶段,每个阶段由多个工作节点并行执行工作单元。各阶段通过分布式洗牌架构进行通信,大多数阶段会先读取前一阶段的输出,再将结果写入后续阶段的输入。需要注意的是,查询计划是动态的,因为在执行某个阶段之前,中间阶段的确切数据大小和计算成本是未知的。如果实际大小与预期大小差异很大,可能会引入新的阶段来重新分区数据,以改善工作节点间的数据分布。因此,在探索查询性能时,应在查询完成后查看查询计划信息。

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

完成查询的每个阶段的信息包括阶段开始和结束的时间戳、读取和写入的记录总数,以及为处理该查询在所有工作节点上写入的字节数。以下是一个示例查询:

SELECT 
  start_station_name, 
  AVG(duration) AS duration, 
  COUNT(duration) AS num_trips 
FROM 
  `bigquery-public-data`.london_bicycles.cycle_hire 
GROUP BY 
  start_station_name 
ORDER BY 
  num_trips DESC 
LIMIT 
  5

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值