Tracks
我与大数据结缘是在 10 多年前,彼时我在广告技术领域担任软件工程师。那时,数据集开始快速增长并呈爆炸式膨胀。这既是巨大机遇,也是挑战。用于回答基础却关键的报表问题的查询,忽然需要耗费数小时。
作为应对之策,我从 2013 年开始使用 BigQuery 等列式数据库。由于其基于云,它们让我们能够高性能、具成本效益地运行分析型负载,并在需要时扩展资源。过去几年里,我带领一支大型数据工程师团队,构建了一个超过 10 PB 的 BigQuery 数据仓库,以适应快速增长的家居产品目录和不断增长的分析需求。
如今,作为 DataCamp 的首席技术官,我领导不同的工程与内容团队,帮助我们的用户学习并实践这些技能(以及更多)。我坚信,像 BigQuery 这样的云数据仓库能让许多工作流程高效得多。这也是我希望在本教程中与您分享我的经验的原因。
在本指南中,您将了解 BigQuery 是什么、如何工作,以及它与传统数据仓库的差异。您还将学习如何使用 BigQuery 控制台查询 Google 提供的公共数据集,并通过一个实际示例查询 Google Trends,了解热门话题。
要点速览
- BigQuery 是 Google Cloud 提供的全托管、无服务器数据仓库,可使用标准 SQL 查询 PB 级数据
- 它将存储与计算分离,因此二者可独立扩展且无需管理基础设施
- 免费沙盒每月提供 1 TiB 的查询额度,并可访问公共数据集,无需信用卡
- 与面向行的 OLTP 数据库不同,BigQuery 采用为分析型(OLAP)工作负载优化的列式存储格式
- 通过 BigQuery ML,您可以使用 SQL 直接在仓库中构建并部署机器学习模型
什么是 BigQuery?
BigQuery 是 Google 开发的全托管、无服务器数据仓库,用于大规模存储与分析数据。组织可使用 SQL 在 PB 级数据上运行分析型查询,而无需管理任何基础设施。
您可以通过 Google Cloud 控制台、bq 命令行工具,或 Python、Java、Go、Node.js、C#、PHP、Ruby 的客户端库与 BigQuery 交互。
BigQuery 还内置了机器学习功能(BigQuery ML),允许您使用 SQL 在仓库中直接创建和运行机器学习模型。您也可以从 Vertex AI 或其他框架导入外部训练的模型。
本教程面向刚开始使用 BigQuery 的数据分析师、数据工程师和数据仓库管理员。若您希望进一步深入,我们的 BigQuery 入门课程涵盖查询优化和高级工作流程。您也可以查看我们的 BigQuery 沙盒指南和完整 GCP 数据仓库教程。
传统数据仓库 vs 云数据仓库
传统数据仓库部署在本地,通常需要高昂的前期成本、专业团队来运维,并且由于传统数据中心资源扩展的刚性,还需要充分规划以应对不断增长的需求。
相较之下,云数据仓库由云服务提供商托管与管理。示例包括 Google BigQuery、Amazon Redshift 和 Snowflake。
云数据仓库的优势
一般来说,云数据仓库相较传统数据仓库具有以下多项优势:
- 为规模化而生,充分利用云环境的灵活性
- 速度与性能更佳
- 灵活的定价与云环境有助于成本优化(例如在低需求时期缩减规模)
- 可全托管或部分托管,从而降低运维成本。
行式数据库 vs 列式数据库
行式数据库示例:

列式数据库示例:

行式数据库适合整行查找、插入记录和更新操作,但在分析型工作负载上表现不佳。
例如,当您从一个包含 50 列的表中查询 3 列时,行式数据库仍会为每一行读取全部 50 列。列式数据库则只读取您需要的 3 列,这对产品预测或临时报表等分析任务要快得多。
行式数据库通常更适合联机事务处理(OLTP),而列式数据库更适合联机分析处理(OLAP)。
OLTP 与 OLAP
- OLTP 是一种用于面向事务应用的数据库系统。“联机”意味着此类系统需要对用户请求做出响应并实时处理它们(即处理事务)。
- 该术语与联机分析处理(OLAP)相对,后者侧重于数据分析。
对比摘要:
|
行式数据库 |
列式数据库 |
||||||
|
存储方式 |
按行 |
按列 |
|||||
|
数据读取 |
完整记录 |
相关列 |
|||||
|
典型应用 |
OLTP |
OLAP |
|||||
|
速度优势 |
插入、更新、查找 |
用于报表的查询 |
|||||
|
数据加载 |
通常逐条记录 |
通常批量 |
|||||
|
常见选项 |
Postgres、MySQL、Oracle、Microsoft SQL Server |
Snowflake、Google BigQuery、Amazon Redshift |
|||||
BigQuery 的工作原理
BigQuery 将计算引擎与存储分离,使二者可独立扩展。其结果是:您可以在数秒内查询 TB 级数据,在数分钟内查询 PB 级数据。
当 BigQuery 运行查询时,查询引擎会并行分发工作,扫描存储中的相关表,合并结果,并返回最终数据集。

