16、云数据实验室中的探索性数据分析与查询优化

云数据实验室中的探索性数据分析与查询优化

1. BigQuery查询优化

BigQuery支持用JavaScript编写用户定义函数(UDF),但过度使用UDF会减慢查询速度,某些UDF还可能属于高计算量查询(详情见:https://cloud.google.com/bigquery/pricing#high-compute )。

查询通常包含读取、处理和写入三个阶段:
- 读取阶段 :此阶段耗时最长,说明查询受I/O限制,读取数据的基本成本主导了查询。从输入列的数据(2100万到16000再到229)可知,我们在前期阶段对数据进行筛选和处理已取得不错效果。例如,如果某个筛选条件经常使用,可添加一个表明各机场流量的表,每次查询时与该表进行连接,而非每次都计算聚合值。也可以添加一列表示机场所在都市圈的某些特征(如人口)来近似实现。若不需要所有数据的统计信息,可考虑对数据进行采样,在样本上计算统计信息。
- 处理阶段 :需考虑是否可以省略用户定义函数(UDF)的使用。
- 写入阶段 :将数据写入临时存储或响应,主要取决于每个阶段写出的数据量。优化此步骤通常可将过滤选项移到最内层查询(或最早阶段),不过BigQuery优化器可自动完成部分此类操作。

从图表中可发现,阶段1和阶段3没有等待偏差,但阶段2的等待时间有一点偏差。这是因为查询按机场分组,部分机场航班数量远多于其他机场,繁忙机场对应的数据写出耗时更长。若对小机场数据不感兴趣,可将其从数据中过滤出来,写入单独的表,后续查询该表。

2. 探索性数据分析的演变
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值