将数据仓库迁移至 BigQuery:报告和分析

本文档是探讨如何将数据仓库迁移到 BigQuery 的系列文章中的一篇。如果您的数据仓库由 BigQuery 管理,您可以使用一个灵活的商业智能 (BI) 解决方案套件进行报告和分析。本文档介绍如何将这些解决方案用于 BigQuery,从您的数据中获得令人信服的见解。Google 和我们的技术合作伙伴都提供这些解决方案,让您可以执行多种综合数据分析:

  • 描述性分析:分析实时和历史数据,了解过去的行为。
  • 预测性分析:预测可能的未来结果并估计实现这些结果的可能性。
  • 规范分析:量化未来结果对业务的影响并推荐最佳行动方案。

该系列中的文档包含以下内容:

与第三方解决方案集成

如果您使用第三方 BI 解决方案通过 BigQuery 分析数据,我们建议您进行一些初始配置,以建立和控制 BigQuery 与所选解决方案之间的连接。

网络连接

在具有外部 IP 地址的主机和服务上部署的所有 BI 和数据分析解决方案,都可以通过互联网使用公共 BigQuery REST API 和基于 RPC 的 BigQuery Storage API(Beta 版)访问 BigQuery。

在只有内部 IP 地址(没有外部 IP 地址)的 Compute Engine 虚拟机实例上部署的第三方 BI 和数据分析解决方案,可以使用专用 Google 访问通道来访问 Google API 和 BigQuery 等服务。您可以在子网一级启用专用 Google 访问通道;它是 VPC 网络中子网的一项设置。如需为子网启用专用 Google 访问通道并查看相关要求,请参阅配置专用 Google 访问通道

在本地主机上部署的第三方 BI 和数据分析解决方案可以使用适用于本地主机的专用 Google 访问通道访问 Google API 和 BigQuery 等服务。此服务通过 Cloud VPNCloud Interconnect 建立从您的数据中心到 Google Cloud 的专用连接。本地主机不需要外部 IP 地址;而是使用内部 RFC 1918 IP 地址。如需为本地主机启用专用 Google 访问通道,您必须在本地和 VPC 网络中配置 DNS、防火墙规则和路由。如需详细了解适用于本地主机的专用 Google 访问通道,请参阅为本地主机配置专用 Google 访问通道

如果您选择管理自己的第三方 BI 解决方案实例,请考虑将其部署在 Compute Engine 上,从而利用 Google 的主干网络,并最大限度降低您的实例与 BigQuery 之间的延时。

您应该尽可能考虑在报告或信息中心的查询中设置过滤条件(如果您的 BI 解决方案支持)。此步骤将过滤条件作为 WHERE 子句推送到 BigQuery。尽管设置这些过滤条件不会减少 BigQuery 扫描的数据量,但确实会减少通过网络返回的数据量。

如需详细了解网络和查询优化,请参阅将数据仓库迁移到 BigQuery:性能优化优化查询性能简介

原生和 ODBC/JDBC 集成

Google 的 BI 和数据分析产品(如 Google Data StudioDataprocAI Platform Notebooks),以及一些第三方解决方案(如 Tableau)直接使用 BigQuery REST API 提供原生 BigQuery 集成。

但是,其他第三方解决方案可能无法提供相同级别的直接集成。对于此类情况,Google 已与 Simba Technologies Inc. 展开合作,推出了使用 BigQuery 的标准 SQL 强大功能的 ODBCJDBC 驱动程序。这些驱动程序旨在帮助您将 BigQuery 的强大功能与不具备原生集成功能的现有工具和基础架构进行结合。ODBC/JDBC 连接公开的功能必须是 BigQuery 完整功能的子集。 有时,ODBC/JDBC 连接的性能可能不如原生连接高效。如需了解详情,请参阅关于适用于 Google BigQuery 的 Simba 驱动程序的 Google 文档以及关于适用于 Google BigQuery 的带 SQL 连接器的 ODBC 和 JDBC 驱动程序的 Simba 文档。

身份验证

BigQuery API 使用 OAuth 2.0 访问令牌对请求进行身份验证。OAuth 2.0 访问令牌是一个字符串,用于授予对 API 的临时访问权限。 Google 的 OAuth 2.0 服务器可授予所有 Google API 的访问令牌。访问令牌与一个范围关联,此范围会限制令牌的访问权限。如需了解与 BigQuery API 关联的范围,请参阅完整的 Google API 范围列表

提供原生 BigQuery 集成功能的 BI 和数据分析解决方案可以使用 OAuth 2.0 协议或客户提供的服务帐号私钥自动为 BigQuery 生成访问令牌。同样,依赖 Simba ODBC/JDBC 驱动程序的解决方案也可以获取 Google 用户帐号Google 服务帐号的访问令牌。

