BigQuery - 概述
BigQuery 是 Google Cloud Platform (GCP) 的结构化查询语言 (SQL) 引擎。BigQuery 允许用户使用无服务器云基础架构即时查询、创建和操作数据集。因此,学生、专业人士和组织能够以几乎无限的规模存储和分析数据。
与 Google 的其他几项计划一样,BigQuery 最初是 Google 开发人员用来处理和分析大型数据集的内部工具。自 2006 年以来,Google 员工一直在使用 BigQuery 及其前身 Dremel。在 Google 内部取得成功后,GCP 于 2010 年首次发布了 BigQuery 测试版,并于 2011 年广泛推出该工具。
BigQuery 如何超越竞争对手?
尽管在 BigQuery 发布时市场上有许多 SQL 引擎和集成开发环境 (IDE),但 BigQuery 利用了多项竞争优势,其中包括 −
- 开创了基于插槽(Slot)的查询系统,该系统可以根据用户需求自动分配计算能力或"插槽(Slot)位"
- 提供与各种 API 集成从 Python 到 JavaScript 的编程语言
- 为用户提供训练、运行和部署用 SQL 编写的机器学习模型的能力
- 与 Google Data Studio(已弃用)和 Looker 等可视化平台无缝集成
- 存储和查询 ARRAY 和 STRUCT 类型(两种复杂的 SQL 数据类型)的能力
为了帮助学生和专业人士,BigQuery 维护了有关函数、公共数据集和可用集成的强大文档。
Google BigQuery 用例
如果使用得当,Google BigQuery 可以用作个人或组织数据仓库。但是,由于 BigQuery 面向 SQL,因此最好将其用于具有结构化数据而非非结构化数据的来源。
Google 的云架构有助于实现可靠的存储,并实现几乎无限的可扩展性。这使得 BigQuery 成为一种受欢迎的企业选择,尤其是对于生成或提取大量数据的组织而言。
要真正了解 BigQuery 的强大功能,了解不同数据团队角色之间的用例差异会很有帮助。
- 数据分析师 − 使用 BigQuery 与 Tableau 或 Looker 等数据可视化工具结合使用,为组织领导层创建头条报告。
- 数据科学家 − 利用 BigQuery 的机器学习功能 Big ML 来创建和实施 ML 模型。
- 数据工程师 −使用 BigQuery 作为数据仓库,并构建视图和用户定义函数等工具,使最终用户能够在清理的预处理数据集中发现见解。
当结合使用时,BigQuery 提供了优化存储和生成细微见解的机会,从而提高增长和收入。
在 BigQuery 中加载数据
在 BigQuery 中加载数据简单直观,云开发人员可以使用多种选项。BigQuery 可以提取多种形式的数据,包括 −
- CSV
- JSON
- Parquet
BigQuery 还可以与 Google 表格等 Google 集成同步以创建实时连接表。BigQuery 可以加载存储在 Google Cloud Storage 等云存储库中的文件。
开发人员还可以利用以下方法将数据干净地加载到 BigQuery 中 −
- BigQuery Transfers,一种无代码数据管道,可与 Google Analytics 等 GCP 数据集成。
- 基于 SQL 的管道,具有用于创建、删除或删除表的 CRUD 语句。
- 利用 BigQuery API 执行批量或流式加载作业的管道。
- 提供 BigQuery 连接的第三方管道,如 Fivetran。
定期从上述来源加载数据使下游利益相关者能够可靠地访问及时、准确的数据。
BigQuery 查询基础知识
虽然了解 BigQuery 用例以及如何正确加载数据很有帮助,但学习 BigQuery 的初学者很可能会从查询开始层。
BigQuery 中的表引用约定
在编写第一个 SELECT 语句之前,了解 BigQuery 中的表引用约定会很有帮助。
BigQuery 语法与其他 SQL 方言不同,因为正确的 BigQuery SQL 要求开发人员将表引用括在单引号中,就像这样 − ' '.
表引用涉及三个元素 −
- 项目
- 数据集
- 表
综合起来,在 SQL 查询或脚本中引用 BigQuery 表时,它看起来像这样 −
'my_project.dataset.table'
基本的 BigQuery 查询看起来像这样 −
SELECT * FROM 'my_project.dataset.table.'
旧版 SQL 和标准 SQL
BigQuery SQL 与其他类型的 SQL 之间的一个重要区别是,BigQuery 支持两种 SQL 分类:旧版 和 标准。
- 旧版 SQL 允许用户使用较旧的、可能已弃用的 SQL 函数。
- 标准 SQL 代表了对 SQL 的更新解释。
出于我们的目的,我们将使用标准 SQL 名称。
在 BigQuery 中编写查询时的注意事项
与其他 SQL 环境不同,当您在 BigQuery 中编写查询时,UI 会自动告诉您查询是否会运行以及它将处理多少数据。请注意,处理的数据量和预计的执行时间之间几乎没有明确的相关性。
- 执行后,您的查询将返回在 UI 中可见的结果,这类似于查看电子表格或 Pandas 数据框。
- 您还可以选择下载结果为 CSV 或 JSON 文件,这两种文件都提供了一种简单的方法来保存数据以供以后使用。
- 如果您需要保存查询文本以供以后运行或编辑,BigQuery 还提供了一个选项,可以使用版本控制保存查询来帮助跟踪更改。
在企业级运行 BigQuery
在具有多个 BigQuery 用户的组织中运行查询时,务必牢记几个因素,以确保您的查询运行不中断或不会对其他用户造成拥塞−
- 避免在使用高峰时段执行查询。
- 尽可能使用 WHERE 子句缩小处理的数据量。
- 对于大型表,创建用户可以更轻松、更高效地查询的视图。
从学习 BigQuery 过渡到在企业级运行查询需要时间来了解特定于您的组织的变量,例如插槽(Slot)使用情况和计算资源消耗。
但是,首先,有必要更深入地了解在 BigQuery 中构建和优化查询。