什么是 Cloud Data Fusion?

Cloud Data Fusion 是一项全托管式云原生企业数据集成服务,用于快速构建和管理数据流水线。

Cloud Data Fusion 网页界面可让您构建可扩缩的数据集成解决方案,从而清理、准备、融合、转移和转换数据,而无需管理基础架构。

Cloud Data Fusion 在开源项目 CDAP 的基础上构建而成。本页包含指向 CDAP 文档网站的链接,您可以在该网站中找到更为详细的信息。

接口

要使用 Cloud Data Fusion,您可以使用可视化网页界面或命令行工具。

使用无代码网页界面

使用 Cloud Data Fusion 时,您将同时使用 Cloud Console 和单独的 Cloud Data Fusion 界面。

  • 在 Google Cloud Console 中,您可以创建 Google Cloud 项目、创建和删除 Cloud Data Fusion 实例(Cloud Data Fusion 的唯一部署),以及查看 Cloud Data Fusion 实例详情。

  • 在 Cloud Data Fusion 界面中,您可以通过各种页面(如流水线 StudioWrangler)直观地设计数据流水线并使用 Cloud Data Fusion 功能。

概括来讲,您需要执行以下步骤:

  1. 在 Google Cloud Console 中创建 Cloud Data Fusion 实例

  2. 在 Cloud Console 的“实例”页面中找到您的 Cloud Data Fusion 实例,然后点击操作列中的查看实例链接。此操作将在新的浏览器标签页中打开 Cloud Data Fusion 界面。

  3. 使用 Cloud Data Fusion 网页界面中的各种页面,以可视化方式设计流水线并管理元数据。

使用命令行工具

除了使用网页界面,您还可以使用命令行工具来创建和管理 Cloud Data Fusion 实例和流水线。

  • REST 参考文档介绍了用于在 Google Cloud 上创建和管理 Cloud Data Fusion 实例的 API。

  • CDAP 参考文档介绍了用于创建和管理流水线和数据集的 REST API。

核心概念

本部分内容介绍 Cloud Data Fusion 的一些核心概念。某些部分提供指向 CDAP 文档的链接,您可以在该文档中详细了解每个概念。

Cloud Data Fusion 实例

Cloud Data Fusion 实例是 Cloud Data Fusion 的唯一部署。要开始使用 Cloud Data Fusion,请通过 Cloud Console 创建 Cloud Data Fusion 实例。

您可以在单个 Cloud Console 项目中创建多个实例,且可以指定要在其中创建 Cloud Data Fusion 实例的 Google Cloud 区域。

根据您的要求和费用限制,您可以创建开发者、基本或企业实例。

每个 Cloud Data Fusion 实例都包含一个独一无二的独立 Cloud Data Fusion 部署,该部署中包含一组用于处理流水线生命周期管理、编排、协调和元数据管理的服务。这些服务使用租户项目中的长时间运行资源运行。

执行环境

当您手动运行流水线时,或者流水线依据时间表或流水线状态触发器运行时,Cloud Data Fusion 会创建临时执行环境来运行流水线。 Cloud Data Fusion 支持将 Dataproc 作为执行环境,在此环境中,您可以选择以 MapReduce、Spark 或 Spark Streaming 程序的形式运行流水线。当流水线开始运行时,Cloud Data Fusion 会在您的客户项目中预配一个临时 Dataproc 集群,然后在该集群中使用 MapReduce 或 Spark 执行流水线,最后在流水线执行完以后删除该集群。

或者,如果您通过 Terraform 等技术在受控环境中管理 Dataproc 集群,还可以将 Cloud Data Fusion 配置为不预配集群。在此类环境中,您可以针对现有的 Dataproc 集群运行流水线。

自动扩缩

如需了解如何配置和使用 Dataproc 自动扩缩功能来根据工作负载需求自动调整和动态调整集群大小,请参阅自动扩缩集群指南

推荐:针对不利用 Analytics(分析)插件(例如 Distinct、Group By、Joiner、Deduplicate 或 Row Denormalizer.)的所有流水线使用自动扩缩选项。

不推荐:自动扩缩不适用于扩缩集群 HDFS。在 Cloud Data Fusion 中,如果您执行聚合(例如分组和联接数据),则自动扩缩功能可能会导致流水线运行缓慢或抛出错误。

流水线

流水线是一种可视化数据设计和流控制方式,用于从各种本地数据源和云数据源提取、转换、融合、聚合和加载数据。通过构建流水线,您可以创建复杂的数据处理工作流,可帮助您解决数据提取、集成和迁移问题。您可以根据需要,使用 Cloud Data Fusion 构建批处理流水线和实时流水线。

借助流水线,您可以使用逻辑数据流表达您的数据处理工作流,同时 Cloud Data Fusion 处理需要以物理方式在执行环境中执行的所有功能。Cloud Data Fusion 的规划器使用 Dataproc 上的 Apache Spark 和 Apache Hadoop MapReduce 将逻辑流转换为并行计算。

流水线由一系列节点表示,这些节点在有向无环图 (DAG) 中有序排列,形成单向流。节点代表您使用流水线时可以执行的各种操作,例如从来源读取数据、执行数据转换或将输出写入接收器。您可以通过将来源、转换、接收器和其他节点连接在一起,在 Cloud Data Fusion 网页界面中开发数据流水线。

