自己想做个网站怎么做,广州王牌seo,营销型网站建设菲凡网,电商平台开发需要哪些技术人员基本介绍
Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码#xff0c;然后在多个批处理和流处理引擎上运行#xff0c;如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道…基本介绍
Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码然后在多个批处理和流处理引擎上运行如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道支持复杂的数据流转换和并行处理。通过Apache Beam用户可以编写可移植且具有弹性的数据处理应用程序从而更轻松地处理大规模数据集并实现高性能的数据处理。
Apache Beam最初是由Google开发的。Google在内部使用类似的编程模型来处理大规模数据并且在2016年将这个模型开源成为Apache软件基金会的顶级项目即Apache Beam。虽然Google是Apache Beam的最初贡献者之一但现在这个项目已经得到了全球范围内的开发者和组织的贡献和支持成为一个广泛采用的大数据处理框架。 SDK 和 Runner
其实Apache beam 只是1个SDK 它支持在多个Runner 上部署和运行
也就是一次编写 多个平台运行
Driver Program
在 Apache Beam 中driver program驱动程序是指我们编写的控制整个数据处理流程的主要程序。它负责定义数据处理流水线pipeline包括指定输入数据源、数据转换操作以及输出目的地同时还设置了执行选项如 Pipeline Runner。
简单来讲就是我们所以写的定义流水线的代码了。
Apache Beam 支持 GO, Java 和 Python 这个系列主要focus on Java. 一些抽象概念
Beam SDK提供了许多抽象概念简化了大规模分布式数据处理的机制。相同的Beam抽象概念适用于批处理和流处理数据源。在创建Beam流水线时您可以根据这些抽象概念来思考您的数据处理任务。这些抽象概念包括 管道Pipeline
管道封装了您的整个数据处理任务从头到尾。这包括读取输入数据转换数据以及写入输出数据。所有的 Beam 驱动程序都必须创建一个管道。创建管道时您还必须指定执行选项告诉管道在何处以及如何运行。
例如runner 选项就是告诉它在哪里执行 包括Direct runner 和 dataflow runner PCollection
PCollection 代表您的 Beam 管道操作的分布式数据集。数据集可以是有界的意味着它来自于固定源如文件也可以是无界的意味着它来自于不断更新的源通过MQ或其他机制。通常您的管道通过从外部数据源读取数据来创建初始的 PCollection但您也可以利用驱动程序内存中的数据来创建 PCollection。
PCollection 是管道中每个步骤的输入和输出。
简单来讲 PCollection 就是 Beam 框架中数据的集合 相当于Pandas 的dataframe PTransform
PTransform 表示管道中的数据处理操作或步骤。每个 PTransform 接受一个或多个 PCollection 对象作为输入对该 PCollection 的元素执行您提供的处理函数并生成零个或多个输出 PCollection 对象。
PTransform 就是步骤 它是1个抽象借口
常见的Pardo-doFn 和 IO 都是PTransform的具体实现 一个常见的Beam 流水线是如何定义的
一个典型的 Beam 驱动程序工作方式如下
创建一个 Pipeline 对象并设置管道执行选项包括 Pipeline Runner(也可在运行时指定)。创建用于管道数据的初始 PCollection可以使用 IOs 从外部存储系统读取数据也可以使用 Create 转换从内存数据构建 PCollection。对每个 PCollection 应用 PTransforms。转换可以改变、过滤、分组、分析或以其他方式处理 PCollection 中的元素。一个转换会创建一个新的输出 PCollection而不会修改输入集合。一个典型的管道会依次将后续转换应用于每个新的输出 PCollection直到处理完成。但是请注意管道不必是一系列按顺序应用的转换的单一直线将 PCollections 视为变量将 PTransforms 视为应用于这些变量的函数管道的形状可以是任意复杂的处理图。使用 IOs 将最终转换后的 PCollections 写入外部源。使用指定的 Pipeline Runner 运行管道。