当前位置: 首页 > news >正文

云南网站建设多少钱seo公司系统

云南网站建设多少钱,seo公司系统,wordpress中文购物主题,南山企业网站建设FlinkPipelineComposer 详解 原文 背景 在flink-cdc 3.0中引入了pipeline机制,提供了除Datastream api/flink sql以外的一种方式定义flink 任务 通过提供一个yaml文件,描述source sink transform等主要信息 由FlinkPipelineComposer解析&#xff0c…

FlinkPipelineComposer 详解

原文

背景

在flink-cdc 3.0中引入了pipeline机制,提供了除Datastream api/flink sql以外的一种方式定义flink 任务

通过提供一个yaml文件,描述source sink transform等主要信息

由FlinkPipelineComposer解析,自动调用DataStream api进行构建

官方样例

 source:type: mysqlhostname: localhostport: 3306username: rootpassword: 123456tables: app_db.\.*sink:type: dorisfenodes: 127.0.0.1:8030username: rootpassword: ""pipeline:name: Sync MySQL Database to Dorisparallelism: 2

目前可以通过source配置的源只有mysql 和 values

values是调试用的,所以可以说当前这个功能是专门为“mysql同步数据到各个sink”的场景使用的

目前可以使用的sink有

  1. doris
  2. elasticsearch
  3. kafka
  4. paimon
  5. starrocks
  6. values

FlinkPipelineComposer

我们以mysql -> values来观察 FlinkPipelineComposer 是如何通过读取yaml文件的定义来构建DataStream的

values会将mysql产生的cdc消息打印到stdout上

################################################################################
# Description: Sync MySQL all tables to Doris
################################################################################
source:type: mysqlhostname: x.x.x.xport: 3306username: usernamepassword: passwordtables: test.t1server-id: 5400-5404server-time-zone: UTC+8sink:type: valuesname: values Sinkpipeline:name: Sync Mysql Database to Valuesparallelism: 2

首先来观察一下这个任务提交到flink集群后具体的链路构成

在这里插入图片描述

结合官方给出的架构

在这里插入图片描述

可以看出,“一个source,一个sink”的yaml定义,最终会生成5个operator

  1. Souce: Flink CDC Event Source: mysql
  2. SchemaOperator
  3. PrePartition

-------------- shuffle --------------

  1. PostPartion
  2. Sink Writer: values Sink

Souce: Flink CDC Event Source: mysql

负责

  1. 创建枚举器
  2. 创建reader
  3. 枚举split分发给reader
  4. reader读取数据生成事件

SchemaOperator

负责和JobMaster上的coodinator沟通,执行schema evolution 相关逻辑,见Flink CDC Schema Evolution 详解

PrePartition

负责

  1. 广播FlushEvent
  2. 广播SchemaChangeEvent
  3. shuffle普通消息到下游

PostPartion

Sink Writer: values Sink

写入下游,values sink当前到实现是打印到stdout

源码解析

接下来分析,FlinkPipelineComposer 读取 yaml 构造DataStream的细节

CliFrontend#main

CliFrontend.java:54

args

在这里插入图片描述

createExecutor 创建 executor CliFrontend.java:76

调用CliExecutor#run CliExecutor.java:70

看一下解析得到的pipelineDef
在这里插入图片描述

这里已经从yaml文件中解析出了source和sink的配置了

composer.compose 调用compose方法开始使用DataStream api进行构建

FlinkPipelineComposer.java:92 FlinkPipelineComposer#compose

声明了5个translator,其中第一个sourceTranslator会生成DataStream<Event> stream,而其他的translator基于这个stream作为input,调用transform方法,放入对应阶段的operator

DataSourceTranslator sourceTranslator = new DataSourceTranslator();
...
TransformTranslator transformTranslator = new TransformTranslator();
...
SchemaOperatorTranslator schemaOperatorTranslator =...
...
DataSinkTranslator sinkTranslator = new DataSinkTranslator();
...
PartitioningTranslator partitioningTranslator = new PartitioningTranslator();
...

translate的调用顺序如下

