BigQuery 分析概览
本文档介绍了 BigQuery 如何处理查询,并简要介绍了几种可用于了解和分析数据的功能。
BigQuery 经过优化,可以对大型数据集运行分析查询,包括在数秒内处理 TB 级数据,在几分钟内处理 PB 级数据。了解其功能及其处理查询的方式可以帮助您最大程度实现数据分析投资的价值。
如需直接在 Google Cloud 控制台中浏览 BigQuery 的数据分析功能,请点击浏览。
分析工作流
BigQuery 支持多种数据分析工作流:
即席分析。BigQuery 使用 GoogleSQL(BigQuery 中的 SQL 方言)来支持临时分析。您可以在控制台中或通过与 BigQuery 集成的第三方工具运行查询。 Google Cloud
地理空间分析。BigQuery 使用地理数据类型和 GoogleSQL 地理函数来分析和直观呈现地理空间数据。如需了解这些数据类型和函数,请参阅地理空间分析简介。
搜索 Google Cloud 资源。使用自然语言搜索(预览版)在 BigQuery 中探索 Google Cloud 资源。
机器学习。借助 BigQuery ML,您可以使用 GoogleSQL 查询在 BigQuery 中创建和执行机器学习模型。
商业智能。BigQuery BI Engine 是一项高速内存中分析服务,可让您构建丰富的交互式信息中心和报告,而不会影响性能、可扩缩性、安全性或数据新鲜度。
AI 辅助。您可以使用 Gemini in BigQuery 准备和探索数据、生成 SQL 查询和 Python 代码,以及直观呈现结果。
数据浏览
在开始编写 SQL 查询之前,BigQuery 可以帮助您了解数据。如果您不熟悉自己的数据、不知道该问哪些问题,或者需要编写 SQL 方面的帮助,请使用以下功能:
表探索器。直观地探索表中值的范围和频率,并以互动方式构建查询。
数据分析洞见。生成有关数据的自然语言问题,以及用于回答这些问题的 SQL 查询。
数据分析扫描。查看数据的统计特征,包括平均值、唯一值、最大值和最小值。
数据画布。使用自然语言查询数据、通过图表直观呈现结果,以及提出后续问题。
查询
在 BigQuery 中分析数据的主要方式是运行 SQL 查询。GoogleSQL 方言支持 SQL:2011,并且包含支持地理空间分析和机器学习的扩展程序。
数据源
借助 BigQuery,您可以查询以下类型的数据源:
存储在 BigQuery 中的数据。您可以将数据加载到 BigQuery、使用数据操纵语言 (DML) 语句修改现有数据,或将查询结果写入表中。您可以查询时间旅行窗口内某个时间点的历史数据。
您可以查询存储在单区域或多区域位置中的数据,但无法对多个位置运行查询,即使一个是单区域位置,另一个是包含该单区域位置的多区域位置也是如此。如需了解详情,请参阅位置、预订和作业。
外部数据。您可以查询各种外部数据源,例如 Cloud Storage,或数据库服务,例如 Spanner 或 Cloud SQL。如需了解如何设置与外部数据源的连接,请参阅外部数据源简介
多云端数据。您可以查询存储在其他公有云(如 AWS 或 Azure)中的数据。如需了解如何设置与 Amazon Simple Storage Service (Amazon S3) 或 Azure Blob Storage 的连接,请参阅 BigQuery Omni 简介。
公共数据集。您可以分析公共数据集市场中提供的任何数据集。
BigQuery Sharing(以前称为 Analytics Hub)。您可以发布和订阅 BigQuery 数据集和 Pub/Sub 主题,以跨组织边界共享数据。如需了解详情,请参阅 BigQuery Sharing 简介。
查询类型
您可以使用以下查询作业类型之一来查询 BigQuery 数据:
交互式查询作业。默认情况下,BigQuery 将查询作为交互式查询作业运行,这些作业旨在尽快开始执行。
批量查询作业。批量查询的优先级低于交互式查询。当项目或预留使用其所有可用计算资源时,批量查询更有可能进入队列并保持在队列中。批量查询开始运行后,其运行方式与交互式查询相同。如需了解详情,请参阅查询队列。
持续查询作业(预览版)。借助这些作业,查询会持续运行,让您能够实时分析 BigQuery 中的传入数据,然后将结果写入 BigQuery 表,或将结果导出到 Bigtable 或 Pub/Sub。您可以使用此功能执行对时间敏感的任务,例如创建数据洞见并立即采取行动、应用实时机器学习 (ML) 推理,以及构建事件驱动型数据流水线。
您可以使用以下方法运行查询作业:
- 在 Google Cloud 控制台中编写和运行查询。
- 在 bq 命令行工具中运行
bq query
命令。 - 以编程方式调用 BigQuery REST API 中的
jobs.query
或jobs.insert
方法。 - 使用 BigQuery 客户端库。
保存的查询和共享的查询
保存的查询可以不公开(仅对您可见)、在项目级层共享(对具体主账号可见)或公开(任何人都可以查看)。如需了解详情,请参阅使用已保存的查询。
BigQuery 处理查询的方式
BigQuery 运行查询时会发生多个进程:
执行树。在运行查询时,BigQuery 会生成执行树,以将查询分为几个阶段。这些阶段包含可以并行运行的步骤。
Shuffle 层。各阶段使用快速分布式 Shuffle 层相互通信,Shuffle 层用于存储由阶段工作器生成的中间数据。Shuffle 层尽可能利用 PB 级网络和 RAM 等技术来将数据快速移动到工作器节点。
查询计划。当 BigQuery 拥有运行查询所需的所有信息时,会生成查询计划。您可以在 Google Cloud 控制台中查看查询计划,并使用它来排查问题或优化查询性能。
查询执行图。您可以按图形格式查看任何查询的查询计划信息,无论是正在运行还是已完成,并查看性能数据分析,以帮助您优化查询。
查询监控和动态计划。除了执行查询计划本身工作的工作器之外,其他工作器还会监控并指导整个系统的整体工作进度。随着查询的进行,BigQuery 可能会动态调整查询计划,以适应不同阶段的结果。
查询结果。查询完成后,BigQuery 会将结果写入永久性存储空间并返回给用户。这种设计可让 BigQuery 在下次运行查询时提供缓存的结果。
查询并发和性能
由于 BigQuery 环境的共享特性、使用缓存的查询结果,或者由于 BigQuery 在查询运行时动态调整查询计划,因此对相同数据反复运行的查询的表现可能会有差异。对于有许多查询并发运行的典型忙碌系统,BigQuery 会使用多个进程来消除查询性能差异:
BigQuery 并行运行许多查询,并且可以将查询加入队列,以便在有资源可用时运行。
查询开始和完成时,BigQuery 会在新查询和正在运行的查询之间公平地重新分配资源。此过程可确保查询性能不取决于查询提交顺序,而是取决于在指定时间运行的查询数量。
查询优化
运行查询时,您可以在 Google Cloud 控制台中查看查询计划。还可使用 INFORMATION_SCHEMA.JOBS*
视图或 jobs.get
REST API 方法请求执行详细信息。
查询计划包括有关查询阶段和步骤的详细信息。这些详细信息可帮助您确定改善查询性能的方法。例如,如果您发现某个阶段写入的输出比其他阶段多得多,则可能意味着您需要在查询的早期阶段进行过滤。
如需详细了解查询计划和查询优化,请参阅以下资源:
查询监控
监控和日志记录对于在云端运行可靠应用至关重要。BigQuery 工作负载也不例外,尤其是在工作负载量大或工作负载是任务关键型工作负载的情况下。BigQuery 提供各种指标、日志和元数据视图,可帮助您监控 BigQuery 使用情况。
如需了解详情,请参阅以下资源:
- 如需了解 BigQuery 中的监控选项,请参阅 BigQuery 监控简介。
- 如需了解审核日志以及如何分析查询行为,请参阅 BigQuery 审核日志。
查询价格
BigQuery 为分析提供了两种价格模式:
如需了解这两种价格模式,并详细了解如何进行基于容量的价格的预留,请参阅预留简介。
配额和查询费用控制
BigQuery 会对正在运行的查询强制执行项目级层配额。如需了解查询配额,请参阅配额和限制。
BigQuery 提供了多种查询费用控制选项,包括自定义配额和结算提醒。如需了解详情,请参阅创建自定义费用控制条件。
数据分析功能
BigQuery 支持描述性分析和预测分析,可帮助您利用 AI 赋能的工具、SQL、机器学习、记事本和其他第三方集成来探索数据。
BigQuery Studio
BigQuery Studio 可帮助您使用以下功能在 BigQuery 中发现、分析数据并对其运行推理:
- 强大的 SQL 编辑器,可提供代码补全和生成、查询验证和估计处理的字节数等功能。
- 使用 Colab Enterprise 构建的嵌入式 Python 笔记本。Notebooks 提供一键式 Python 开发运行时以及对 BigQuery DataFrame 的内置支持。
- PySpark 编辑器,可让您为 Apache Spark 创建 Python 存储过程。
- 笔记本和已保存的查询等代码资源的资源管理和版本历史记录,基于 Dataform 构建。
- SQL 编辑器和笔记本中的辅助式代码开发,基于 Gemini 生成式 AI(预览版)构建。
- Dataplex Universal Catalog 功能,用于数据发现,以及数据分析和数据质量扫描。
- 能够按用户或项目查看作业历史记录。
- 能够通过连接到 Looker 和 Google 表格等其他工具分析已保存的查询结果,以及导出已保存的查询结果以在其他应用中使用。
BigQuery ML
借助 BigQuery ML,您可以在 BigQuery 中使用 SQL 来执行机器学习 (ML) 和预测分析。如需了解详情,请参阅 BigQuery ML 简介。
分析工具集成
除了在 BigQuery 中运行查询之外,您还可以使用与 BigQuery 集成的各种分析工具和商业智能工具来分析数据,例如:
Looker。Looker 是一个提供商业智能、数据应用和嵌入式分析的企业级平台。Looker 平台可与许多数据存储区(包括 BigQuery)搭配使用。如需了解如何将 Looker 连接到 BigQuery,请参阅使用 Looker。
Looker Studio。运行查询后,您可以直接从Google Cloud 控制台中的 BigQuery 启动 Looker Studio。然后,您可以在 Looker 数据洞察中创建可视化效果并探索查询返回的数据。如需了解 Looker 数据洞察,请参阅 Looker 数据洞察概览。
关联工作表。您还可以直接从控制台中的 BigQuery 启动关联工作表。关联工作表会根据您的请求或按照定义的时间表,代表您运行 BigQuery 查询。相应查询结果会保存在您的电子表格中,以用于分析和共享。如需了解关联工作表,请参阅使用关联工作表。
Tableau。您可以从 Tableau 连接到数据集。使用 BigQuery 为图表、信息中心和其他数据可视化功能提供支持。
第三方工具集成
多种第三方分析工具可与 BigQuery 配合使用。例如,您可以将 Tableau 连接到 BigQuery 数据,并使用其直观呈现工具分析和共享您的分析。如需详细了解使用第三方工具时的注意事项,请参阅第三方工具集成。
ODBC 和 JDBC 驱动程序可供使用,并可用于将应用与 BigQuery 集成。这些驱动程序旨在帮助用户将 BigQuery 的强大功能与现有的工具和基础架构搭配使用。如需了解最新版本和已知问题,请参阅适用于 BigQuery 的 ODBC 和 JDBC 驱动程序。
诸如 pandas-gbq
之类的 Pandas 库可让您与 Jupyter 笔记本中的 BigQuery 数据进行交互。如需了解此库及其与使用 BigQuery Python 客户端库的比较,请参阅与 pandas-gbq
的比较。
您还可以将 BigQuery 与其他笔记本和分析工具一起使用。如需了解详情,请参阅程序化分析工具。
如需查看 BigQuery 分析和更广泛的技术合作伙伴的完整列表,请参阅 BigQuery 产品页面上的合作伙伴列表。
后续步骤
- 如需简要了解支持的 SQL 语句,请参阅 BigQuery 中的 SQL 简介。
- 如需了解在 BigQuery 中查询数据时使用的 GoogleSQL 语法,请参阅 GoogleSQL 中的查询语法。
- 了解如何在 BigQuery 中运行查询。
- 详细了解如何优化查询性能。
- 了解如何开始使用笔记本。
- 了解如何安排定期查询。