互动式信息中心和报告

以直观形式呈现数据是支持数据驱动型业务决策的有效方式。事实上,可视化工具在协助用户分析和推理数据方面可以发挥重要作用。通过以可视化方式传达量化消息,这些工具可以帮助用户了解因果关系、发现异常行为并识别趋势和模式。

下一部分将介绍各种可与 BigQuery 集成的可视化工具,这些工具可以生成令人信服且有效的互动式信息中心和报告。

BI Engine

BI Engine 是一项内置于 BigQuery 的高速内存中分析服务,可让您通过其他数据可视化工具加速数据探索和分析。利用 BI Engine,您可以分析存储在 BigQuery 中的数据,该服务支持亚秒级查询响应时间和高并发操作。您可以使用 BI Engine 构建内容丰富的互动式信息中心和报告,且性能、扩缩、安全性或数据新鲜度都不会受到影响。

BI Engine 只能用于数据洞察。您可以通过数据洞察使用入门指南详细了解此集成。

对于不支持 BI Engine 的解决方案,您可以尽可能使用 BigQuery 的内置缓存。您还可以利用 BigQuery 的低费用存储空间,在新的单独的 BigQuery 表中将大型数据集的查询结果具体化,然后将 BI 解决方案配置为从这些表中读取结果。

数据洞察

数据洞察是一款免费的全托管式数据可视化和报告服务,可帮助您的组织通过互动式信息中心从数据中获取见解。如果将数据洞察与 BigQuery BI Engine 结合使用,在对海量数据集执行数据探索和可视化互动操作时,速度可以达到亚秒级。利用数据洞察,您可以执行以下操作:

  • 利用灵活的报告画布以及数百个可视化工具和预构建或自定义的数据连接器(包括适用于 BigQuery 的原生连接器),通过拖放操作构建有效的信息中心和分析报告。
  • 借助快速的直观互动、实时的数据中心协作以及跨 Google 生态系统的深度集成,启迪并吸引用户。
  • 在 Google 安全的无服务器平台上扩缩整个组织内的自托管或集中式 BI 工作负载,省却不必要的 IT 预配或管理工作。

Google Analytics Marketing 网站的数据洞察报告示例。

如需了解详情,请参阅数据洞察文档数据洞察快速入门指南。另请参阅以下指南:

Looker

Looker 通过其 BI 平台为客户提供数据分析和大数据服务。Looker 提供原生 BigQuery 集成,并支持原生 BigQuery 功能,例如用户定义的函数和嵌套数据。

您可以通过多个现有 Looker 模块使用 BigQuery 的独特功能,例如:

如需设置从 Looker 到 BigQuery 的连接,您必须创建具有相应 BigQuery IAM 角色的服务帐号,然后下载服务帐号的私钥,并将密钥上传到 Looker。 如需关于设置连接的完整教程,请参阅适用于 Google BigQuery 旧版 SQL 和 Google BigQuery 标准 SQL 的 Looker 教程

您可以运行在 Google Cloud Marketplace 中提供的 BigQuery 上的 Looker Test Drive,以试用该集成。如需了解详情,请参阅适用于 Google Cloud 的 Looker 白皮书以及有关如何使用 Looker 和 BigQuery 从 Fastly 日志获取实时、富有实用价值的分析洞见的案例研究。

Looker 信息中心,使用 Fastly 日志数据进行问题排查。

Tableau

Tableau 开发的 BI 和分析软件,旨在帮助用户以互动方式发现并直观呈现从电子表格到关系数据库再到大数据等来源的信息。Tableau 提供了与 BigQuery 等一系列 Google Cloud 产品的原生集成

如果您选择管理自己的 Tableau Server 实例,我们建议您将其部署在 Compute Engine 上,从而利用 Google 的主干网络,并最大限度降低 Tableau Server 与 BigQuery 之间的延时。如需详细了解此部署,请参阅 Tableau Server on Google Cloud 安装说明Tableau Server on Compute Engine 最佳做法

在 Tableau 实例运行时,您可以将 BigQuery 添加为数据源。 如需对从 Tableau 发送到 BigQuery 的请求进行身份验证,您可以按照本教程中的说明为各个 Google 用户设置 OAuth,也可以在 Tableau Server 上安装 ODBC Simba 驱动程序,然后在 Tableau 中选择其他数据库 (ODBC) 作为数据源。对于大型数据集,我们建议您使用实时连接将处理和缓存优化分流到 BigQuery。如需详细了解将 Tableau 与 BigQuery 搭配使用的最佳做法,请参阅 Zulily 提供的详细案例研究

其他提供商

从数据整合到数据分析,BigQuery 解决方案提供商将其业界领先的工具与 BigQuery 进行了集成,以加载、转换并直观呈现数据。这些工具使客户能够利用 BigQuery 的敏捷性、高性能和易用性来实现更快、更强大的数据分析。请参阅可用提供商的完整列表

