Apache Beam简介及相关概念

2023-11-04

一.简介

Apache Beam 是一个开放源码的统一模型,用于定义批处理和流数据并行处理管道。Apache Beam 编程模型简化了大规模数据处理的机制,使用一个开源的 Beam sdk,你可以构建一个定义管道的程序,然后由 Beam 支持的分布式处理后端执行管道,这些后端包括 Apache Flink、 Apache Spark 和 Google Cloud Dataflow。

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

Beam 对于令人尴尬的并行数据处理任务特别有用,在这些任务中,问题可以被分解成许多较小的数据束,这些数据束可以独立地并行处理。你还可以使用 Beam 进行提取、转换和加载(ETL)任务和纯数据集成。这些任务对于在不同的存储介质和数据源之间移动数据、将数据转换为更理想的格式或将数据加载到新系统都很有用。

二.基本概念

1.Pipelines

管道封装了涉及读取输入数据、转换数据和写入输出数据的整个一系列计算。输入源和输出接收器可以是相同的,也可以是不同类型的,这允许您将数据从一种格式转换为另一种格式。Apache Beam程序首先构造一个Pipeline对象,然后使用该对象作为创建管道数据集的基础。每个管道代表一个单独的、可重复的作业。

2.PCollection

PCollection表示一个潜在的分布式、多元素数据集,它充当管道的数据。Apache Beam转换使用PCollection对象作为管道中每个步骤的输入和输出。PCollection可以保存固定大小的数据集,也可以保存来自不断更新的数据源的无界数据集。

3.Transforms

转换表示转换数据的处理操作。转换接受一个或多个PCollections作为输入,执行您对该集合中的每个元素指定的操作,并生成一个或多个PCollections作为输出。转换可以执行几乎任何类型的处理操作,包括对数据执行数学计算、将数据从一种格式转换为另一种格式、将数据分组、读取和写入数据、过滤数据以只输出所需的元素,或将数据元素组合成单个值。

4.ParDo

ParDo是Apache Beam sdk中的核心并行处理操作,它对输入PCollection的每个元素调用用户指定的函数。ParDo将零个或多个输出元素收集到一个输出PCollection中。ParDo可以独立地(可能是并行地)转换流程元素。

5.Pipeline I/O

Apache Beam I/O连接器允许您将数据读取到管道中,并将输出数据从管道中写入。一个I/O连接器由一个源和一个接收器组成。所有Apache Beam源和接收都是转换,它们让您的管道处理来自几种不同数据存储格式的数据。您还可以编写自定义I/O连接器。

6.Aggregation

聚合是从多个输入元素计算某个值的过程。Apache Beam中用于聚合的主要计算模式是用一个公共键和窗口对所有元素进行分组。然后,它使用结合和交换运算组合每一组元素。

7.User-defined functions (UDFs)

Apache Beam中的一些操作允许执行用户定义的代码,作为配置转换的一种方式。对于ParDo,用户定义的代码指定了应用于每个元素的操作,对于Combine,它指定了应该如何组合值。管道可能包含用不同于运行程序语言的语言编写的udf。管道还可能包含用多种语言编写的udf。

8.Runner

Runners是接受管道并执行它的软件。大多数Runners都是大规模并行大数据处理系统的翻译或适配器。其他运行器用于本地测试和调试。

三.高级概念

1.Event time

数据事件发生的时间,由数据元素本身上的时间戳确定。这与在管道中的任何阶段处理实际数据元素的时间形成对比。

2.Windowing

窗口可以根据单个元素的时间戳将集合划分为有限集合的窗口,从而对无界集合进行分组操作。窗口函数告诉运行程序如何将元素分配给初始窗口,以及如何合并分组元素的窗口。Apache Beam允许您定义不同种类的窗口或使用预定义的窗口函数。

3.Watermarks

Apache Beam跟踪一个水印,这是系统的概念,即某个窗口中的所有数据何时能够到达管道。Apache Beam跟踪水印是因为数据不能保证按时间顺序或可预测的间隔到达管道中。此外,也不能保证数据事件将以与生成数据事件相同的顺序出现在管道中。

4.Trigger

触发器决定数据到达时何时发出聚合结果。对于有界数据,结果是在处理完所有输入之后发出的。对于无界数据,当水印通过窗口的末端时将发出结果,这表明系统认为该窗口的所有输入数据都已被处理。Apache Beam提供了几个预定义的触发器,并允许您组合它们。

四.工作原理

