Flink CDC 整库 / 多表同步至 Kafka 方案(附源码)

本文讨论的方案将是本博客以往介绍的所有关于 CDC 数据同步方案中最贴合实际生产需要的,因为以往介绍的开箱即用方案往往都是一张表对应一个 Kafka Topic,在数据库和数据表数量很大的情况下,这种模式是不实用的,用户真正需要的是:将多张数据表或整个数据库写入到一个 Kafka Topic 中,然后下游再对 Kafka 消息进行分流,也就是把同一张表中的数据分离出来写入到下游表中。要实现这样的设计目标,有一个非常重要的前提条件:Kafka 中的消息必须要包含两个关键字段,就是这条 CDC 数据所属的数据库名和数据表名。本文我们将详细介绍这一方案的具体实现并给出可执行的源代码(订阅用户可以私信博主获得完整的项目源码)。

方案的整体思路是:

  1. 使用 Flink CDC 的 API 将 MySQL 整库或多表写入到一个 Kafka Topic 中

  2. 数据格式使用 debezium-json,但是该格式不包含 CDC 数据所属的数据库和表名,所以需要提供自定义的数据格式,将 CDC 数据所属的数据库和表名添加到 Kafka 消息中

本文提供完整可云行的项目源码,演示完整的数据接入流程,在后续问文章会进一步介绍对同一Topic中不同表的数据进行分流写入 Hudi 表的操作,最终会整合为完整实用的CDC 方案。

此外,结合典型的实时数仓维表关联场景,CDC 消息在分流时还需要根据配置表提供的配置信息将数据动态风流到指定位置,当配置发生改变时,例如要添加新的维表,会通过修改配置表即时生效,这一特性也会在该方案的基础之上,在后续的文章中各出具体实现!

本着“不重新发明轮子”的原则,本

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle入门——基础语法篇

01-表空间_用户创建 -- 查看当前用户 select user FROM dual;--创建表空间 --datefile 地址 --size --autoextend on --next create tablespace test datafile c:/data/test.dbf size 100m autoextend on next 10m;--创建用户 default tablespace 默认表空间 create user c##u…

麒麟服务器操作系统自动化安装应答文件制作

原文链接:麒麟服务器操作系统自动化安装应答文件制作 Hello,大家好啊!今天我们将探讨如何为麒麟服务器操作系统制作自动化安装应答文件。在部署大量服务器时,自动化安装是提高效率和确保安装一致性的关键技术。通过使用应答文件&a…

云原生Kubernetes: K8S 1.29版本 部署Kuboard

目录 一、实验 1.环境 2.K8S 1.29版本 部署Kuboard (第一种方式) 3.K8S 1.29版本 部署Kuboard (第二种方式) 4.K8S 1.29版本 使用Kuboard 二、问题 1.docker如何在node节点间移动镜像 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注ma…

全量知识系统 程序详细设计之 刀具库钩子程序和胶水语言(QA 百度搜索)

Q1. 我们聊聊全量知识系统中的三大套:刀具库、钩子程序和胶水语言 全量知识系统中的三大套——刀具库、钩子程序和胶水语言,在软件开发和系统构建中扮演着至关重要的角色。这些概念在不同的技术背景下可能有所不同,但总体来说,它…

css3中有哪些伪选择器?

