基于大数据平台(XSailboat)的计算管道实现MySQL数据源的CDC同步--flink CDC

1. 背景

笔者在先前的一篇文档《数据标签设计 – 大数据平台(XSailboat)的数据标签模块》 提到了关于数据标签的模块,现已实现并应用于项目中。在项目中遇到这样一种情形:

在业务系统中,对某类对象打了标签,现在需要对这类对象进行过滤并分页查询,支持使用这类对象的属性和所打标签进行过滤。
这就出现了一个问题:标签和打标信息是存储在大数据平台的数据库中的,而业务数据是存储在业务系统数据库中的,这是两个数据库实例。

如果打标信息和业务数据是在一个数据库实例中,那么只需要连接两张表进行查询即可。但是数据标签作为大数据平台的模块,显然是不能将打标数据分散到各个业务系统数据库中的,所以我们就想到了使用CDC,将相关的打标数据同步到需要这些数据的业务库中。

2. 实践

首先构造出下图所示的计算管道:
在这里插入图片描述
整个计算管道就3个节点:

  1. MySQL_BinLog(源)1节点,从源端MySQL上用BinLog模式增量拉取数据。它的主要配置如下:在这里插入图片描述
    主要是选择数据源,选择表,下面的输出项会根据选择的表模式自动生成。

  2. 1_1映射1节点,主要是为了使用侧输出功能,筛选过滤出目标库所需的部分打标数据。因为数据标签功能对在平台中定义了数据源的,有唯一标识的数据都能进行打标,所以当前目标数据源需要的打标数据只是其中一部分。这里之所以使用1_1映射节点的侧输出功能,而不是使用过滤节点,主要是因为考虑到后续可能有其它源也需要同步打标数据,用侧输出有更好的扩展性。
    在这里插入图片描述
    因为这里不需要按键分区,所以它的表达式是一个常数就行。然后定义了输出标签,右侧的表达式定义了筛选条件。这里输入数据行直接作为输出数据,无需处理,所以输出行一键使用输入行填充即可。

  3. MySQL(目标)1节点,将“规则的打标数据”下沉到目标数据库。在这里插入图片描述
    选择目标数据源和表。这里的数据写入方式“全操作”指的是UpdteOrInsertOrDelete,另外还有

  • 插入
  • 更新
  • 插入或更新
  • 插入或删除
  • 更新或删除

点击下图中的1按钮在开发环境调试。如果中心集群中当前工作空间专属的Flink集群没有运行,平台会自动启动这个Flink集群。
在这里插入图片描述
点击上图中的2按钮提交到开发环境,然后去部署。

下图是调试运行界面。
在这里插入图片描述
在生产环境,点击相应版本的计算管道进行部署。
在这里插入图片描述
选择集群,输入/选择集群标签,如果在指定的集群资源上没有指定标签的Flink集群,平台也会自动启动相应标签名称的集群,并部署Flink任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/327734.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IOS-高德地图路径绘制-Swift

本文展示的是在IOS开发中调用高德地图进行驾车路径绘制,开发语言是Swift。 IOS高德地图集成请看:IOS集成高德地图Api 使用路径规划功能需要集成高德地图的搜索功能。 pod AMapSearch定义AMapSearchAPI 定义主搜索对象 AMapSearchAPI ,并继承…

Android 13.0 Launcher3 电话和短信app图标显示未读短信和未接来电的条数

1.概述 在13.0系统产品rom定制化开发中,最近客户有需求要求在电话app图标显示未接来电的条数 在短信app图标上显示未读信息的条数 根据需求首选要在Launcher3的Launcher.java中,启动launcher时,查询未读短信和未接来电 在有未接来电时,更新未接来电的数量 在有未读短信时,…

浏览器网页内嵌Qt-C++音视频播放器的实现,支持软硬解码,支持音频,支持录像截图,支持多路播放等,提供源码工程下载

一.前言 在浏览器中实现播放RTSP实时视频流,⼤体上有如下⼏个⽅案: ⽅案一:浏览器插件⽅案 ActiveX、NPAPI、PPAPI ActiveX插件适用于IE浏览器,NPAPI与PPAPI插件适用于谷歌浏览器,不过这些插件都已经不被浏览器所支持…

【Discuz插件】价值299的论坛积分商城

第一步:首先利用上传工具FTP,将插件上传至网站空间(相信你会搭建论坛,这步应该不是问题,此处滤过) 第二步:找到source文件夹。双击source,可以看到有许多文件,找到plugi…

找不到msvcr100.dll怎么办?msvcr100.dll丢失的解决方法

在面对计算机系统中“msvcr100.dll”文件缺失这一常见问题时,用户可能会遇到应用程序无法正常启动或运行的情况。为了解决这一困扰广大用户的难题,本文将详细介绍并解析找不到“msvcr100.dll”文件的5种有效解决方法。 一、了解一下msvcr100.dll是什么&a…

mathtype2024版本下载与安装(mac版本也包含在内)

安装包补丁主要是mathtype的安装包,与它的补丁。 详细安装过程: step1: 使用方法是下载完成后先安装MathType-win-zh.exe文件,跟着步骤走直接安装就行。 step2: 关闭之后,以管理员身份运行MathType7PJ.exe…