1.创建一个Pipeline对象并设置管道执行选项,包括Pipeline Runner。

2.为管道数据创建一个初始的PCollection,可以使用IOs从外部存储系统读取数据,也可以使用Create转换从内存中的数据构建PCollection。

3.对每个PCollection应用PTransforms。转换可以更改、筛选、分组、分析或以其他方式处理PCollection中的元素。转换创建一个新的输出PCollection而不修改输入集合。典型的管道依次对每个新的输出PCollection应用后续转换,直到处理完成。但是,请注意,管道并不一定是一个接一个应用的转换的直线:将PCollections看作变量,而将PTransforms看作应用于这些变量的函数:管道的形状可以是任意复杂的处理图。

4.使用IOs编写最终的,转换的PCollection(s)到外部源。

5.使用指定的管道运行器运行管道。

当你运行你的Beam驱动程序时,你指定的Pipeline Runner会基于你创建的PCollection对象和你应用的转换构造你的管道的工作流图。然后使用适当的分布式处理后端执行该图,成为该后端上的异步“作业”(或等效)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Beam简介及相关概念 的相关文章

  • Linus谈优秀程序员的三种品质

    转自 http blog dyngr com blog 2013 09 26 junio c hamano interview 引言 今天我们的嘉宾 是分布式版本管理系统Git的主要维护者 同时也是 入门Git 一书的作者 滨野纯先生 而这
  • win10微软应用商店不能用?简单两步完美解决

    想安装微软的软件 发现微软应用商店打不开 无论是我刷新还是重启 找了各种办法终于解决了 解决办法 1 打开键盘 田 R 键 输入 inetcpl cpl 2 然后去高级那里打开 勾上 使用TLS 1 2 选项 或者还原高级设置 3 最后打开
  • 解决-画图程序无法读取-无效的位图文件

    辛苦画的图 今天一打开就看到这个 心情是呵呵的 搜了一下大概是图太大了 右击win10自带的图片 给裁剪小了就OK了
  • 第二届网刃杯--部分Re

    1 freestyle ida中分析有个两个fun atoi 将字符转换为整数 得到答案为3327105 MD5加密提交 2 Re function 没有提供密码 但是在右边看到熟悉的89 50 利用winhex保存出来 得到解压密码 解压
  • 不能安装64位office提示已安装32位的

    问题描述 安装64位office办公软件的时候提示已经安装32位的office办公软件所以无法继续安装 但实际上之前安装的32位的office办公软件已经卸载了 问题现象截图如下 解决办法 从问题描述中 我们其实已经能够看出问题原因了 类似
  • 合肥工业大学 汇编语言程序设计 高分实验代码

    感觉最困难的就是写汇编代码了 当时成功完美运行的时候兴奋的像当年第一次 Hello World 一样 且几乎所有关键之处都有注释 需要的朋友自取 链接 https pan baidu com s 1q4nVJ7aK4JEPQ F6PH45R
  • Blender51个基本操作

    一 选择操作 编辑模式 1 右键 选择 2 A 全选 3 B 左键 矩形选择 4 B 中键点击 矩形移除选择 5 C 左键 圆形选择 6 C 中键点击 圆形移除选择 7 滚轮滑动 圆形选择框大小 8 Ctrl 左键 扇形选择 9 Ctrl
  • 工业安全生产信息化平台的基本架构和关键功能分享

    工业安全生产信息化平台是指利用信息技术手段 将工业安全生产管理与数据采集 传输 处理相结合 实现对工业安全生产全过程的数字化 信息化 智能化管理的平台 它通过集成多种信息系统和设备 实现对重大危险源监控预警 安全风险分级管控 安全生产一张图
  • C# Socket连接请求超时处理

    在Socket的超时时间默认20多秒 而实际连上不需1秒时间 20多秒很多时候用户是不能接受的 而在等待返回结果的这段时间里程序会处于停止响应状态 废话不多说了 先上代码 private delegate string ConnectSoc
  • 如何阅读论文?

    入门级 1 入门级推荐阅读文献 大牛近五年的论文研究综述 学位论文 网站 知网 t宝买知网号 SCI HUB https sci hub tw 2 知网搜索 学会提取关键词 在搜索引擎上找研究方向关键词 综述 进展 展望 看被引率高的论文
  • 【Android Studio】Design editor is unavailable until next gradle sync.如何解决?

    Design editor is unavailable until next gradle sync 如何解决 打开一个网上开源的下载文件 在查看安卓页面布局 也就是控件布局时 会出现一个bug Design editor is unav
  • GNURadio报错Unable to create context(windows10环境)

    GNURadio报错Unable to create context windows10环境 这里本人使用的是GNU Radio3 7 11 iiosupport win64 版本 外设是ADI的ADALM PLUTO 这里本人使用的是GN
  • 杂七杂八的小知识

    杂七杂八的小知识 前端知识 Node js安装注意事项 Vue学习文档 Mysql数据库小知识 安装数据库后使用数据库所需步骤 MySQL远程连接 常用数据库命令 mysql数据库导入查询 StarUML使用教程 docker小知识 cma
  • 【电机学】直流电机

    直流电机 什么是直流电机 直流电机的工作原理 直流发电机的工作原理 直流电动机的工作原理 可逆性原理 直流电机的主要结构部件 直流电机的电枢绕组 基本特点 并联支路对数 电刷的放置 一些概念 直流电机的磁场 直流电机的空载磁场 电枢电流Ia
  • 亲密关系沟通-【正向情绪】创造一场愉快的沟通体验

    为什么有的时候聊天越聊越开心 有时候却让你意兴阑珊 正向情绪体验 积极议题 充分发挥 谁都喜欢被看见 让他不断得到关注 得到你持续的关注 你知道吗 我这个月业绩第一 哇 你超棒的 哪里哪里 话题聊不下去 你给他夸奖 他只能谦虚 天哪你怎么做
  • FL Studio2024水果编曲软件21.2.0中文版本下载更新

    FL Studio2024是功能强大的音乐制作解决方案 使用旨在为用户提供一个友好完整的音乐创建环境 让您能够轻松创建 管理 编辑 混合具有专业品质的音乐 一切的一切都集中在一个软件中 只要您想 只要您需要 它总能满足您的音乐需求 工具方面
  • CleanMyMac X2024值不值得下载?

    macOS已经成为最受欢迎的桌面操作系统之一 它提供了直观 简洁的用户界面 使用户可以轻松使用和管理系统 macOS拥有丰富的应用程序生态系统 还可以与其他苹果产品和服务紧密协作 如iPhone iPad 用户可以通过iCloud同步和共享
  • 走进暄桐教室 一起观看暄桐同学作品及感受

    暄桐是一间传统美学教育教室 创办于2011年 林曦是创办人和授课老师 教授以书法为主的传统文化和技艺 旨在以书法为起点 亲近中国传统之美 以实践和所得 滋养当下生活 其实 暄桐教室的写字画画课 不仅是林曦老师单方面的输出 而是有分享 也有回
  • CSDN找到“仅我可见”内容

    有时候自己做一些笔记参考了他人的内容 所以想将文章转为 仅自己可见 仅作自用 记录一下CSDN找私密文章的方式 今天摸了好一会儿才找到哈哈哈 1 点击导航栏处的创作中心进入 2 查看更多 3 点击浏览就可以查看啦 来源 CSDN找到 仅我可
  • 在win10和Linux上配置SSH 无密码登录

    文章目录 一 用途 二 在本地机器上使用ssh keygen产生公钥私钥对 1 在Linux 或macOS 上产生SSH公私钥的方法 2 在win10上产生SSH公私钥的方法 a 检查windows 本地是否安装有ssh b 在本地生成SS

