程序化分析工具

本文档介绍了多种用于编写和运行代码以分析在 BigQuery 中管理的数据的方法。

虽然 SQL 是一种功能强大的查询语言,但 Python、Java 或 R 等编程语言也提供了语法和大量内置统计函数,数据分析师可能会发现这些语言对特定类型的数据分析更具表现力和操作性。

同样,虽然电子表格被广泛使用,但笔记本等其他编程环境有时可提供更灵活的环境来进行复杂的数据分析和探索。

Jupyter 笔记本

Jupyter 是一个开源 Web 应用,用于发布包含实时代码、文本说明和可视化的笔记本。该平台通常供数据科学家、机器学习专家和学生用于进行数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等。

Jupyter 笔记本在 IPython 内核的基础上进行构建,IPython 内核是一种功能强大的互动式 shell,可通过适用于 BigQuery 的 IPython 魔法命令与 BigQuery 直接互动。或者,您还可以通过安装任何可用的 BigQuery 客户端库从 Jupyter 笔记本实例访问 BigQuery。您可以通过 GeoJSON 扩展程序使用 Jupyter 笔记本直观呈现 BigQuery GIS 数据。如需详细了解 BigQuery 集成,请参阅在 Jupyter 笔记本中直观呈现 BigQuery 数据教程。

显示 BigQuery GIS 数据可视化的 Jupyter 笔记本图表。

JupyterLab 是一个网页界面,用于管理文档和活动,例如 Jupyter 笔记本、文本编辑器、终端和自定义组件。借助 JupyterLab,您可以使用标签和分隔符在工作区中并行安排多个文档和活动。

JupyterLab:使用标签和分隔符在工作区中并行安排多个文档和活动。

您可以使用以下任一产品在 Google Cloud 上部署 Jupyter 笔记本和 JupyterLab 环境:

Apache Zapepelin

Apache Zeppelin 是一个开源项目,提供用于数据分析的 Web 笔记本。 您可以安装 Zeppelin 可选组件,以在 Dataproc 上部署 Apache Zeppelin 实例。默认情况下,笔记本保存在 Cloud Storage 的 Dataproc 暂存存储桶中,该存储桶由用户指定或在创建集群时自动创建。您可以在创建集群时添加 zeppelin:zeppelin.notebook.gcs.dir 属性来更改笔记本位置。如需详细了解如何安装和配置 Apache Zeppelin,请参阅 Zeppelin 组件指南。如需查看示例,请参阅使用适用于 Apache Zeppelin 的 BigQuery Parser 分析 BigQuery 数据集

Zeppelin 中显示的表数据的 SQL 分析。

Apache Hadoop、Apache Spark 和 Apache Hive

在数据分析流水线迁移过程中,您可能需要迁移一些需要直接处理数据仓库中的数据的旧版 Apache HadoopApache SparkApache Hive 作业。例如,您可能会提取您的机器学习工作负载的特征。

借助 Dataproc,您可以通过高效且经济实惠的方式部署全托管式 Hadoop 和 Spark 集群。Dataproc 与开源 BigQuery 连接器集成。这些连接器使用 BigQuery Storage API,此 API 通过 gRPC 直接从 BigQuery 并行流式传输数据。

当您将现有 Hadoop 和 Spark 工作负载迁移到 Dataproc 时,可以检查受支持的 Dataproc 版本是否涵盖工作负载的依赖项。如需安装自定义软件,您可以考虑创建自己的 Dataproc 映像、编写自己的初始化操作指定自定义 Python 软件包要求

如需开始使用此工具,请参阅 Dataproc 快速入门指南BigQuery 连接器代码示例

Apache Beam

Apache Beam 是一种开源框架,提供一组丰富的数据选取和会话分析基本功能,以及一个包含来源连接器与接收器连接器(包括 BigQuery 的连接器)的生态系统。您可以通过 Apache Beam 以流式(实时)模式和批量(历史)模式对数据进行转换并丰富数据内容,同时保持同等的可靠性和表现力。

Dataflow 是一种用于大规模运行 Apache Beam 作业的全代管式服务。Dataflow 的无服务器方案减免了运营开销,同时可自动处理性能、规模、可用性、安全性和合规性方面的问题,因此您可专注于编程,而不用去管理服务器集群。

包含一个展开式复合转换的执行图 (MakeMapView)。用于创建辅助输入的子转换 (CreateDataflowView) 处于选中状态,并且辅助输入指标显示在“步骤”标签中。

您可以通过命令行界面Java SDKPython SDK 提交 Dataflow 作业。

如果您想将数据查询和流水线从其他框架迁移到 Apache Beam 和 Dataflow,请参阅 Apache Beam 编程模型并浏览官方的 Dataflow 文档

RStudio

数据科学家经常使用 R 编程语言构建数据分析工具和统计应用。 RStudio 开发了针对 R 语言的免费开源工具和面向企业的专业产品,以便团队可以扩缩和共享工作。RStudio 的产品(例如 RStudio Server Pro)可简化采用 R 语言的数据分析,并提供强大的发布和共享工具。

RStudio Server Pro 是一个需要商业许可的按需集成开发环境 (IDE)。它提供了热门的 RStudio 开源 IDE 中的功能、一站式便捷性、增强的安全性,还可以管理多个 R 版本和会话。

您可以从 Cloud Marketplace 部署适用于 Google Cloud 的 RStudio Server Pro 组件。此版本与 RStudio Server Pro 相同,但为数据科学家提供了更多便利,包括预安装多个版本的 R 和通用系统库。它还包括 bigrquery(适用于 R 的 BigQuery 软件包),bigrquery 提供 DBIdplyr 后端,让您可以使用低级别 SQL 或高级别 dplyr 谓词与 BigQuery 进行交互。借助此软件包,您可以查询 BigQuery 表并检索项目、数据集、表和作业的相关元数据,从而简化对 BigQuery 中存储的数据的处理。如需了解详情,请参阅适用于 Google Cloud 的 RStudio Server Pro 使用入门官方指南和适用于 Google Cloud 的 RStudio Server Pro 常见问题解答

您也可以在 Dataproc 集群上安装 RStudio Server 的开源版本。在 Dataproc 上运行 RStudio 的优势在于,您可以利用 Dataproc 自动扩缩功能。借助自动扩缩功能,您可以在开发 SparkR 逻辑时设置最小的集群大小。当您提交作业进行大规模处理时,操作完全相同,也无需对服务器进行任何更改。将 SparkR 作业提交到 RStudio 后,Dataproc 集群可以在您设置的时间间隔内进行扩缩,以满足作业的需求。如需详细了解 RStudio 与 Dataproc 的集成,请参阅官方公告

其他资源

BigQuery 提供大量支持 Java、Go、Python、JavaScript、PHP 和 Ruby 等多种编程语言的客户端库。一些数据分析框架(如 Pandas)提供了可直接与 BigQuery 进行交互的插件。如需查看一些实际的示例,请参阅在 Jupyter 笔记本中直观呈现 BigQuery 数据教程。

最后,如果您希望在 shell 环境中编写程序,可以使用 bq 命令行工具