此外,流水线通过提供对日志和指标的访问权限来提供一种简单方式,让管理员无需使用自定义工具也可以操作数据处理工作流。

如需详细了解流水线,请访问 CDAP 文档网站。

插件

插件是可自定义的模块,可用于扩展 Cloud Data Fusion 的功能。Cloud Data Fusion 为来源、转换、聚合、接收器、错误收集器、提醒发布器、操作和运行后操作提供插件。如果尚未提供您需要的插件,可以自行开发自定义插件

插件有时称为“节点”,通常位于 Cloud Data Fusion 网页界面的上下文中。

下表说明了 Cloud Data Fusion 中提供的各种插件类别。

类别 说明
来源 来源是您从中获取数据的数据库、文件或实时流的连接器。借助来源,您只需使用简单的界面即可提取数据,因此不必担心编写低级连接代码。
转换 转换使您能够在提取数据后操作数据。例如,您可以克隆记录、设置 JSON 格式,甚至可以使用 JavaScript 插件创建自定义转换。
分析 分析插件用于执行聚合,例如对不同来源的数据进行分组和合并,以及运行分析和机器学习操作。Cloud Data Fusion 为众多此类使用场景提供了内置的插件。
操作 操作插件定义一种自定义操作,该操作按计划在工作流中执行,但不会在工作流中直接操纵数据。例如,使用数据库自定义操作,您可以在流水线结束时运行任意数据库命令。或者,您可以触发在 Cloud Storage 内部移动文件的操作。
接收器 数据必须写入接收器。Cloud Data Fusion 包含 Cloud Storage、BigQuery、Spanner、关系型数据库、文件系统、大型机等各种接收器。
错误收集器 当节点遇到 null 值、逻辑错误或其他错误来源时,您可以使用错误收集器插件来捕获错误。您可以将此插件连接到任何将会捕获与您所定义条件匹配的错误的转换或分析插件的输出。随后,您可以通过流水线中单独的错误处理流来处理这些错误。
提醒发布器 提醒发布器插件可让您在发生不常见事件时发布通知。下游进程随后可以订阅这些通知,以触发对相应提醒的自定义处理。
条件语句 流水线以条件语句的形式提供了控制流插件。借助条件语句插件,您可以将流水线分为两个单独的路径,具体取决于指定的条件判定结果是 true 还是 false。

如果没有您需要的插件,您可以使用 Cloud Data Fusion 的插件 API 构建自己的插件

计算配置文件

计算配置文件指定执行流水线的方式和位置。配置文件包含设置和删除流水线的物理执行环境所需的任何信息。例如,配置文件包括云服务商的类型(如 Google Cloud)、要在云服务商上使用的服务(如 Dataproc)、凭据、资源(内存和 CPU)、映像、节点数下限和上限,以及其他值。

配置文件由名称标识,并且必须拥有预配工具及其相关配置。配置文件可位于 Cloud Data Fusion 实例级别或命名空间级别。

如需详细了解配置文件,请访问 CDAP 文档网站。

特性

类别 特性
开发
  • 图形流水线设计器
  • 100 多个插件 - 连接器、转换和操作
  • 无代码直观转换
  • 1000 多种内置转换
  • 数据质量库
  • 开发者 SDK
测试
  • 直观的流水线调试
  • 测试框架
执行
  • Dataproc - 批量(Apache Spark、Apache Hadoop MapReduce)和实时(Spark 流式程序)
  • 流水线中的控制流和数据流
操作
  • REST API
  • 时间表和触发器
  • 监控信息中心
集成元数据
  • 自动捕获技术元数据和操作元数据
  • 业务元数据注释
  • 按关键字和架构搜索数据集
  • 可追溯的数据集和字段级别沿袭
可扩展性
  • 自定义插件
  • 可配置的插件界面微件
  • 自定义预配工具
  • 自定义计算配置文件
可重用性
  • 流水线和插件模板
  • 运行时参数和偏好设置
  • 分发可重用的插件、流水线和解决方案的中心
Google Cloud 集成
  • GKE - 实例部署
  • Dataproc - 流水线执行(批量和实时)
  • Cloud KMS - 安全的数据存储
  • Cloud SQL 和 Cloud Storage - 实体和工件元数据存储
  • Persistent Disk - 日志和指标存储
  • Cloud Console - 实例生命周期管理
  • Google Google 的运维套件(仅限审核日志)
连接器 (Google Cloud)
  • Cloud Storage
  • BigQuery
  • Cloud SQL
  • Pub/Sub
  • Spanner
  • 云端 Bigtable
  • 数据存储区
连接器(非 Google Cloud)
  • 公有云服务
  • 文件系统
  • 关系型数据库
  • NoSQL 存储区
  • 大型机和其他旧系统
转换
  • 用于清理、融合、协调和映射的无代码转换
  • 带反馈的交互式转换
  • 基于代码的(浏览器内)转换 - Scala (Apache Spark)、Python 和 JavaScript
  • 现有的 Spark 和 MapReduce 作业
分析
  • 聚合
  • 联接
  • 分组依据

后续步骤