18、BigQuery 性能优化与成本控制全解析

BigQuery 性能优化与成本控制全解析

1. BigQuery 查询基础与原理

在 BigQuery 中,存在一种元文件,它包含构成表的所有数据文件的元数据。当我们使用 WHERE field1 = 30 这样的谓词从表中查询时,可以先向这个元文件发送查询,它会返回我们所需的唯一文件是 file0002 。有了这个信息,我们就无需打开其他文件来满足查询需求。

BigQuery 查询执行过程涉及多个组件。从高级架构来看,查询从被 GFE 服务器接收开始,被路由到合适的 BigQuery 作业服务器,再由 Dremel 查询服务器处理。不同类型的查询有不同的执行阶段,从简单的扫描 - 过滤 - 计数查询到更复杂的扫描 - 过滤 - 聚合查询,甚至对于高基数的情况可能需要重新分区。

连接操作有两种实现方式:
- 广播连接:适用于小表。
- 哈希连接:适用于大表。
我们可以从查询计划中识别使用的是哪种连接机制。

数据存储方面,BigQuery 采用列格式存储数据,具有字典编码等优势,并且存储集的使用使得时间旅行查询成为可能。分区和聚类的实现有助于提高查询性能。

2. 性能优化原则

传奇计算机科学家 Donald Knuth 有句名言:过早优化是万恶之源。但他的完整表述更为平衡:我们大约 97% 的时间应该忽略小的效率问题,过早优化是万恶之源。然而,我们不应错过那关键的 3% 的优化机会。优秀的程序员不会因这种说法而自满,而是会在确定关键代码后仔细审视它。

性能调优应在开发阶段的后期进行,并且只有在发现典型查询运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值