随机推荐

  • sed全文字符串替换

    sed i s 被替换的内容 要替换成的内容 file sudo sed i s archive ubuntu mirrors aliyun etc apt sources list
  • 抖音rpc调用生成x-gorgon、x-argus签名学习记录

    一 通过jadx gui分析apk 找到签名入口函数如下 先hook下这个函数 能看到有结果 接下来就是构造参数模拟调用就行 有两个参数 第一个是url的拼接 第二个是headers里面的一些参数构成的map 这个参数每个接口可能不一样 我
  • 若依ruoyi改皮肤-主题(二)

    一 风格等基础设置 有深色和浅色风格两种 根据设计图考虑是否需要 如果不需要 去掉一种风格 这里以浅色风格为主 在 布局设置 里 可以设置主题风格 深浅 主题颜色 直接下拉修改主色 隐藏菜单 顶部标签等等 如果想在css里修改 1 主题风格
  • 30套JSP网站源代码合集

    JSP技术是以Java语言作为脚本语言的 JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序 我收集了一些JSP开发的网站源代码 从实践中学习 希望对大家有用 资料名称 下载地址 网上购物系统 jsp mysq
  • 原根

    定义 在数论 特别是整除理论中 原根是一个很重要的概念 对于两个正整数 由欧拉定理可知 存在正整数 比如说欧拉函数 即小于等于的正整数中与互素的正整数的个数 使得 由此 在时 定义对模的指数 为使 成立的最小的正整数 由前知 一定小于等于
  • nodejs接收form-data数据

    nodejs接收form data类型的数据 不能使用body parser来解析接收 multiparty有多个监听方法 这只是其中一种 var multiparty require multiparty var fs require f
  • 软件压力测试和性能测试分析方法论

    压测和性能分析方法论 性能测试基础 性能测试的常见分类 性能测试 用来验证系统的性能是否满足设计的预期 一般来说对系统的压力会比较小 不会压垮系统 只是进行简单的验证 负载测试 通过不断施加负载压力 寻找系统最优的处理能力 最好的性能状态
  • 北京题库插件:没法登陆又何妨?

    背景介绍 什么是北京题库 北京题库 是专注于中小学教学产品研发的教研平台 拥有试卷 资料等优质资源 致力于为教师备课 教研提供一站式服务 百度百科 简单来说 收录的很多资料 相对好用一点 但是 其使用是有一定限制的 比如网页端必须要微信扫码
  • void与void*

    void与void void关键字的使用规则 1 如果函数没有返回值 那么应声明为void类型 2 如果函数无参数 那么应声明其参数为void 3 如果函数的参数可以是任意类型指针 那么应声明其参数为void 4 void不能代表一个真实的
  • SISD、MIMD、SIMD、MISD计算机的体系结构的Flynn分类法

    1 计算平台介绍 Flynn于1972年提出了计算平台的Flynn分类法 主要根据指令流和数据流来分类 共分为四种类型的计算平台 如下图所示 单指令流单数据流机器 SISD SISD机器是一种传统的串行计算机 它的硬件不支持任何形式的并行计
  • Elasticsearch 开启https鉴权

    Elasticsearch 早期的版本配置鉴权 由于插件收费 所以配置起来比较麻烦 但是最近发现Elasticsearch的8 2版本中可以配置https及鉴权的操作 所以记录一下给想要获取该知识的人 分享一下 第一步 修改elastics
  • Android开发屏幕适配方案

    由于Android系统的开放性 任何用户 开发者 硬件厂商和运营商都可以对Android系统和硬件进行定制 修改成他们自己所需要的样子 使得随着Android设备的增多 设备碎片化 系统碎片化 屏幕尺寸碎片化和屏幕碎片化的程度也在不断加深
  • 竞赛知识点4【搜索】

    文章目录 复习 栈和队列的概念 树 1 1 深度优先搜索 dfs 1 1 1 概念 1 1 2 例题 1 输出n个数的全排列 2 输出n个数中选m个的组合 3 N皇后 8皇后的升级版 4 马踏棋盘 1 1 3 DFS大体框架 1 1 4 剪
  • Springboot-MDC+logback实现日志追踪

    一 MDC介绍 MDC Mapped Diagnostic Contexts 映射诊断上下文 该特征是logback提供的一种方便在多线程条件下的记录日志的功能 某些应用程序采用多线程的方式来处理多个用户的请求 在一个用户的使用过程中 可能
  • Linux 安装cento

    在虚拟机中安装CentOS7 http www centoscn com image text setup 2014 0723 3341 html CentOS 7 下 ifconfig command not found 解决办法 htt
  • localStorage.setItem()使用

    localStorage setItem 使用
  • python自测100题

    如果你在寻找python工作 那你的面试可能会涉及Python相关的问题 通过对网络资料的收集整理 本文列出了100道python的面试题以及答案 你可以根据需求阅读测试 python基础 Q1 什么是Python Python是一种面向对
  • Scala学习第一天(十三):映射(可变/不可变Map;Map基本操作)

    学习目标 映射 不可变Map 可变Map Map基本操作 映射 Map可以称之为映射 它是由键值对组成的集合 在Scala中 Map也分为 不可变Map 可变Map 不可变Map 语法 val var map Map 键 gt 值 键 gt
  • Spring @ComponentScan 自定义扫描规则

    Spring ComponentScan 组件中扫描规则使用场景 package org example cap2 config import org springframework context annotation Bean impo
  • Apache Beam简介及相关概念

    文章目录 一 简介 二 基本概念 1 Pipelines 2 PCollection 3 Transforms 4 ParDo 5 Pipeline I O 6 Aggregation 7 User defined functions UD