开发者工具和功能

本文档简要介绍了一些功能和工具,这些功能和工具可帮助您使用 BigQuery 开发解决方案。

BigQuery 架构图。

开发者功能

本部分介绍了面向使用 BigQuery 的开发者的一些常见内置功能。

加载和转换数据

BigQuery 提供了多种批量加载、流式传输和生成新数据的方法。如需选择最适合您的使用场景的选项,请参阅加载数据简介

查询

BigQuery 经过优化,可以运行在大型数据集上用 GoogleSQL 编写的分析查询。您可以安排、保存和共享对 BigQuery 中存储的数据、外部数据、其他云中存储的数据或公共数据集运行的查询。

远程函数

您可以使用远程函数Cloud Run functionsCloud Run 中部署您的函数,然后直接从您的 GoogleSQL 查询中调用它们。如果您需要使用非 SQL 或 JavaScript 语言实现函数,此方法特别有用。您可以将远程功能用于许多方面,例如将表中的文本从一种语言翻译成另一种语言,启动操作(例如当表中的值低于阈值时通知您),或者运行批量转换(例如应用机器学习 (ML))模型。

机器学习

您可以借助 BigQuery ML,通过 GoogleSQL 查询创建和执行机器学习模型。

SQL 存储过程

您可以使用 SQL 存储过程从其他查询或存储过程调用语句集合。您可以调用内置存储过程或编写自己的过程,从而定义变量并实现控制流。

半结构化数据

您可以使用 GoogleSQL 中的 JSON 数据将半结构化数据注入 BigQuery 中,而无需预先提供架构。您可以使用字段访问运算符直接查询字段的值和数组元素。

时间旅行

您可以使用时间旅行访问存储在 BigQuery 中且在过去 7 天内任意时候更改或删除的数据。利用此功能,您可以恢复更新、删除或过期的表,即使您尚未备份数据也可以。

表快照

如果您需要从时间旅行窗口之外的某个时间点备份表,可以使用表快照。BigQuery 仅存储快照与其基表之间不同的字节,因此表快照使用的存储空间通常少于表的完整副本。

表克隆

您可以使用表克隆对表进行版本控制,并测试表架构更改。表克隆是另一个表的可写轻量级副本。您只需为表克隆中与基表不同的数据支付存储费用,因此表克隆最初是没有存储费用的。

外部表

您可以直接从 BigQuery 查询外部表,例如其他 Google Cloud 数据库中的数据、Cloud Storage 中的文件,或者其他不同云产品中的数据。利用该功能,您可以使用单个查询执行 ELT 工作负载,或将 BigQuery 表与来自其他来源的数据频繁更改联接。

用户定义的函数

您可以使用 GoogleSQL 或 JavaScript 编写用户定义的函数 (UDF),以便在各查询中重复使用。您可以将 UDF 授权为例程,以便与特定用户或群组共享查询结果,而无需为这些用户或群组授予底层表访问权限。

BigQuery API

BigQuery 提供 REST API 和 gRPC API,以通过编程方式连接到不同类型的服务。您可以使用服务账号或用户账号对客户端的身份进行authenticate,以访问 API。您可以使用以下 API:

如需详细了解每个 API 提供的功能,请参阅 BigQuery API 和库概览

BigQuery DataFrame 库

BigQuery DataFrames 是一种 Python API,可用于在 BigQuery 中分析数据和执行机器学习任务。 您可以在 GitHub 上查看 API 的源代码

通过 BigQuery DataFrames 快速入门开始使用 BigQuery DataFrames。

客户端库

通过客户端库,您可以使用首选编程语言(包括 C#、Go、Java、Node.js、PHP、Python 和 Ruby)直接访问 BigQuery API。如需查看 BigQuery API 的这些资源,请选择以下语言之一:

C#

Go

Java

Node.js

PHP

Python

Ruby

如需详细了解如何在本地环境中使用 BigQuery 客户端库,请参阅 BigQuery API 客户端库

代码示例

您可以浏览 BigQuery 代码示例,这些代码段提供了用于在 BigQuery 中完成常见任务(例如创建表、列出连接、查看容量承诺和预留以及加载数据)的完整代码段。如需查看示例,请选择 API、任务和您的首选语言。

程序化工具和服务

以下服务已与 BigQuery 集成,可为构建解决方案提供更多功能:

  • Dataproc。 用于运行 Apache Hadoop 和 Apache Spark 作业的全托管式服务。Dataproc 提供了 BigQuery 连接器,可让 Hadoop 和 Spark 直接处理来自 BigQuery 的数据。
  • Dataflow。 一种用于大规模运行 Apache Beam 作业的全托管式服务。适用于 Beam 的 BigQuery I/O 连接器允许 Beam 流水线从 BigQuery 读取数据以及向其写入数据。
  • Cloud Composer。 基于 Apache Airflow 构建的全代管式工作流编排服务。 BigQuery 运算符让 Airflow 工作流可以管理数据集和表、运行查询以及验证数据。
  • Pub/Sub。 一种异步且可扩缩的通讯服务。 Pub/Sub 提供 BigQuery 订阅,以便在收到消息时将其写入现有 BigQuery 表。

持续集成和部署

以下选项可帮助您使用 BigQuery 管理和自动执行开发者工作流:

  • BigQuery Terraform 模块。 一个用于自动执行 BigQuery 数据集和表的实例化和部署的模块。
  • bq 命令行工具。 一种基于 python 的 BigQuery 命令行工具。
  • Dataform。 一种供数据分析师开发、测试、版本控制和安排复杂 SQL 工作流以在 BigQuery 中进行数据转换的服务。
  • dbt。 一个可帮助您编排和部署工作流、测试和编制数据目录并将代码段作为宏重复使用的框架。
  • Liquibase。 一种数据库架构变更管理解决方案,可让您快速安全地修改和发布从开发环境到生产环境的更改。

ODBC 和 JDBC 驱动程序

借助 Open Database Connectivity (ODBC) 和 Java Database Connectivity (JDBC) 驱动程序,您可以使用主流编程语言编写数据库中立软件应用,以将 BigQuery 连接到现有基础架构。如需了解详情和最新的驱动程序版本,请参阅适用于 BigQuery 的 ODBC 和 JDBC 驱动程序

后续步骤