- BigQuery 教程
- BigQuery - 首页
- BigQuery - 概述
- BigQuery - 初始设置
- BigQuery 与本地 SQL 引擎的比较
- BigQuery - Google Cloud Console
- BigQuery - Google Cloud 层次结构
- 什么是 Dremel?
- 什么是 BigQuery Studio?
- BigQuery - 数据集
- BigQuery - 表
- BigQuery - 视图
- BigQuery - 创建表
- BigQuery - 基本模式设计
- BigQuery - 修改表
- BigQuery - 复制表
- 删除和恢复表
- BigQuery - 填充表
- 标准 SQL 与传统 SQL
- BigQuery - 编写第一个查询
- BigQuery - CRUD 操作
- 分区和集群
- BigQuery - 数据类型
- BigQuery - 复杂数据类型
- BigQuery - STRUCT 数据类型
- BigQuery - ARRAY 数据类型
- BigQuery - JSON 数据类型
- BigQuery - 表元数据
- BigQuery - 用户自定义函数
- 连接到外部数据源
- 集成计划任务
- 集成 BigQuery API
- BigQuery - 集成 Airflow
- 集成连接的表格
- 集成数据传输
- BigQuery - 物化视图
- BigQuery - 角色和权限
- BigQuery - 查询优化
- BigQuery - BI 引擎
- 监控使用情况和性能
- BigQuery - 数据仓库
- 挑战与最佳实践
- BigQuery 资源
- BigQuery - 快速指南
- BigQuery - 资源
- BigQuery - 讨论
BigQuery - 查询优化
BigQuery 由云计算提供支持,但这并不意味着计算能力是无限的。它也不意味着每个查询的运行时间都完全相同,无论时间或有多少进程竞争插槽。
什么是查询优化?
优化是一个经常被数据工程和其他编程领域的人员使用的流行词。
对于SQL,优化分为两种形式:
- 基于代码的优化
- 基于平台的优化
基于代码的优化概念化和执行较为复杂。因此,本教程不包含此内容。相反,我们将重点介绍 BigQuery 中的工具,这些工具使用户能够准确跟踪并积极抑制过度使用。
通过提高可见性和创造性的槽分配,可以维护一个拥有多个用户的 BigQuery 项目,并为所有用户提供足够的存储空间和槽空间。这是通过以下方式实现的:
- 通过执行图和数据血缘工具跟踪使用情况。
- 以不同的模式运行查询,以减少在给定时间处理的数据量。
- 利用 BI 引擎等工具对重复违规者(表)进行分割,以主动限制在高流量时段处理的数据范围。
批处理模式与交互式模式
在 BigQuery Studio SQL 环境中编写前几个查询后,所有查询的运行方式似乎都相同。从某种意义上说,你是对的。所有查询都使用一定数量的槽,在执行期间以槽小时表示。但是,实际上有两种不同的方式来运行 BigQuery 查询以节省处理和成本。
大多数 BigQuery 查询在所谓的交互模式下执行。事实上,这是 BigQuery 查询的默认执行状态。并且 UI 不会使更改模式的能力可见或明显。要查看或更改查询的执行模式,需要导航到查询设置。
在该视图中,您可以配置下一个查询运行。除了选择查询模式外,开发人员还可以选择如何保存查询的结果,可以选择临时表、新的 BigQuery 表或覆盖现有表的内容。这些选项下方是选择批处理与交互式的菜单。
虽然交互模式会立即执行查询,但批处理模式允许用户:
- 排队所需的 BigQuery 作业。
- 运行低优先级查询,而不会影响高优先级作业(这些作业可能消耗更多资源)。
运行批处理作业可以帮助用户规避 BigQuery 查询执行限制:用户最多可以运行 20 个并发查询。
如果批处理作业与正在进行的交互式作业竞争槽,则批处理作业将被暂停或“排队”,直到有可用空间。这有助于节省资源并避免达到对交互式查询施加的硬速率限制。
广告