2026 年的 BigQuery 关键功能
自 BigQuery 推出以来,Google 增加了多项功能,使其能力超越传统数据仓库:
- BigQuery ML —— 使用 SQL 构建、训练与部署机器学习模型。支持线性回归、分类、时间序列预测等。
- Gemini in BigQuery —— 借助 AI 用自然语言辅助编写查询、理解模式并生成数据洞察。
- BigQuery Studio —— 在 BigQuery 控制台内提供融合 SQL、Python 笔记本与 Spark 的统一工作空间。
- 联邦查询(Federated queries) —— 无需将数据移入 BigQuery,即可查询 Cloud SQL、Cloud Storage、Bigtable 等来源的数据。
- BigQuery Omni —— 在无需将数据复制到 Google Cloud 的情况下,对存储在 AWS 或 Azure 上的数据运行 BigQuery 分析。
如何开始使用 BigQuery
BigQuery 沙盒允许您在不提供信用卡或创建结算账号的情况下尝试 BigQuery。本节将演示如何访问 BigQuery,并使用沙盒设置您的第一个项目。
您可以通过 Google Cloud 控制台访问 BigQuery。您需要使用 Google 账号登录(或创建一个)。登录后,将看到欢迎页面:

您可以在左侧菜单栏找到 BigQuery。点击后将进入如下页面:

使用 BigQuery 沙盒
要使用 BigQuery 沙盒,首先点击“选择项目(Select Project)”创建一个项目。

然后点击“新建项目(New Project)”:

您需要提供一个项目名称;在本指南中,我们使用 datacamp-guide-project

现在 BigQuery 页面会显示沙盒通知,表明您已成功启用 BigQuery 沙盒。

启用 BigQuery 沙盒后,您可以使用新项目来加载和查询数据,并查询 Google 公共数据集。
创建数据集与表
在创建表之前,您需要在新项目中创建一个数据集。数据集是用于组织并控制一组表与视图访问权限的顶层容器。要创建数据集,请点击项目的“操作(Actions)”图标:

在本指南中,我们将“数据集 ID(Dataset ID)”填写为“main”。

您可以使用 SQL 创建表。BigQuery 使用 GoogleSQL,其遵循 ANSI 标准。
CREATE TABLE datacamp-guide-project.main.users (
id INT64 NOT NULL,
first_name STRING NOT NULL,
middle_name STRING,
last_name STRING NOT NULL,
active_account BOOL NOT NULL
);
您也可以使用 BigQuery 控制台界面:

注意:在沙盒环境中无法插入数据。若您想尝试插入数据,需要启用免费试用。接下来的章节将重点介绍查询 Google Cloud 提供的公共数据集。
使用 BigQuery 控制台查询公共数据集
要查询公共数据集,请按以下步骤操作:
1. 点击 Explorer 旁的“添加(Add)”。

2. 然后选择一个数据集。

3. 搜索“Google Trends”并选择 Google Trends,然后点击“查看数据集(View dataset)”按钮。

4. bigquery-public-data 会显示一个很长的数据集列表。将 bigquery-public-data 加星标,使其在资源管理器中保持“置顶”。

使用 Google Trends 数据集的实用示例
我们将使用 top_terms 表:

点击 top_terms 表打开,查看“详情(Details)”与“预览(Preview)”以进一步了解 top_terms 数据。


您可以查询该数据集。下面的示例用于获取过去两周内排名第一的词条:
SELECT
term
FROM
bigquery-public-data.google_trends.top_terms
WHERE
rank = 1
AND refresh_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)
GROUP BY
term
结果(会有所不同):

BigQuery 定价
BigQuery 的定价主要由两部分构成:计算(查询处理)与存储。
| 组件 | 免费层 | 付费定价 |
|---|---|---|
| 按需查询 | 每月 1 TiB | $6.25/每 TiB |
| 存储(活跃) | 10 GiB | $0.02/每 GiB/月 |
| 存储(长期) | 10 GiB | $0.01/每 GiB/月 |
| 流式插入 | N/A | $0.05/每 200 MB |
对于工作负载可预测的团队,BigQuery 还通过容量预留(BigQuery Editions)提供包年包月定价。请查看官方定价页面了解最新费率。
结语
BigQuery 是进入云数据仓库领域最易上手的选择之一。沙盒提供零风险的试验环境,而每月 1 TiB 的免费查询额度意味着您可以不花一分钱探索公共数据集。当您需要更多资源时,Google Cloud 的免费试用将提供 300 美元代金券。
如果您想在此基础上继续学习,推荐 DataCamp 的 BigQuery 入门课程,涵盖查询优化与处理更大数据集。若您希望更全面地了解数据工程,Python 数据工程师学习路径涵盖从数据摄取到入库的完整流程。
您还可以在我们的BigQuery vs Redshift与BigQuery vs Snowflake对比文章中了解 BigQuery 与替代方案的差异,或通过BigQuery 面试题指南为面试做好准备。