- 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 - 讨论
什么是Dremel?
BigQuery并非无限能力的工具。事实上,最好避免将BigQuery视为一个谚语中的黑盒。为了加深您的理解,有必要“深入了解”并检查BigQuery引擎的一些内部工作原理。
Google 的 Dremel:一个分布式计算框架
BigQuery基于一个名为Dremel的分布式计算框架,Google在2010年的一篇白皮书中更详细地解释了它:“Dremel:交互式分析网络规模数据集”。
这篇白皮书描述了定义现代BigQuery的许多核心特征的愿景,例如临时查询系统、几乎无限的计算能力以及对处理大数据(TB和PB)的重视。
Dremel是如何工作的?
由于Dremel最初是内部产品(自2006年以来在Google内部使用),它结合了搜索和并行数据库管理系统的各个方面。
为了执行查询,Dremel使用“树状”结构,其中查询的每个阶段都是按顺序执行的,并且可以并行执行多个查询。Dremel将SQL查询转换为执行树。
槽:BigQuery执行的基础单元
在“查询执行”标题下,作者描述了BigQuery执行的基础单元:槽。
- 槽是一个抽象概念,代表可用的处理单元。
- 槽是有限的,这就是为什么项目中的任何阻塞通常是由于缺乏槽可用性造成的。
- 由于槽的使用会根据许多因素(例如处理的数据量和一天中的时间)而变化,因此可以想象,在一天早些时候快速执行的查询现在可能需要几分钟。
槽的抽象可能是Dremel论文中表达的最适用的概念;其他信息有助于了解,但主要描述了BigQuery产品的早期迭代。
BigQuery:定价和使用模式
无论您是练习第一个BigQuery查询的学生,还是高层决策者,了解定价对于确定您可以在BigQuery中存储、访问和操作内容的限制至关重要。
要彻底了解BigQuery定价,最好将成本分为两部分:
- 使用情况(BigQuery的文档称之为“计算”)
- 存储
使用情况涵盖了您可以想到的几乎所有SQL活动,从运行简单的SELECT查询到部署ML模型或编写复杂的自定义函数。
对于任何与使用相关的活动,BigQuery提供以下选择:
- 按需付费或“按需”模式。
- 批量槽或“容量”模式,客户按槽小时付费。
哪种定价模式最适合您?
在决定两种定价模式之间时,务必考虑以下因素:
- 查询的数据量
- 产生的用户流量
“按需”模式按TB定价,这意味着对于拥有许多大型(多个TB)表的用户来说,这可能是一种直观且方便的跟踪费用的方式。
“容量”或槽模型对于正在发展其数据基础设施的组织或个人很有帮助,他们可能没有固定数量的数据来帮助他们计算可靠的每月费率。与其担心每个资源产生多少数据,不如将问题转移到改进最佳实践,以便将查询时间分配给计划流程和个人的临时查询。
本质上,槽模型遵循Dremel项目建立的框架,其中槽(服务器)被预留并相应定价。