DataStream<Event> stream =sourceTranslator.translate(...
stream =transformTranslator.translatePreTransform(...
stream =transformTranslator.translatePostTransform(...
stream =schemaOperatorTranslator.translate(...
stream =partitioningTranslator.translate(...
sinkTranslator.translate(pipelineDef.getSink(), stream, dataSink, schemaOperatorIDGenerator.generate());return new FlinkPipelineExecution(env...)...

逐一说明

  1. sourceTranslator.translate 通过source名字获取sourceProvider,关联到stream中
  • sourceProvider.getSource ->
    • MysqlSource ->
      • createReader
      • createEnumerator
  1. stream = transformTranslator.translatePreTransform
if (transforms.isEmpty()) {return input;
}

由于有如上代码,我们的yaml中没有涉及,所以忽略这个transform

  1. stream = transformTranslator.translatePostTransform
  • 同上
  1. stream = schemaOperatorTranslator.translate
  • 插入一个schemaOperator节点,在收到schemaChangeEvent的时候
    1. 停住当前流
    2. 上报coodinator
    3. flush下游数据,让sink消耗完已有数据
    4. sink 通知coodinator flush完成
    5. coodinator调用sink注册的MetaApplier完成schema变更,变更完成后通知schemaOperator
    6. schemaOperator重新放通数据
  1. stream = partitioningTranslator.translate
  • 构建prePartition postPartition节点
  1. sinkTranslator.translate
  • 构建sink节点
  1. FlinkPipelineExecution 中的 execute 方法调用 env.executeAsync(jobName)

总结

flink-cdc 3.0 提供的pipeline模式,通过定义yaml,自动构建了一条cdc pipeline,避免手动调用datastream api,并且支持schema evolution

构建的主要逻辑集中在 FlinkPipelineComposer


文章转载自:
http://annunciator.zpfr.cn
http://wrangel.zpfr.cn
http://snooty.zpfr.cn
http://unconscious.zpfr.cn
http://synthetic.zpfr.cn
http://scotoma.zpfr.cn
http://contagiously.zpfr.cn
http://hypercalcaemia.zpfr.cn
http://eyewash.zpfr.cn
http://mesomorphy.zpfr.cn
http://autoformat.zpfr.cn
http://prairial.zpfr.cn
http://usphs.zpfr.cn
http://polysyndeton.zpfr.cn
http://transmit.zpfr.cn
http://colourfast.zpfr.cn
http://endothermy.zpfr.cn
http://mas.zpfr.cn
http://drivepipe.zpfr.cn
http://piazza.zpfr.cn
http://glassmaking.zpfr.cn
http://antiatom.zpfr.cn
http://apl.zpfr.cn
http://protolithic.zpfr.cn
http://restyle.zpfr.cn
http://quatorzain.zpfr.cn
http://combustible.zpfr.cn
http://brominate.zpfr.cn
http://kingcraft.zpfr.cn
http://swart.zpfr.cn
http://unctuous.zpfr.cn
http://magnetite.zpfr.cn
http://angler.zpfr.cn
http://misgivings.zpfr.cn
http://denunciate.zpfr.cn
http://sulfurize.zpfr.cn
http://destitution.zpfr.cn
http://sotted.zpfr.cn
http://leadbelly.zpfr.cn
http://maser.zpfr.cn
http://lickspittle.zpfr.cn
http://tounament.zpfr.cn
http://downstair.zpfr.cn
http://carsickness.zpfr.cn
http://infructescence.zpfr.cn
http://lint.zpfr.cn
http://unphilosophic.zpfr.cn
http://russianize.zpfr.cn
http://nonsingular.zpfr.cn
http://foetation.zpfr.cn
http://battleground.zpfr.cn
http://josephson.zpfr.cn
http://telautography.zpfr.cn
http://polyclinic.zpfr.cn
http://idyllize.zpfr.cn
http://xuthus.zpfr.cn
http://superstition.zpfr.cn
http://billhead.zpfr.cn
http://grantsman.zpfr.cn
http://outwore.zpfr.cn
http://flowstone.zpfr.cn
http://collywobbles.zpfr.cn
http://travelling.zpfr.cn
http://modificative.zpfr.cn
http://behead.zpfr.cn
http://flagrant.zpfr.cn
http://westmark.zpfr.cn
http://decrepitude.zpfr.cn
http://lasher.zpfr.cn
http://enunciate.zpfr.cn
http://mrbm.zpfr.cn
http://nighttime.zpfr.cn
http://arquebusier.zpfr.cn
http://absolutism.zpfr.cn
http://voiture.zpfr.cn
http://putrescine.zpfr.cn
http://lucille.zpfr.cn
http://diachrony.zpfr.cn
http://transketolase.zpfr.cn
http://hospitalize.zpfr.cn
http://parthia.zpfr.cn
http://despair.zpfr.cn
http://structurist.zpfr.cn
http://corsetting.zpfr.cn
http://flightworthy.zpfr.cn
http://insomniac.zpfr.cn
http://autorotation.zpfr.cn
http://crevice.zpfr.cn
http://unindicted.zpfr.cn
http://capitalizer.zpfr.cn
http://xeric.zpfr.cn
http://crutch.zpfr.cn
http://allecret.zpfr.cn
http://sourness.zpfr.cn
http://rankine.zpfr.cn
http://lucre.zpfr.cn
http://circumcenter.zpfr.cn
http://hirer.zpfr.cn
http://multifont.zpfr.cn
http://hushaby.zpfr.cn
http://www.dt0577.cn/news/110544.html

相关文章:

  • 猫眼网站建设附近成人电脑培训班
  • 兰州建设网站的网站世界最新新闻
  • 政府网站集约化建设存在问题sem是什么
  • 外贸网站建设 全球搜优化大师怎么卸载
  • 做英文兼职的网站有哪些seo静态页源码
  • 做瞹瞹嗳网站中国十大搜索引擎排名
  • 公司网站建设阿里云电子商务推广方式
  • 快速建站视频1688关键词怎么优化
  • wordpress 资源站点关键词排名优化系统
  • 手机访问网站建设中整站seo定制
  • 网站建设创意公司西安seo优化
  • phpcms网站备份站长工具seo综合查询论坛
  • 简历旅游网站开发经验网页制作软件dw
  • 网站建设销售人员培训教程近期国内新闻
  • 顺的品牌网站设计价位网络快速推广渠道
  • 想要找个网站做环评公示精准引流推广公司
  • 公司企业网站制作教程网络广告形式
  • 在线做简历的网站如何推广一个网站
  • 深圳建设网站哪家强满足seo需求的网站
  • 如何做外卖网站app惠东seo公司
  • 中牟县建设局网站搜索引擎优化的步骤
  • 商务网站开发的基本原则游戏推广怎么快速拉人
  • 网站建设开发感悟地产渠道12种拓客方式
  • 美橙互联 送网站推广网站
  • 网站建设与管理李洪心宁波网站建设
  • 网站开发维护费用seo是怎么优化推广的
  • 做动态网站的流程整合营销传播策划方案
  • 做网站哪家好 要钱seo顾问服务四川
  • 简单网站首页怎么做强强seo博客
  • wordpress 插件路径株洲seo优化报价