探索式 SQL 分析

SQL(结构化查询语言)是一种用于管理和分析关系型数据库管理系统数据的通用语言。BigQuery 标准 SQL 符合 ANSI SQL 2011 标准。这种合规性便于接受过 SQL 培训的数据分析师使用 BigQuery 快速入门和分析大型数据集。

BigQuery 还具有支持查询嵌套和重复数据并指定用户定义的函数 (UDF) 的扩展程序。借助 UDF,您可以使用其他 SQL 表达式或其他编程语言(如 JavaScript)来创建函数。这些函数接受列作为输入并执行操作,并以值的形式返回这些操作的结果。

以下部分介绍了使用 SQL 处理和分析存储在 BigQuery 中的数据的多种方式。

BigQuery 界面

BigQuery 在 Cloud Console 中提供了一个图形网页界面 (UI),可用于创建和管理 BigQuery 资源以及运行 SQL 查询。

BigQuery 网页界面的屏幕截图。

当您使用 BigQuery 网页界面运行作业运行查询时,相关历史记录会保留在导航窗格中。查询也是一种作业类型,但为了便于使用,系统会单独保留您的查询历史记录。资源部分包含一系列固定的项目。展开某个项目可查看您有权访问的数据集和表。资源部分提供了一个搜索框,供您按名称(项目名称、数据集名称、表名称或视图名称)或按标签搜索资源。通过搜索栏,您可以在现有的置顶项目中查找所有符合过滤条件的资源,或所有包含匹配项的资源。

利用 BigQuery 界面,您可以保存和共享查询定义已获授权的视图,从而提高工作效率并为协作提供支持。您可以安排查询定期运行。

如需网页界面示例,请参阅 BigQuery 文档中的方法指南部分。如需查看使用 BigQuery 网页界面加载数据和查询数据的示例,请参阅快速入门:使用 BigQuery 网页界面

BigQuery Geo Viz

BigQuery 地理信息系统 (GIS) 支持地理空间数据类型和函数,可用于分析和运算任何具有空间属性的数据。

BigQuery Geo Viz 是一个使用 Google Maps API 直观呈现 BigQuery 中的地理空间数据的 Web 工具。您可以运行 SQL 查询并在交互式地图上显示结果。灵活的样式功能可以帮助您分析和探索数据。

BigQuery Geo Viz 不是功能全面的 BigQuery GIS 可视化工具。它是一种在地图上直观呈现 BigQuery GIS 查询结果的简洁方式,一次只能处理一个查询。

如需查看使用 Geo Viz 直观呈现 BigQuery GIS 数据的示例,请转到面向数据分析师的 BigQuery GIS 使用入门

Geo Viz 可视化示例。

BigQuery ML

利用 BigQuery ML,您可以使用标准 SQL 查询在 BigQuery 中创建和执行机器学习模型。BigQuery ML 让 SQL 专业人员能够使用现有的 SQL 工具和技能构建模型,从而实现机器学习的普及。BigQuery ML 无需移动数据,就能让分析师实现从描述性分析到预测性分析的过渡,从而加快了开发速度。

大型数据集的机器学习需要丰富的编程经验和机器学习框架知识。这些要求将解决方案开发限制在每家公司内的一小部分人员中,不包括那些了解数据但缺乏机器学习和编程专业知识的数据分析师。

ML 模型训练统计信息示例。

BigQuery ML 让数据分析师能够通过现有的 SQL 工具和技能运用机器学习。他们可以使用 BigQuery ML 在 BigQuery 中构建和评估机器学习模型,无需再将少量数据导出到电子表格或其他应用中,也无需再等待数据科学团队的有限资源。

如需开始使用 BigQuery ML,请参阅官方的 BigQuery ML 文档BigQuery ML 教程BigQuery ML 使用入门(使用网页界面)指南。

Dataflow SQL

Dataflow SQL 可让您通过 BigQuery 网页界面,使用 SQL 查询开发和运行 Dataflow 作业。Dataflow SQL 与 Apache Beam SQL 相集成,并且支持 ZetaSQL 查询语法的变体。您可以使用 ZetaSQL 的流处理扩展程序定义流式数据并行处理流水线,例如:

  • 运用您的 SQL 技能,通过 BigQuery 网页界面开发和运行流处理流水线。您无需设置 SDK 开发环境,也不需要了解如何使用 Java 或 Python 编程。
  • 将数据流(例如 Pub/Sub)与已截取快照的数据集(例如 BigQuery 表)联接起来。
  • 通过将架构与对象(例如表、文件和 Pub/Sub 主题)相关联,使用 SQL 查询流或静态数据集。
  • 将结果写入 BigQuery 表中,以供分析和信息中心服务使用。

