Dataflow 概览

Dataflow 是一种用于运行流式和批量数据处理流水线的全代管式服务。它可自动预配和管理计算资源,并一致且可靠地对数据进行“正好一次”处理。Dataflow 支持许多数据处理使用场景,包括数据流分析、实时 AI、传感器和日志数据处理,以及涉及数据转换的其他工作流。

创建流水线或使用模板

如需为 Dataflow 创建数据流水线,请使用 Apache Beam,这是一种统一的开源模型,用于定义批量和流式数据处理流水线。Apache Beam 编程模型简化了大规模并行数据处理的机制。借助一种 Apache Beam SDK,您可以构建一个程序来定义流水线。然后,您可以在 Dataflow 上运行该流水线。

Apache Beam 模型可提供有用的抽象,这些抽象使您无需去操心分布式处理的低层细节,例如协调各个工作器和分片数据集。Dataflow 可全面管理这些低层细节。此模型使您可以专注于对数据处理作业进行逻辑组合,而不是对并行处理进行物理编排。您可以专注于作业需要执行的任务,而不是执行作业的方式。

如果您不想编写自己的流水线,则可以使用 Google 提供的 Dataflow 模板之一。这些模板定义了常见的数据转换,例如从 Pub/Sub 读取流式数据并将其写入 Cloud Storage,或者从 Apache Kafka 读取流式数据并将其写入 BigQuery。您还可以创建自己的自定义 Dataflow 模板,以在团队或组织中共享流水线。

借助 Dataflow 模板,您可以打包 Dataflow 流水线以进行部署。之后,具有正确权限的任何人都可以使用模板来部署流水线。模板将流水线的设计与部署分隔开。例如,开发者可以创建模板,之后数据科学家可以部署模板,并使用参数在运行时自定义作业。

Dataflow 功能

Dataflow 提供了许多功能,可帮助您大规模地运行安全、可靠、经济实惠的数据流水线。本部分概述了您可以使用 Dataflow 执行的一些操作。

通过横向自动扩缩进行横向扩容

启用横向自动扩缩后,Dataflow 服务便会自动选择运行作业所需的适当数量的工作器实例。在运行期间,Dataflow 还可以根据作业特征进行动态再分配,增加或减少工作器数量。

通过纵向自动扩缩进行纵向扩容

纵向自动扩缩可让 Dataflow 对工作器的可用内存进行动态纵向扩容或纵向缩容以满足作业要求。此功能旨在使作业能够灵活应对内存不足错误,并最大限度地提高流水线效率。Dataflow 会监控流水线,检测工作器缺少或超出可用内存的情况,然后将其替换为具有更多或更少内存的新工作器。

运行无服务器流水线

您可以使用 Dataflow Prime 运行无服务器流水线。Dataflow Prime 是一个基于 Dataflow 的无服务器数据处理平台。Dataflow Prime 使用计算和状态分离的架构,具有旨在提高效率和生产能力的功能。使用 Dataflow Prime 的流水线可受益于自动化和优化的资源管理、降低的运营费用以及改进的诊断功能。

按流水线阶段优化资源

Dataflow Prime 适配功能会创建特定于阶段的资源池,系统会针对每个流水线阶段优化这些资源以减少资源浪费。

监控作业

使用监控界面可以查看 Dataflow 作业并与之交互。监控界面会显示 Dataflow 作业列表、每个流水线的图形表示形式、有关每个作业的状态的详细信息、指向运行流水线的 Google Cloud 服务的相关信息的链接、作业执行期间发生的任何错误或警告,以及其他诊断和指标。

直观呈现作业性能

借助 Dataflow 控制台中的执行详情标签页的一部分作业可视化工具,您可以查看 Dataflow 作业的性能指标,并通过查找低效代码(包括并行处理瓶颈)来优化作业的性能。您还可以查看与流水线的每个阶段关联的步骤列表。

将流式资源与存储分开

Streaming Engine 会将流处理流水线的计算与状态存储分离。它会将流水线执行过程的某些部分移出工作器虚拟机并移入 Dataflow,因而显著提高了自动扩缩能力并缩短了数据延迟时间。

高效地对数据执行 shuffle 操作

Dataflow Shuffle 会将用于分组和联接数据的 shuffle 操作移出工作器虚拟机,并移入用于批处理流水线的 Dataflow。批处理流水线可无缝地扩容至数百 TB,无需任何调整。

降低批处理费用

灵活资源调度 (FlexRS) 通过使用高级调度技术、Dataflow Shuffle 服务以及抢占式虚拟机和常规虚拟机的组合,可以降低批处理费用。

从笔记本运行流水线

通过 Vertex AI 笔记本以迭代方式从头开始构建流水线,并在 Dataflow 上运行作业。通过在“读取-求值-输出”循环 (REPL) 工作流中检查流水线图,您可以分步编写 Apache Beam 流水线。借助笔记本,您可以使用最新的数据科学和机器学习框架在直观的环境中编写流水线。

获得智能建议

根据机器学习通知的建议优化流水线。这些建议可帮助您提高作业性能、降低费用并排查错误。

使用客户管理的加密密钥保护流水线

借助客户管理的加密密钥 (CMEK),您可以使用自己能够通过 Cloud KMS 控制的密钥对静态数据进行加密。您可以创建由 CMEK 保护的批处理或流处理流水线,并且可以访问来源和接收器中由 CMEK 保护的数据。

指定网络和子网

Dataflow 与 VPC Service Controls 集成,使您能够降低数据渗漏风险,为数据处理环境提供额外的安全防护。您可以在运行 Dataflow 作业时指定网络和/或子网选项。

配置专用 IP

关闭公共 IP 可以更好地保护数据处理基础架构。如果不对 Dataflow 工作器使用公共 IP 地址,您还可以减少 Google Cloud 项目配额中消耗的公共 IP 地址数量。

开始

如需开始使用 Dataflow,请尝试使用以下快速入门之一: