Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!

file

时隔两个月, Apache SeaTunnel 终于迎来大版本更新。此次发布的 2.3.3 版本在功能和性能上均有较大优化改进,其中大家期待已久的 CDC Schema evolution(DDL 变更同步)、主键 Split 拆分、JDBC Sink 自动建表功能、SeaTunnel Zeta 引擎支持 作业配置支持变量替换和传参等都是更新的亮点。这些功能和优化使得 Apache SeaTunnel 具备了更强大的数据同步能力,大幅提升了 SeaTunnel 的性能。本文将详细介绍本次更新的具体情况。

CDC 相关更新

支持 Schema evolution

关于 CDC 方面的重要更新,是在架构层面支持了 Schema evolution(DDL 变更同步),这是从架构层面对 DDL 变更事件进行了抽象,包括 Source 和 Sink 中相关接口的添加。另外,我们在 Zeta 引擎中添加了 DDL 变更事件与checkpoint 相关的处理流程。至此,在架构层面,SeaTunnel 已经满足了支持 DDL 变更同步的所有前提条件,后续就是不同的连接器实现相应的接口,进行 DDL 变更同步的适配工作。

SeaTunnel CDC 相关设计,可参考《解读重要功能特性:新手入门 Apache SeaTunnel CDC》。

Split 拆分优化

在本次更新之前,CDC Source 读取时只能基于数值类型的主键列进行 Split 的拆分,而在实际使用场景中,很多表没有主键,或者主键的数据类型是字符串类型,这会导致无法进行 CDC 同步。本次更新添加了两个重大 feature:

  • 一个是支持唯一索引作为 split 拆分字段;
  • 另一个是支持字符串类型的字段进行split拆分。

这意味着只要 source 表中拥有主键列或者唯一索引列,并且列的类型是数值或者字符串,就能自动进行 split 的拆分,从而快速完成 CDC 的读取。另外,新版本对于基于字符串类型列进行 split 拆分的算法进行了优化,经过测试,一张拥有 4 亿行,60 个字段的 MySQL 数据表,针对字符串类型主键的 split 拆分由原来的 3 个小时缩短到 20 分钟。在 JDBC Source 的 partition 拆分中,我们添加了同样的算法,从而让 JDBC Source 针对字符串类型的 split 拆分也得到了优化。

新增加 MongoDB CDC 连接器

同时,SeaTunnel 2.3.3 版本新增了 MongoDB CDC 连接器,也能支持 CDC 同步。

Transform 更新

SQL Transform 支持 select * 和 like 模糊匹配。

select * 可以查询出从source传入的所有字段,在select * 之后可以添加其它字段用于实现在同步的过程中添加自定义列的效果,比如下面的示例:

transform {
  Sql {
    source_table_name = "fake"
    result_table_name = "fake1"
    query = "select *, current_timestamp as sync_timestamp from fake"
  }
}

经过这个Transform的处理,会在source输入的第一行数据中添加一个sync_timestamp列,该列的值是该行数据经过该Transform时的系统时间戳。

like 模糊匹配用于在Transform对数据数据进行过滤,比如下面的示例:

transform {
  Sql {
    source_table_name = "fake"
    result_table_name = "fake1"
    query = "select *, current_timestamp as sync_timestamp from fake where name like '%Demo_'"
  }
}

经过这个Transform处理之后,除了实现了上一个示例添加列的效果之外,还可以对数据进行过滤,只有name字段的值以Demo_开头的行才会输出到下游处理节点(其它Transform节点或Sink节点)。

基础能力更新

在做 CDC 多表同步的场景下,之前目标表无法自动创建,需要用户手工在目标端创建好表之后才能进行同步。在本次更新中,添加了 JDBC Sink 自动建表的功能,JDBC Sink 将根据上游传递过来的 catalogtable 自动生成创建表的DDL 语句,并在目标数据库进行建表。

  • 注意,很多数据库都可以使用 JDBC Sink 连接器,但并不是所有数据库都已经实现了自动建表,本次更新目标端支持自动建表的数据库有 MySQL, Oracle, Postgres, SQLServer。另外,使用自动建表对 Source Connector 也有要求,Source 连接器必须实现了 Catalog,本次更新中只有 CDC Source 实现了 Catalog,所以自动建表功能只有在 CDC Source 同步到 MySQL/Oracle/Postgres/SQLServer,并且是在多表同步模式下才能生效。

Zeta 引擎更新

  1. 支持 Schema evolution(DDL变更同步)。

  2. Rest API 添加了提交作业的 API,用户可以使用 Rest API 进行作业的提交。这对于那些自研开发了页面集成 SeaTunnel 的用户来说非常重要,这意味着他们不再需要单独为提交作业安装 SeaTunnel Client。

示例如下:

network:
    rest-api:
      enabled: true
      endpoint-groups:
        CLUSTER_WRITE:
          enabled: true
        DATA:
          enabled: true
    join:
      tcp-ip:
        enabled: true
        member-list:
          - localhost
    port:
      auto-increment: true
      port-count: 100
      port: 5801

具体可参考:https://seatunnel.apache.org/docs/seatunnel-engine/rest-api/#submit-job

  1. 作业配置支持变量替换和传参,本次更新之后,用户可以在作业的 config 文件中使用变量,然后在真正提交作业时通过命令行传参的方式来动态替换这些变量,借助这个功能,用户可以实现离线增量同步功能。

其他功能更新、优化和 Bug 修复

除此之外,新版本还在 SeaTunnel Connector、Zeta 引擎、Transform、CI 等方面进行了重要更新和优化,修复了以往版本的 Bug,并更新了将近 30 个项目文档,其中包括数十个新增 Connector 的使用文档说明,为用户在实际应用场景中进行不同 Connector 的接入提供详细的指导。

  • 详情参考 Release Note:https://github.com/apache/seatunnel/releases
  • 2.3.3 版本下载地址:https://seatunnel.apache.org/download

致谢贡献者

感谢@刘黎对此次发版的指导与帮助,以及下列贡献者对本次发版的支持!

贡献者 GitHub ID

file

本文由 白鲸开源科技 提供发布支持!

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

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

相关文章

【给自己挖个坑】三维视频重建(NSR技术)-KIRI Engine

文章目录 以下是我和AI的对话通过手机拍摄物体的视频,再根据视频生成三维模型,这个可实现吗我想开发类似上面的手机应用程序,如何开发呢 看了以上回答,还是洗洗睡吧NSR技术的实现原理是什么呢有案例吗我是名Java工程师&#xff0c…

DNS原理

文章目录 一、域名产生背景域名的树形层次化结构 二、定义三、DNS查询模式递归查询迭代查询 四、主机域名解析工作流程五、H3C配置DNS代理 首先可以看下思维导图,以便更好的理解接下来的内容。 一、域名 产生背景 在互联网中,通过IP地址访问目标主机…

MySql015——使用子查询

一、创建customers表 ######################## # Create customers table ######################## use study;CREATE TABLE customers (cust_id int NOT NULL AUTO_INCREMENT,cust_name char(50) NOT NULL ,cust_address char(50) NULL ,cust_city char…

计网第四章(网络层)(七)

目录 一、路由信息协议RIP 1.距离向量: 2.跳数: 3.基本工作原理: 三个要点: 4.基本工作过程: (1)初始状态: (2)交换并更新信息 (3&#…

理解HTTPS/TLS/SSL(一)基础概念+配置本地自签名证书

文章目录 没有HTTPS时的样子场景模拟WireShark的Capture Filter和Display Filter设置Capture Filter启动程序设置Display Filter过滤抓到的包 结论 关于为什么加密更简洁有力的回答对称加密和非对称加密和CA证书密钥交换对称加密非对称加密CA机构和证书如何解决客户端和CA机构之…

图转超图 Graph convert toHypergraph

图转超图 DHT 介绍那么它有啥用呢? 这个实在太好玩了,参考的这个论文: EHGNN 采用的方法叫 Dual Hypergraph Transformation (DHT),主要就是把一个 graph 转为 hypergraph DHT 介绍 如何将 graph 转 hypergraph 的呢&#xff1…

基于鹈鹕算法优化的BP神经网络(预测应用) - 附代码

基于鹈鹕算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于鹈鹕算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.鹈鹕优化BP神经网络2.1 BP神经网络参数设置2.2 鹈鹕算法应用 4.测试结果:5.Matlab代码 摘要…

软考:中级软件设计师:无线网,网络接入技术,ipv6

软考:中级软件设计师:无线网 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &#x…

React面向组件编程

往期回顾:# React基础入门之虚拟Dom【一】 面向组件编程 react是面向组件编程的一种模式,它包含两种组件类型:函数式组件及类式组件 函数式组件 注:react17开始,函数式组件成为主流 一个基本的函数组件长这个样子 …

IDEA软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 IntelliJ IDEA是一款流行的Java集成开发环境(IDE),由捷克软件开发公司JetBrains开发。它专为Java开发人员设计,提供了许多高级功能和工具,使得开发人员能够更高效地编写…

文件传输协议

文章目录 一、FTP1. 定义2. 端口3. 数据传输方式主动方式被动方式 二、TFTP三、常用命令 首先可以看下思维导图,以便更好的理解接下来的内容。 一、FTP 1. 定义 文件传输协议(FTP)是一种用于在客户端和服务器之间进行文件传输的标准网络协…

一文讲通物联网嵌入式

最近有很多同学问我,物联网近几年一直是科技的热点,嵌入式和物联网有什么关系呢?我在这里统一给大家讲解一下。 嵌入式是应用于物联网产品方向的一种嵌入式操作系统。类似于Android系统是谷歌开发的移动操作系统,嵌入式实际上也是…

想知道期权买认购和卖认沽有何不同?赶快来看!

期权买认购和卖认沽这个都是做多的意思,看涨做多的意思,买认购是买方做多,无保证金,没有爆仓风险,涨跌幅无限制,卖认沽是卖方做多,需要保证金交易,会爆炸,收益是锁定的&a…

SSH远程连接macOS服务器:通过cpolar内网穿透技术实现远程访问的设置方法

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …

机房安全之道:构筑坚固的网络防线

引言: 在数字化时代,机房成为了许多组织和企业的核心基础设施,承载着重要的数据和应用。然而,随着网络攻击日益猖獗,机房的安全性显得尤为重要。本文将深入探讨如何构建坚固的网络防线,保护机房免受攻击的方…

光伏电站、变电站、等直流系统电参量测量仪器怎么选型

安科瑞虞佳豪 壹捌柒陆壹伍玖玖零玖叁 应用场景 工作拓扑图 功能 ①对电能参数进行采样计量和监测,逆变器或者能量管理系统(EMS)与之进行通讯,根据实时功率及累计电能实现防逆流、调节发电量、电池充放电等功能; ②…

STM32--SPI通信与W25Q64(2)

STM32–SPI通信与W25Q64(1) 文章目录 SPI外设特征 SPI框图传输模式主模式全双工连续传输 非连续传输硬件SPI读写W25Q64 SPI外设 STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担。 特…

2023.8各大浏览器11家对比:Edge/Chrome/Opera/Firefox/Tor/Vivaldi/Brave,安全性,速度,体积,内存占用

测试环境:全默认设置的情况下,均在全新的系统上进行测试,系统并未进行任何改动,没有杀毒软件,浏览器进程全部在后台,且为小窗模式,小窗分辨率均为浏览器厂商默认缩放大小(变量不唯一)&#xff0…

Window基础命令

文章目录 查看哪些端口被禁用TCP协议删除开机启动项方案1方案2 查看哪些端口被禁用TCP协议 netsh interface ipv4 show excludedportrange protocoltcp删除开机启动项 方案1 列出所有启动项 bcdedit /enum仔细看你要删除的是哪一项(看description)&a…

【LeetCode: 56. 合并区间+贪心+双指针+标识+模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…