【51单片机系列】继电器使用

文章来源:《零起点学Proteus单片机仿真技术》。 本文是关于继电器使用相关内容。 继电器广泛应用在工业控制中,通过继电器对其他大电流的电器进行控制。 继电器控制原理图如下。继电器部分包括控制线圈和3个引脚,A引脚接电源,B引…

【应用方案】基于MT7628 JN5169 和SUN724的4G-Zigbee智能网关方案

产品方案特性 - 4G-Zigbee智能网关扩展性强; - 百兆以太网接入; - 支持Zigbee 3.0智能家居产品和智能安防产品接入; - 实时检测烟感、气感,联动阀门控制器可自动关闭燃气阀门,并拨打报警电话,防止火灾&…

HBase 基础

HBase 基础 HBase1. HBase简介1.1 HBase定义1.2 HBase数据模型1.2.1 HBase逻辑结构1.2.2 HBase物理存储结构1.2.3 数据模型 1.3 HBase基本架构 2. HBase环境安装2.1 HBase 安装部署2.1.1 HBase 本地按照2.1.2 HBase 伪分布模式安装2.1.3 HBase 集群安装 2.2 HBase Shell操作2.2…

Python线程池multiprocessing.Pool

环境: 鲲鹏920:192核心 内存:756G python:3.9 python单进程的耗时 在做单纯的cpu计算的场景,使用单进程核多进程的耗时做如下测试: 单进程情况下cpu的占用了如下,占用一半的核心数: 每一步…

已实现:JS如何根据视频的http(s)地址,来截取帧图片,并实现大图压缩的功能

现在&#xff0c;我们已经有了视频的http地址&#xff0c;我们怎么截取帧图片呢&#xff1f;我以Vue为基础架构&#xff0c;来写写代码。 1、先写布局&#xff0c;先得有video&#xff0c;然后得有canvas <video id"videoPlay" style"width: 100%; height:1…

Qt超简单实现贪吃蛇

文章目录 常量Snake类GameController类GUI显示游戏简图 为了能够最简单地完成程序&#xff0c;所以没有用类的继承等知识。感兴趣的朋友可以改写一下。 常量 const int FILE_SIZE 30; //地图方格大小 const int FPS 5000 / 33; //游戏运行帧率 enum Item{empty, wall, food…

2023 IoTDB Summit:天谋科技高级开发工程师谭新宇《优其效:如何用 IoTDB 监控工具进行深度系统调优》...

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

ARM day4 汇编及硬件编程

一、指令--数据从内存到cpu--ldr、str load -- 加载 读 store -- 存储 写 在ARM 架构下&#xff0c; 数据从内存到cpu 直接的移动只能通过 LDR/STR来完成 mov 只能在寄存器之间移动数据 &#xff0c;或把立即数移动到寄存器 &#xff0c;并且数据长度不能超过 8 位 str …

C++ 设计模式之策略模式

【声明】本题目来源于卡码网&#xff08;题目页面 (kamacoder.com)&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【设计模式大纲】 【简介】什么是策略模式&#xff08;第14种模式&#xff09; 策略模式是⼀种⾏为型设计模式&…

解决BigDecimal序列化科学计数法前端展示问题(大坑)

解决BigDecimal序列化科学计数法前端展示问题(大坑) 前言&#xff1a;在生产中出现一个问题&#xff0c;就是BigDecimal类型的字段在前端页面展示变成科学计数法&#xff0c;通过排查&#xff0c;发现里面的坑还是挺多的&#xff0c;所以特意记录下处理过程。Json序列化&#x…

使用dbever连接 hsqldb

完整的url为 jdbc:hsqldb:hsql://ip:端口/别名 注意&#xff0c;hsqldb跟随应用启动和停止&#xff0c;所以当应用断点时&#xff0c;hsqldb也会连接不上导致查询数据失败&#xff0c;可以断点前进一步

Angular系列教程之路由守卫

文章目录 前言路由守卫的类型CanLoadCanActivateCanActivateChildCanDeactivateResolve总结 前言 在Angular中&#xff0c;路由守卫是一个非常有用的功能&#xff0c;可以帮助我们控制用户在导航过程中的权限和访问限制。通过使用路由守卫&#xff0c;我们可以拦截导航并根据需…

Mybatis 常用条件语句,大于小于、if、for、模糊搜索、case when、choose

大于小于 方法1&#xff1a; > 大于 &#xff0c; < 小于 <if test"startTime ! null ">and a.create_time > #{startTime} </if> <if test"endTime ! null ">and a.create_time < #{endTime} </if> 方法2(建议写这…

Macbook空间不足怎么解决?

随着使用时间的增长&#xff0c;我们会发现Mac电脑的存储空间越来越少&#xff0c;这时候我们就需要对Mac电脑进行清理&#xff0c;以释放更多的存储空间。那么&#xff0c;Mac空间不足怎么解决呢&#xff1f; 1.清理垃圾文件 Mac空间不足怎么解决&#xff1f;首先要做的就是清…