使用 Dataflow SQL 查询编辑器定义流式数据并行处理流水线。

或者,如 Apache Beam 部分中所述,Apache Beam 和 Dataflow 还支持丰富的编程模型。

如需详细了解 Dataflow SQL,请参阅 Dataflow SQL 文档Dataflow SQL 界面演示

电子表格

电子表格在众多业务的运营中发挥重要作用,因为它们为用户提供了便捷的数据共享和分析方式。鉴于电子表格的重要性,将它们连接到 BigQuery 可让您在分析大型数据集时实现新的协作并快速获得见解。

Google 表格

Google 表格是一种在线电子表格应用,可让用户创建电子表格并设置格式,实现与他人的同时协作。BigQuery 和表格可以通过多种方式进行集成。

您可以将 BigQuery 查询的结果从 BigQuery 界面保存到表格,但有一些限制。您还可以使用联合查询从 BigQuery 查询存储在 Google 云端硬盘中的数据,包括 Google 表格文件。

将 BigQuery 查询的结果从 BigQuery 界面保存到 Google 表格。

另外,关联工作表是 Google 表格的一项功能,有助于在整个组织内推动数据驱动型决策和协作,同时使用权限来控制哪些人可以查看、修改或共享数据。

当您使用 BigQuery 的 Google 表格数据连接器时,关联工作表才会激活。它可让您访问、分析、直观呈现多达 100 亿行 BigQuery 数据并就其开展协作。借助此功能,最终用户无需 BigQuery 专家或精通 SQL 的分析师协助即可获得见解。而熟悉且迅捷的电子表格界面又能使用户对大数据进行自助式探索、透视、过滤、制图和公式化分析。

带 BigQuery 查询编辑器的关联工作表。

Microsoft Excel

BigQuery 提供了一个连接器,您可以通过它从 Excel 中向 BigQuery 发出查询。如果您使用 Excel 来管理数据,此功能就非常实用。BigQuery 连接器会连接到 BigQuery、生成指定的查询、下载数据,然后将其传递到 Excel。如需了解详情,请参阅使用适用于 Excel 的 BigQuery 连接器的指南

或者,您也可以使用 BigQuery ODBC 驱动程序将支持 ODBC API 的工具(例如 Microsoft Excel)连接到 BigQuery。如需了解详情,请参阅使用 ODBC 从 Microsoft Excel 连接到 BigQuery 的教程。

显示如何查询 BigQuery 的 Excel 工作表。

笔记本和程序化分析

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

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

这一部分将介绍多种用于编写和运行代码以分析 BigQuery 中管理的数据的方法。

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 属性来更改笔记本位置。如需详细了解安装和配置,请参阅 Zeppelin 组件指南。另请参阅详细示例:使用适用于 Apache Zeppelin 的 BigQuery Interpreter 分析 BigQuery 数据集

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

Apache Hadoop 和 Apache Spark

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

借助 Dataproc,您可通过简单、经济实惠的方式部署快速、易用的全代管式 Hadoop 和 Spark 集群。Dataproc 集成了 BigQuery 连接器,这是一个 Java 库,使 Hadoop 和 Spark 能够使用精简版本的 Apache Hadoop InputFormatOutputFormat 类直接处理来自 BigQuery 的数据。或者,您可以安装适用于 Google BigQuery 的 Apache Spark SQL 连接器(Beta 版)来读取 BigQuery 中的数据。该连接器使用 BigQuery Storage API(Beta 版),此 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 的开源版本,如 RStudio 教程中所详述。在 Dataproc 上运行 RStudio 的优势在于,您可以利用 Dataproc 自动扩缩功能。借助自动扩缩功能,您可以在开发 SparkR 逻辑时设置最小的集群大小。当您提交作业进行大规模处理时,操作完全相同,也无需对服务器进行任何更改。您只需将自己的 SparkR 作业提交到 RStudio,Dataproc 集群就可以按照您设置的时间间隔进行扩缩,以满足您的作业需求。如需详细了解 RStudio 与 Dataproc 的集成,请参阅官方公告

RStudio 设置概览。

其他资源

BigQuery 提供大量支持 Java、Go、Python、JavaScript、PHP 和 Ruby 等多种编程语言的客户端库。一些数据分析框架(如 Pandas)提供了可与 BigQuery 进行原生互动的插件。如需了解实际的示例,请参阅有关使用 Bokeh 和 BigQuery 创建自定义互动式信息中心以及使用 BigQuery Storage API 将 BigQuery 数据下载到 Pandas 的教程。

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

后续步骤

  • 继续阅读本系列的后续文章:性能优化
  • 探索有关 Google Cloud 的参考架构、图表、教程和最佳做法。查看我们的云架构中心