CSS3中有以下伪选择器: :active(选中的元素处于活动状态):checked(选中的表单元素):disabled(禁用的表单元素):empty(没有子元素的元素):enabled(可用的表单…

Hive进阶(5)----yarn的资源调度策略

yarn的资源调度策略 YARN(Yet Another Resource Negotiator)是Apache Hadoop的资源管理器。它负责集群资源的管理和作业调度。YARN的资源调度是通过几个关键组件来实现的: ResourceManager(RM):RM是YARN集群…

如何在Python中有效地使用列表推导式和生成器表达式? —— 编写更简洁、高效的代码

列表推导式和生成器表达式是Python中非常强大和常用的工具,可以帮助我们编写更简洁、高效的代码。下面是一些使用列表推导式和生成器表达式的技巧和建议: 使用列表推导式创建新的列表: 从已有的列表中选择满足特定条件的元素:new_…

tp8 在构造函数中实例化模型

在ThinkPHP 8(TP8)中,如果你需要在控制器或其他类的构造函数中实例化模型,你可以按照以下步骤进行: 首先,确保你已经定义了模型类。例如,如果你有一个名为User的模型,你应该有一个a…

安全开发之碰撞检测与伤害计算逻辑

一、什么是碰撞检测逻辑? 用通俗移动的话来说,碰撞检测就是一门检测两部分运动轨迹是否碰到一起的逻辑,在游戏中一般至少包含2方面的碰撞检测逻辑:一、核心玩法的碰撞检测逻辑;二、运动碰撞检测逻辑。 关于核心玩法的…

手写一个民用Tomcat (06)

我们这次是引入获取参数,比如你的GET 请求 或者post 请求 如何吧请求参数进行封装 成map 集合 。 先看下erquest。请求类里边改造 private void parseRequestLine() 这个方法 改造成 依据 ?进行分割处理因为 http://localhost:8080/servlet/com.yixin.HelloWor…

负载均衡原理|算法

负载均衡(Load Balancing)是一种计算机网络技术,其目的是将大量的并发请求或网络流量分散到多个服务器上,以此来提高服务的可用性、响应速度、以及系统的总体处理能力,同时减轻单个服务器的负担。负载均衡不仅能够避免…

太阳能路灯光伏板的朝向设计问题

题目:太阳能路灯光伏板的朝向设计问题 难度对标几乎每一年的国赛A题。 QQ群:592697532 公众号:川川菜鸟 文章目录 背景问题问题一问题二问题三 题目解读相关公式(必备)太阳辐射的计算光伏板接收的辐射光学效率大 气透…

OpenXR手部追踪实现详解

在虚拟现实(VR)和增强现实(AR)应用中,手部追踪技术是提高用户交互自然性的关键技术之一。本文将详细介绍如何使用OpenXR API实现手部追踪功能,包括系统属性的查询、手部追踪器的创建和手部关节的定位。 开…

Spring Cloud Gateway详细介绍以及实现动态路由

一. 简介 Spring Cloud Gateway This project provides a libraries for building an API Gateway on top of Spring WebFlux or Spring WebMVC. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to …

C++的线程

#include<iostream> #include<thread> #include<unistd.h> using namespace std; void myrun() {while(true){cout<<"I am a thread"<<endl;sleep(1);} } int main() {thread t(myrun);t.join();return 0; } 如果不添加-lpthread就会报…

基于ChatGPT打造安全脚本工具流程

前言 以前想要打造一款自己的工具&#xff0c;想法挺好实际上是难以实现&#xff0c;第一不懂代码的构造&#xff0c;只有一些工具脚本构造思路&#xff0c;第二总是像重复造轮子这种繁琐枯燥工作&#xff0c;抄抄改改搞不清楚逻辑&#xff0c;想打造一款符合自己工作的自定义的…

Day 25 组合(优化)216.组合总和III 17.电话号码的字母组合

组合&#xff08;优化&#xff09; 先给出组合问题的回溯部分代码&#xff1a; vector<vector<int>> result; // 存放符合条件结果的集合vector<int> path; // 用来存放符合条件结果void backtracking(int n, int k, int startIndex) {if (path.size() k) …

【opencv】dnn示例-person_reid.cpp 人员识别(ReID,Re-Identification)系统

ReID(Re-Identification&#xff0c;即对摄像机视野外的人进行再识别) 0030_c1_f0056923.jpg 0042_c5_f0068994.jpg 0056_c8_f0017063.jpg 以上为输出结果&#xff1a;result文件夹下 galleryLIst.txt queryList.txt 模型下载&#xff1a; https://github.com/ReID-Team/ReID_e…

简搜,一个安卓应用,用于扫描纸质书,把它变成可以用多个关键词搜索的电子书

下载连接&#xff1a;简搜scanner-app资源-CSDN文库 扫描纸质书&#xff0c;让它变成可以像百度搜索一样使用的电子书。 诸如自考、公务员考试考试中&#xff0c;需要大量刷题时&#xff0c;大部分知识点就在书中&#xff0c;但是要找到它&#xff0c;通常要花几分钟甚至个把…

OpenHarmony网络通信-socket-io

简介 socket.io是一个在客户端和服务器之间实现低延迟、双向和基于事件的通信的库。建立在 WebSocket 协议之上&#xff0c;并提供额外的保证&#xff0c;例如回退到 HTTP 长轮询或自动重新连接。 效果展示 下载安装 ohpm install ohos/socketio OpenHarmony ohpm 环境配置等更…