Apache SeaTunnel 2.3.4 版本发布:功能升级,性能提升

​Apache SeaTunnel团队自豪地宣布2.3.4版本正式发布!本次更新聚焦于增强核心功能,改善用户体验,并进一步优化文档质量。

此次版本发布带来了多项重要更新和功能增强,包括核心与API的修复、文档的全面优化、Catalog支持的引入,以及多表同步的实现等,旨在为开发者提供更加强大和便捷的数据处理能力。

核心功能一览

文档

  • 文档结构统一:我们对文档结构进行了全面优化,使结构更加清晰,便于开发者查找和阅读。
  • 增加示例:每个关键特性现在都附带了相应的示例,帮助开发者更好地理解和应用。
  • JDBC连接器文档拆分:针对不同数据库的特殊参数,我们对JDBC连接器文档进行了拆分,每个数据库都有专门的文档。
  • 设计文档同步到Wiki :为了方便开发者阅读和进行二次开发,我们将设计文档同步到了Wiki

Catalog支持

重构代码添加了Catalog接口 设计文档: https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP5-Refactor+Catalog+and+CatalogTable

  • 获取到的表结构更精确,表结构的自动迁移、转换成为可能。
  • 统一CatalogTable的应用,模型推演贯穿整个数据流。
  • 多表同步有了实现的构架基础。

多表同步------多表读取

支持在一个Source中配置读取多张表

设计文档:https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP4-JDBC+source+supports+multi-table+reading+in+one+task

多表同步------多表写入

支持在一个Sink多表写入:更省资源(无网络IO开销,JDBC连接数可控)

设计文档:https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP3-Sink+supports+multi-table+in+one+task

  • 支持多个表之间JDBC连接共享
  • CDC同步场景下,Sink支持单表多线程处理,提升写入性能。
  • 支持指定线程数,线程资源更可控

SaveMode

设计文档https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=263427916

  • 已有表结构处理,支持目标表不存在时自动创建。真正的解放两手。
  • 已有数据处理,支持删除数据,追加写入
  • 自定义SQL(相当于presql功能)

离线同步

基于主键和唯一索引的自动分片,降低使用门槛:无论是离线同步还是CDC同步的历史同步阶段,SeaTunnel都会自动通过catalog获取表结构信息查询表中的主键和唯一索引字段。SeaTunnel会优先使用主键字段进行分片,没有主键字段时使用唯一索引字段进行分片。如果有联合主键或联合唯一索引,默认使用第一个字段进行分片。

更多的分片算法支持,之前的版本中当表中的数据分布不均匀时(分布因子与1的差异较大)会通过SQL在源表进行抽样的方式进行分片,这种方式需要用到源数据库的计划资源,经过测试8c16g的mysql数据库中一张有5亿行记录的表抽样的SQL需要几个小时才能计算出结果,为了解决这个问题SeaTunnel放弃了使用SQL在源表进行抽样的算法,改为直接查询分片字段的所有值,并在SeaTunnel中进行抽样,可以将抽样的时间缩短到20分钟以内。

支持关闭checkpoint,再也不会checkpoint超时了:2.3.3版本及以前的版本,SeaTunnel离线同步任务也默认开启了checkpoint,由于checkpoint机制依赖合理的分片设置,在抽取的表无法进行分片或者由于设置不当导致单个分片过大时,就会导致checkpoint超时,影响同步任务稳定性。2.3.4版本中默认关闭了离线同步的checkpoint功能,不再会出现checkpoint超时的问题。如果用户希望离线同步能够断点续传,可以通过参数设置手工开始checkpoint功能。

支持任务级别的checkpoint超时设置。可以给每个任务设置不同的checkpoint超时时长。

CDC同步

  • 更多的数据库支持

PostgreSQL CDC

Oracle CDC

  • Flink引擎支持运行CDC任务

2.3.4版本更新说明

Bug 修复

Core

  • [Core] [API] 修复了列表中泛型类丢失的问题 (#4421)
  • [Starter] 修复了在 [] 中 "," 被分隔的问题 (#5401)
  • [Core] [API] 修复了 ReadonlyConfig 键丢失错误 (#5565)
  • [Core] [API] 修复了从 LinkHashMap 获取字节的问题 (#5622)
  • [Core] [API] 修复了多表接收器关闭时的日志错误 (#5683)
  • [Core] [API] 修复了 MultiTableSink 返回提交器但接收器不支持的问题 (#5710)
  • [Core] [API] 修复了解析不支持类型的模式时的错误消息 (#5790)
  • [Core] [API] 修复了 OptionUtilTest.test 的不稳定测试 (#5894)
  • [Core] [API] 修复了 SaveModeHandler 未关闭的问题 (#5843)
  • [Core] [API] 修复了 MultiTableSinkWriter 线程索引始终为 1 的问题 (#5832)
  • [Core] [API] 修复了 SeaTunnelRow::getBytesSize 不支持映射接口的问题 (#5990)
  • [Core] [Common] 修复了 FileUtils::createNewFile 未创建新文件的问题 (#5943)
  • [Core] [API] 修复了 Debezium 格式无法解析日期/时间/时间戳的问题 (#5887)
  • [Starter] 当在双引号内时,',' 被视为普通字符而不是分隔符 (#6042)
  • [Core] [Common] 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5978)
  • [Core] [API] 修复 Object.class 选项值无法返回正常值的问题 (#6247)

转换器-V2

  • [All] 修复转换中的 PrimaryKey 问题 (#5704)
  • [All] 修复转换为时间戳、日期、时间的 bug (#5812)

格式

  • [Text] 允许映射中的条目为 null 并允许条目中的键为 null (#5277)

连接器-V2

  • [Connector-V2] [Clickhouse] 修复了 Clickhouse 旧版本兼容性问题 (#5326)
  • [Connector-V2] [Clickhouse] 修复了 http 头覆盖问题 (#5446)
  • [Connector-V2] [StarRocks] 修复了 starrocks 模板 sql 解析器问题 (#5332)
  • [Connector-V2] [Hive] 修复了 hive-site.xml 无法注入 HiveConf 的问题 (#5261)
  • [Connector-V2] [Clickhouse] 修复了 clickhouse 接收器刷新 bug (#5448)
  • [Connector-V2] [Hive] 修复了读取空目录时发生的错误 (#5427)
  • [Connector-V2] [Oss jindo] 修复了 jindo 驱动下载失败的问题 (#5511)
  • [Connector-V2] [Oss jindo] 移除无用代码 (#5540)
  • [Connector-V2] [File] 修复了 WriteStrategy 并行写入线程不安全问题 (#5546)
  • [Connector-V2] [CDC] 修复了原始表删除字段时 CDC 出现的 NPE bug (#5579)
  • [Connector-V2] [Jdbc] 修复了 oracle catalog 创建表重复和 oracle pg 空指针问题 (#5517)
  • [Connector-V2] [CDC] 修复了 cdc 枚举器中线程不安全的集合容器问题 (#5614)
  • [Connector-V2] [Mongodb] 修复了由 bsonNull 引起的不支持异常 (#5659)
  • [Connector-V2] [File] 修复了文件接收器 isPartitionFieldWriteInFile 在未给出列时出现的异常 (#5508)
  • [Connector-V2] [Doris] 修复了 RestService 报空指针异常 (#5319)
  • [Connector-V2] [MaxCompute] 修复了 MaxCompute 使用不存在的 SCHEMA 选项 (#5708)
  • [Connector-V2] [Doris] 使用 try-with-resources 简化代码 (#4995)
  • [Connector-V2] [Clickhouse] 修复了 clickhouse-sink 输出数据字段顺序错乱的 BUG (#5346)
  • [Connector-V2] [Jdbc] 支持 postgresql xml 类型 (#5724)
  • [Connector-V2] [Jdbc] 可空列源数据中的 null 数据可能导致意外结果 (#5560)
  • [Connector-V2] [Iceberg] Iceberg 源在并行度选项下数据丢失 (#5732)
  • [Connector-V2] [Jdbc] 修复 PG 使用自动创建表时不会创建索引 (#5721)
  • [Connector-V2] [Jdbc] 修复数据库标识符 (#5756)
  • [Connector-V2] [CDC] 修复添加新表时 MultiTableSink 恢复失败 (#5746)
  • [Connector-V2] [CDC] 修复 Postgres 创建表测试用例失败 (#5778)
  • [Connector-V2] [CDC] 清理未使用的代码 (#5785)
  • [Connector-V2] [CDC] 修复从单表切换到多表时状态恢复错误 (#5784)
  • [Connector-V2] [ElasticSearch] 修复 elasticsearch 数组格式的转换异常 (#5825)
  • [Connector-V2] [Jdbc] 修复从 Oracle 读取日期类型值时丢失时间 (#5814)
  • [Connector-V2] [Pulsar] 修复:更新 IDENTIFIER = Pulsar,对于 pulsar-datasource 在项目:seatunnel-web (#5852)
  • [Connector-V2] [Jdbc] 修复 Hive-Jdbc 使用 krb5 时覆盖 kerberosKeytabPath (#5891)
  • [Connector-V2] [InfluxDB] 解决在 initColumnsIndex 方法中直接使用 'tz' 函数附加 QUERY_LIMIT 导致的无效 SQL (#4829)
  • [Connector-V2] [Jdbc] 修复 cdc 更新时未过滤相同主键 (#5923)
  • [Connector-V2] [File] Parquet 读取器解析数组类型异常 (#4457)
  • [Connector-V2] [Http] 修复 http 配置无 schema 选项的 bug 并改进 e2e 测试添加案例 (#5939)
  • [Connector-V2] [Doris] 修复 DorisCatalog 未实现 name 方法 (#5988)
  • [Connector-V2] [TDengine] 修复多个并行度影响驱动加载的程度 (#6020)
  • [Connector-V2] [Jdbc] 修复 jdbc setFetchSize 错误 (#6005)
  • [Connector-V2] [CDC] 修复 CDC 作业恢复运行后无法消费增量数据 (#625) (#6094)
  • [Connector-V2] [File] 修复从 Excel 文件读取异常数据的问题 (#5932)
  • [Connector-V2] [CDC] 修复为恢复作业添加表时导致的 NPE (#6145)
  • [Connector-V2] [Jdbc] 修复 dameng catalog 查询表 sql (#6141)
  • [Connector-V2] [Jdbc] 更新 pgsql catalog 以支持保存模式 (#6080)
  • [Connector-V2] [Jdbc] 修复在大量重复数据情况下的 Spliter 错误 (#6026)
  • [Connector-V2] [CDC] 修复作业恢复后添加的列无法解析 (#6118)
  • [Connector-V2] [CDC] 修复 CDCRecordEmitDelay 指标中的负值 (#6259)
  • [Connector-V2] [CDC] 修复没有主键时无效的拆分键 (#6251)

Zeta(ST-引擎)

  • [Zeta] 修复 NotifyTaskRestoreOperation npe (#5362)
  • [Zeta] 修复 Zeta 会关闭任务两次的错误 (#5422)
  • [Zeta] 禁用 CheckpointTimeOutTest (#5438)
  • [Zeta] 修复 CDC 任务恢复抛出 NPE (#5507)
  • [Zeta] 同一类型的多个接收器动作具有相同名称 (#5499)
  • [Zeta] Checkpoint 异常状态消息不包括状态数据 (#5547)
  • [Zeta] 修复与检查点相关的内存泄漏问题 (#5539)
  • [Zeta] 修复检查点被长时间阻塞的问题 (#5695)
  • [Zeta] 修复作业状态不稳定的问题 (#5450)
  • [Zeta] 修复提交作业 API (#5702)
  • [Zeta] 将默认 DeployMode 设置为 DeployMode.CLIENT (#5783)
  • [Zeta] 使用中文名称提交作业时,rest api 返回乱码名称 (#5870)
  • [Zeta] 修复 CheckpointCoordinator 在未存在待处理检查点时报告 NPE (#5909)
  • [Zeta] 修复提交作业时存在相同作业名称的错误 (#6041)
  • [Zeta] 修复由于没有状态参数而导致返回列表为空的问题 (#6040)
  • [Zeta] 修复 zeta 调度器 bug (#6050)
  • [Zeta] 修复作业在最后一个检查点失败时无法恢复的问题 (#6193)
  • [Zeta] [Rest-API] 从非活动主节点提交或停止作业 (#6217)

E2E

  • [E2E] [Common] 更新 seatunnel 引擎的测试容器版本 (#5323)
  • [E2E] [Jdbc] 修复 jdbc 套件测试完成后未移除 docker 镜像的问题 (#5586)
  • [E2E] [ClickHouse] 增强 ClickHouse E2E 测试以触发多个检查点 (#5476)
  • [E2E] 修复 jdbc 套件测试完成后未移除 docker 镜像的问题 (#5586)
  • [E2E] 修复 ConnectorPackageServiceContainer 未实现 getSavePointCommand/getRestoreCommand 的问题 (#5780)
  • [E2E] 修复因 JdbcHiveITSparkSinkTest 导致的构建失败 (#5798)
  • [E2E] 修复提交作业案例错误 (#6059)
  • [E2E] 修复与动作相关的错误 (#6264)
  • [E2E] 将 mysql 容器版本锁定为 8.0 (#6263)

CI

  • [CI] 修复 jindo oss 连接器名称问题 (#5385)
  • [Build] 修复 fork 仓库不是最新时的错误消息 (#5497)
  • [CI] 修复 CI 在 fork 仓库中运行时未检查文件更改的问题 (#5515)
  • [CI] 移除 jindo 依赖 (#5528)
  • [CI] 修复 phoenix ci 错误 (#5530)
  • [Build] 更新构建版本为 2.3.4-SNAPSHOT (#5619)
  • [Build] 确保 install-plugin.sh 脚本与 Debian 上的 sh 兼容 #5630 (#5631)
  • [CI] [Chore] 移除无用的 sonar 检查脚本 (#5665)
  • [Chore] 移除 DISCLAIMER 文件 (#5673)
  • [CI] 修复 CI 不稳定问题 (#5896)
  • [Build] 修复 config/plugin_config 中的空行导致的构建失败 (#5921)
  • [CI] 修复 CI 未在更改 api 时运行 Kudu/AmazonSQS IT 的问题 (#5955)
  • [CI] 将 doris e2e 分成单独的模块 (#5999)
  • [CI] 修复死链接检查器失败 (#6016)
  • [CI] 修复 e2e 错误 (#6018)
  • [Build] 更新 pom.xml (#6113)
  • [Build] 解决示例运行失败的问题 (#6173)
  • [Build] 修复构建错误 (#6196)
  • [CI] 修复引擎客户端未关闭的问题 (#6241)

示例

  • [Examples] 修改转换 URL 链接 (#5298)

改进

  • [Improve][CheckStyle] 移除 checkstyle 中无用的 'SuppressWarnings' 注解 (#5260)
  • [Improve][CheckStyle] 调整 spotless 插件的阶段以适用于发布插件 (#5607)

Core

  • [Core] [API] 移除 CatalogTableUtil 中的 CatalogTable 字段 (#5521)
  • [Core] [API] 将获取模式逻辑从 Config 移动到 ReadonlyConfig (#5534)
  • [Starter] 当发现一个 pluginIdentifier 对应多个连接器 jar 时抛出 IllegalArgumentException (#5551)
  • [Core] [API] 重构 CatalogTable 并添加 SeaTunnelSource::getProducedCatalogTables (#5562)
  • [Core] [API] 在模式中支持配置列/主键/约束键 (#5564)
  • [Core] [API] 移除 ReadonlyConfig 扁平化特性的无用功能 (#5612)
  • [Core] [Flink & Spark] 重构 Spark/Flink 执行处理器 (#5595)
  • [Core] [API] 标记 SeaTunnelPluginLifeCycle 为废弃 (#5625)
  • [Core] [API] 支持为模式配置 tableIdentifier (#5628)
  • [Core] [Pom] 在根 pom 中添加 junit4 (#5611)
  • [Core] [API] 移除配置文件中的 catalog 标签 (#5645)
  • [Core] [API] 移除来自 setTypeInfo 的无用转换代码 (#5647)
  • [Core] [API] 确保 CatalogTable 选项和 partitionKeys 是可变的 (#5681)
  • [Core] [API]SeaTunnelSource::getProducedType 添加默认实现 (#5670)
  • [Core] [API]SeaTunnelSink::setTypeInfo 添加默认实现 (#5682)
  • [Core] [API] 添加使用后备键的警告 (#5753)
  • [Core] [API] 调整 flink 和 spark 引擎的睡眠模式与 zeta 一致 (#5698)
  • [Core] [API] 移除 Factory 选项以避免无用信息 (#5754)
  • [Core] [API] 将字段名称添加到 DataTypeConvertor 以改善错误消息 (#5782)
  • [Core] [API] 移除使用 SeaTunnelSink::getConsumedType 方法并将其标记为废弃 (#5755)
  • [Core] [Common] 移除 assert 关键字 (#5915)
  • [Core] [Common] 清理流量控制代码 (#5991)
  • [Core] [Common]FILE_OPERATION_FAILED 适配为 CommonError (#5928)
  • [Core] [API] 为 Column 添加 serialVersionUID
  • [Core] [Common]SupportResourceShare 扩展到 spark/flink (#5847)
  • [Core] [API] 如果禁用检查点,则移除检查点超时检查 (#6231)

格式

  • [Json] 使用静态对象映射器代替每次创建它 (#5460)
  • [Json] 移除 assert 关键字 (#5919)
  • [Formats] 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5948)
  • [Formats] 重构 ignoreParseErrors 的异常捕获 (#6065)
  • [Formats]seatunnel-format-compatible-debezium-json 中使用数字格式解析 Decimal 类型 (#5803)
  • [Text] 添加 dateTimeFormatter 以解析 ISO8601 (#5974)
  • [Formats] 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5948)

连接器-V2

  • [Connector-V2] [IoTDB] 移除 IoTDB 接收器中的调度器 (#5270)
  • [Connector-V2] [InfluxDB] 移除 InfluxDB 接收器中的调度器 (#5271)
  • [Connector-V2] [Dynamodb] 移除 Dynamodb 接收器中的调度器 (#5248)
  • [Connector-V2] [StarRocks] 移除 StarRocks 接收器中的调度器 (#5269)
  • [Connector-V2] [CDC] 避免在不必要的数据库下列出表 (#5365)
  • [Connector-V2] [Jdbc] 重构 AbstractJdbcCatalog (#5096)
  • [Connector-V2] [CDC] 支持在 flink 上运行 cdc 作业 (#4918)
  • [Connector-V2] [Assert] 支持 'DECIMAL' 类型并修复 'Number' 类型精度问题 (#5479)
  • [Connector-v2] [Redis] Redis 支持选择数据库 (#5570)
  • [Connector-v2] [CDC] 使用 Source 输出 CatalogTable (#5626)
  • [Connector-v2] [CDC] 添加 dataType datetimeoffset (#5548)
  • [Connector-v2] [Jdbc] 支持读取多个表 (#5581)
  • [Connector-v2] [CDC] 统一 sqlserver TypeUtils 类型转换模式 (#5668)
  • [Connector-v2] [Http] 改进 http e2e 测试 (#5655)
  • [Connector-v2] [AmazonDynamicDB] 添加 amazondynamicdb 源拆分 (#5275)
  • [Connector-v2] [File] parquet 使用系统时区 (#5605)
  • [Connector-v2] [Amazonsqs] 更改 amazonsqsAmazonSqs 作为连接器标识符 (#5742)
  • [Connector-v2] [File] 统一文件源/接收器选项并更新文档 (#5680)
  • [Connector-v2] [AmazonDynamicDB] 代码清理 AmazonDynamoDB 连接器 (#5791)
  • [Connector-v2] [MongoDB] 实现 TableSourceFactory 以创建 mongodb 源
  • [Connector-v2] [Jdbc] 优化 catalog-table 元数据合并逻辑 (#5828)
  • [Connector-v2] [Jdbc]getCountSql 重命名为 getExistDataSql (#5838)
  • [Connector-v2] [ClickHouse] 加速 ClickhouseFile Local 生成 mmap 对象 (#5822)
  • [Connector-v2] [Jdbc] 改进 Jdbc 连接器在数据类型不支持时的错误消息 (#5864)
  • [Connector-v2] [Jdbc] 减少 getCatalogTable 在 jdbc 中的时间消耗 (#5908)
  • [Connector-v2] [StarRocks] StarRocks 支持创建 varchar 字段类型 (#5911)
  • [Connector-v2] [StarRocks] 添加 http socket 超时 (#5918)
  • [Connector-v2] [File] 清理 JsonWriteStrategyExcelWriteStrategy 的内存缓冲 (#5925)
  • [Connector-v2] [StarRocks] StarRocks 支持创建带唯一键的表模板 (#5905)
  • [Connector-v2] [CDC]exactly_once 关闭时禁用内存缓冲以提高稳定性 (#6017)
  • [Connector-v2] [Doris] 在 doris 接收器中添加批量刷新 (#6024)
  • [Connector-v2] [Paimon] 适配 Paimon 0.6 版本 (#6061)
  • [Connector-v2] [File] 使 Oss 实现源工厂和接收器工厂 (#6062)
  • [Connector-v2] [File] 禁用 HDFSFileSystem 缓存 (#6039)
  • [Connector-v2] [Jdbc] 在 jdbc 连接器中遮蔽 hikari (#6116)
  • [Connector-v2] [Jdbc] 支持 Sqlserver 小众数据类型 (#6122)
  • [Connector-v2] [Kafka] 移除 kafka 连接器的无用代码 (#6157)
  • [Connector-v2] [Doris] 改进 doris 接收器以随机使用 be (#6132)
  • [Connector-v2] [Http] 增加自定义配置超时 (#6223)
  • [Connector-v2] [Pulsar] 提高 pulsar 吞吐性能 (#6234)
  • [Connector-v2] [CDC] 支持 int identity 类型在 sql server 中 (#6186)
  • [Connector-v2] [CDC] Doris 流加载使用 FE 而不是 BE (#6235)
  • [Connector-v2] [CDC] 修正名称错误 (#6248)
  • [Connector-v2] [Tdengine] 支持从 tdengine 读取 bool 列 (#6025)
  • [Connector-v2] [Jdbc] 使用 PreparedStatement 从列中采样数据 (#6242)

CI

  • [CI] 更新 sql-udf 文档 (#5197)
  • [CI][E2E][Zeta] 增加 Zeta 检查点超时以避免 connector-file-sftp-e2e 频繁失败 (#5339)
  • [CI] 修复 phoenix ci 错误
  • [Build]seatunnel-hadoop3-3.1.4-uber.jar 放入发布二进制包 (#5743)
  • [Test] 确保在 spark 中的值不会被重用 (#5767)
  • [Test] 移动 MaxCompute 测试用例文件 (#5786)
  • [CI] 始终运行所有模块的单元测试 (#5800)
  • [Test] 将 System.out.println 更改为日志输出 (#5912)
  • [Test] 为命令使用添加一些测试用例
  • [Test] 修复 sql server catalog 测试用例失败 (#6128)
  • [Test] 修复 JobMetricsTest 不稳定 (#6152)
  • [Test] 修复 ConnectorSpecificationCheckTest 无效 (#5820)

E2E

  • [E2E] 移除不必要的代码以减少磁盘压力 (#5613)
  • [E2E] 启用 Oceanbase Mysql 模式的 IT 案例 (#5697)
  • [E2E] 按需从 url 加载驱动类 (#5712)
  • [E2E] Jdbc 测试检查数据一致性 (#5734)
  • [E2E] 启用 e2e 日志输出并禁用控制台接收器日志 (#5879)
  • [E2E] 改进所有引擎的 e2e 日志 (#5936)
  • [E2E] 增强 Kudu E2E 的稳定性 (#6258)

Zeta(ST-引擎)

  • [Zeta] 优化测试用例 CheckpointTimeOutTest.testJobLevelCheckpointTimeOut (#5403)
  • [Zeta] 改进依赖包 (#5624)
  • [Zeta] 将硬编码配置键更改为引用 (#5618)
  • [Zeta] 更改 RestJobExecutionEnvironment 实现的类名 (#5671)
  • [Zeta] 更改默认 Zeta 客户端 JVM 堆值 (#5674)
  • [Zeta] 将 generate_client_protocol.sh 移动到引擎模块 (#5667)
  • [Zeta] 优化 SeaTunnel Zeta 引擎 Jar 包上传逻辑 (#5542)
  • [Zeta]RestJobExecutionEnvironment 移动到 rest 包 (#5764)
  • [Zeta] 从动作名称(检查点状态键)中移除 result_table_name (#5779)
  • [Zeta] 重构 jar 包服务模块 (#5763)
  • [Zeta] 将客户端 cluster-connect-timeout-millis 暴露给 yaml (#5868)
  • [Zeta] 减少检查点完成日志 (#5916)
  • [Zeta] 移除 assert 关键字 (#5947)
  • [Zeta] 调整工厂验证实现的日志级别 (#6153)
  • [Zeta] 忽略无用的错误目标槽错误 (#6135)
  • [Zeta] 添加在提交失败时恢复的功能 (#6101)

Transformer-V2

  • [All] 为 SeaTunnel 转换添加 JsonPath 转换 (#5632)
  • [All] 支持 SqlTransform Not Like 表达式 (#5768)
  • [All] 添加 from_unixtime 函数 (#5462)
  • [All] 支持 case when 表达式 (#6123)

特性

核心

  • [Core] [API] 为检查点超时添加作业级配置 (#5222)
  • [Core] [API] 目录添加大小写转换定义 (#5328)
  • [Core] [API] 为测试添加 InMemoryCatalog 并添加新的 getCatalogTableFromConfig 方法 (#5485)
  • [Core] [Flink] 支持可配置精度和规模的 Decimal 类型 (#5419)
  • [Core] [API]SinkAggregatedCommitter 中添加 initrestoreCommit 方法 (#5598)
  • [Core] [Flink] 在 Flink 中支持流量控制 (#5509)
  • [Core] [Spark] 支持 SeaTunnel 时间类型 (#5188)
  • [Core] [Flink] 移除无用的 stageType (#5650)
  • [Core] [API] 支持多表接收器 (#5620)
  • [Core] [Spark] 在 Spark 中支持流量控制 (#5510)
  • [Core] [Flink] 添加外部配置参数 (#5480)
  • [Core] [API] 移除所有无用的 preparegetProducedType 方法 (#5741)
  • [Core] [Common] 引入新的错误定义规则 (#5793)
  • [Core] [Common] 移除无用的 DeserializationFormatFactory 及其实现 (#5880)
  • [Core] [API] 用 TableSchema 替换 SeaTunnelRowType 在 JdbcRowConverter 中
  • [Core] [Flink] 升级 flink 源翻译 (#5100)
  • [Core] [API] 为所有目录添加不支持的数据类型检查 (#5890)
  • [Core] [Flink] 在 flink 引擎中支持记录指标 (#6035)

连接器-V2

  • [Connector-V2] [CDC] [SQLServer] 支持多表读取 (#4377)
  • [Connector-V2] [Jdbc] Jdbc 数据库支持标识符 (#5089)
  • [Connector-V2] [Jdbc] jdbc 连接器支持 Kingbase 数据库 (#4803)
  • [Connector-V2] [Jdbc] 添加 tidb 数据类型转换器 (#5440)
  • [Connector-V2] [Jdbc] 添加 Dameng 目录 (#5451)
  • [Connector-V2] [File] 支持在输出类型为文件 (CSV) 时写入列名 (#5459)
  • [Connector-V2] [File] 当 FILE_FORMAT_TYPE 为 text/csv 时,添加参数 BaseSinkConfig.ENABLE_HEADER_WRITE: #5566 (#5567)
  • [Connector-V2] [CDC] 支持优先使用数字字段作为分割键 (#5384)
  • [Connector-V2] [File] 支持读取空目录 (#5591)
  • [Connector-V2] [Fake&Assert] 从 FakeSource/Assert 添加 table-names 以产生/断言多表 (#5604)
  • [Connector-V2] [Jdbc] 添加 OceanBase 目录 (#5439)
  • [Connector-V2] [File] 支持 LZO 压缩在文件读取上 (#5083)
  • [Connector-V2] [CDC] 支持在 flink 上运行 MongoDB CDC (#5644)
  • [Connector-V2] [Jdbc] 支持更多配置连接参数的方式 (#5388)
  • [Connector-V2] [Kafka] KafkaSource 使用 Factory 创建源 (#5635)
  • [Connector-V2] [Jdbc] 添加连接器 amazonsqs (#5367)
  • [Connector-V2] [Jdbc] 在 MaxCompute Source 中支持目录 (#5283)
  • [Connector-V2] [Kudu] 重构 Kudu 功能并支持 CDC 数据的接收器 (#5437)
  • [Connector-V2] [CDC] 优化 mysql server-id 的默认值范围以减少冲突 (#5550)
  • [Connector-V2] [Http] HTTP 支持页面增加 #5477 (#5561)
  • [Connector-V2] [Jdbc] 添加 Save Mode 功能和 Connector-JDBC (MySQL) 连接器已实现 (#5663)
  • [Connector-V2] [Jdbc] 支持 XMLTYPE 数据集成 #5716 (#5723)
  • [Connector-V2] [Jdbc] 支持 Hive JDBC Source 连接器 (#5424)
  • [Connector-V2] [Http] Http 参数支持自定义加密 (#5727)
  • [Connector-V2] [Kudu] 在 kudu 上支持 TableSourceFactory/TableSinkFactory (#5789)
  • [Connector-V2] [File] LocalFileSource 支持多表
  • [Connector-V2] [Fake] FakeSource 支持为 MultipleTable 生成不同的 CatalogTable (#5766)
  • [Connector-V2] [Kudu] 支持 kudu 多表源读取 (#5878)
  • [Connector-V2] [Http] 在 http 上支持 TableSourceFactory/TableSinkFactory (#5816)
  • [Connector-V2] [Redis] 在 redis 上支持 TableSourceFactory/TableSinkFactory (#5901)
  • [Connector-V2] [Jdbc] 修复 split 键不支持 BigInteger 类型
  • [Connector-V2] [File] LocalFile 接收器支持多表 (#5931)
  • [Connector-V2] [Doris] Doris 目录 (#5175)
  • [Connector-V2] [Kudu] 支持 kudu 多表接收器特性 (#5951)
  • [Connector-V2] [File] 支持使用多个 hadoop 账户 (#5903)
  • [Connector-V2] [File] 将多表文件 API 放到文件基础模块 (#6033)
  • [Connector-V2] [Paimon] Flink 表存储在准备提交时失败 (#6057)
  • [Connector-V2] [File] 添加多表文件接收器到基础模块 (#6049)
  • [Connector-V2] [Jdbc] jdbc 源支持将字符串类型作为分区键 (#6079)
  • [Connector-V2] [File] 支持读取 .xls excel 文件 (#6066)
  • [Connector-V2] [CDC] 支持读取没有主键的表 (#6098)
  • [Connector-V2] [Assert] 支持检查 Decimal 类型的精度和规模 (#6110)
  • [Connector-V2] [Hbase] 支持数组数据 (#6100)
  • [Connector-V2] [File] FTP 源/接收器添加 ftp 连接模式 (#6077) (#6099)
  • [Connector-V2] [Jdbc] 更新 sqlserver 目录以支持保存模式 (#6086)
  • [Connector-V2] [CDC] 支持自定义表主键 (#6106)
  • [Connector-V2] [Doris] 在 Doris 上支持 SaveMode (#6085)
  • [Connector-V2] [Jdbc] 更新 oracle 目录以支持保存模式 (#6092)
  • [Connector-V2] [ElasticSearch] 添加 elasticsearch save_mode (#6046) (#6092)
  • [Connector-V2] [Jdbc] 改进查询列 sql 的兼容性 (#5664)
  • [Connector-V2] [Jdbc] 改进查询列 sql 的兼容性 (#5664)
  • [Connector-V2] [Pulsar] 添加 Pulsar 接收器连接器 (#4382)
  • [Connector-V2] [StarRocks] 添加 starrocks save_mode (#6029)
  • [Connector-V2] [CDC] 支持 oracle cdc (#5196)
  • [Connector-V2] [Doris] 添加 Doris ConnectorV2 源 (#6161)
  • [Connector-V2] [Jdbc] 支持 postgres jdbc 中的 uuid (#6185)
  • [Connector-V2] [CDC] 支持读取没有主键的表 (#6209)
  • [Connector-V2] [CDC] 修复 jdbc setFetchSize 错误 (#6210)
  • [Connector-V2] [CDC] 修复从单表切换到多表时状态恢复错误 (#6211)
  • [Connector-V2] [CDC] 清理未使用的代码 (#6212)
  • [Connector-V2] [File] 添加 s3file save mode 功能 (#6131)
  • [Connector-V2] [CDC] 支持自定义表主键 (#6216)
  • [Connector-V2] [CDC] 为拆分支持添加日期类型和浮点类型列 (#6160)
  • [Connector-V2] [CDC] 支持 Postgres cdc (#5986)
  • [Connector-V2] [CDC] 更新 jdbc fetchsize (#6245)
  • [Connector-V2] [CDC] 默认禁用 exactly_once 以提高稳定性 (#6244)
  • [Connector-V2] [CDC] 支持在拆分器中的 Short 和 Byte 类型 (#6027)
  • [Connector-V2] [Jdbc] 改进查询表的大致总行数的 SQL 兼容性 (#5972)

Zeta(ST-引擎)

  • [Zeta] 添加 UNKNOWABLE 作业状态 (#5303)
  • [Zeta] 在 zeta 中支持流量控制 (#5502)
  • [Zeta] [REST-API] 停止运行中的作业 (#5512)
  • [Zeta] 在 Kubernetes 上支持 Zeta 引擎 (#5594)
  • [Zeta] 在批处理模式中,可以禁用检查点 (#5914)
  • [Zeta] 将跳过触发检查点的日志级别更改为调试 (#5954)
  • [Zeta] 添加新作业状态 DOING_SAVEPOINTSAVEPOINT_DONE (#5917)
  • [Zeta] 添加 waitForJobCompleteV2 api (#5965)
  • [Zeta] 可以使用 rest api 自动向 Zeta 主节点提交作业 (#5950)
  • [Zeta] [REST-API] 获取已完成作业的信息 (#5949)
  • [Zeta] 修复转换动作返回相同名称 (#6034)
  • [Zeta] 统一作业环境参数 (#6003)
  • [Zeta] 将 TaskGroupLocation 添加到 TaskExecutionService 的线程名称中 (#6095)
  • [Zeta] 在 zeta 中使用 G1 作为默认垃圾收集器 (#6114)
  • [Zeta] 修复带有无检查点文件的保存点启动时的错误 (#6215)
  • [Zeta] 支持在泛型类型中用 hocon 风格声明行类型 (#6187)

CI

  • [Bin] 为所有脚本添加 .bat 脚本 (#5445)
  • [INFRA] 将 CI 移至在 fork 仓库容器上运行 (#5495)
  • [Build] 移除 connector/seatunnel 目录 (#5489)
  • [INFRA] 更新 PR 模板以添加测试和用户更改问题 (#5486)
  • [INFRA] 为 notify_test_workflow.yml 添加日志以追踪错误原因
  • [INFRA] 修复 notify_test_workflow.yml 不稳定
  • [Test] 测试完成后在 jdbc 套件上移除 docker 镜像 (#5568)
  • [Test] 为 ResourceManager 添加测试以确保任务将在不同节点上部署 (#5518)
  • [Chore] 移除无用的 .scalafmt.conf 文件 (#5616)
  • [LICENSE] 添加 hadoop 许可 (#6067)
  • [Build] 将 seatunnel-spark-3-starter.jar 放入发布包 (#6044)
  • [Test] 减少重复目录测试次数 (#6207)
  • [CI] 确保 notify_test_workflow.yml 错误将被抛出 (#6226)

格式

  • [Ogg] 支持读取 ogg 格式消息 #4201 (#4225)
  • [Json] 移除 assert 关键字 (#5919)
  • [Avro] 支持 avro 格式 (#5084)
  • [Formats] 重构 ignoreParseErrors 的异常捕获 (#6065)
  • [Avro] 改进 avro 格式转换 (#6082)

转换器-V2

  • [All] 添加 JsonPath 转换 (#5632)
  • [All] 支持 SqlTransform Not Like 表达式 (#5768)
  • [All] 添加 from_unixtime 函数 (#5462)
  • [All] 支持 case when 表达式 (#6123)

文档优化详情

  • [Docs] 使用统一格式 Feishu 重构 connector-v2 文档 (#5343)
  • [Docs] 重构 IoTDB 接收器文档 (#5306)
  • [Docs] 更正单词错误 (#5360)
  • [Docs] 改进 iceberg 文档 (#5335)
  • [Docs] 使用短链接 https://s.apache.org/seatunnel-slack 替换长 URL (#5363)
  • [Docs] 改进 http 文档参数体描述 (#5368)
  • [Docs] 使用统一格式 Slack 重构 connector-v2 文档 (#5344)
  • [Docs] 更新 sql-udf 文档 (#5197)
  • [Docs] 重构 MySQL-CDC 文档 (#5302)
  • [Docs] 在 FtpFile 的选项描述中将 username 由 user 替换 (#5421)
  • [Docs] 更新 iotdb 文档 (#5404)
  • [Docs] 添加 mysql Connector 文档版本标题示例 pr (#5249)
  • [Docs] 添加并行度 (#5310)
  • [Docs] Http 源选项键 poll_interval_ms 在源代码中不同 (#5430)
  • [Docs] 改进 kafka 接收器文档中的错误示例 (#5527)
  • [Docs] 改进控制台接收器文档 (#5230)
  • [Docs] 添加如何更改 e2e 测试的日志配置 (#5589)
  • [Docs] 添加 RocketMq 连接器 (#5361)
  • [Docs]README.md 中修复构建状态未更新 (#5574)
  • [Docs] hdfsFile 的 file_format 更改为 file_format_type (#5653)
  • [Docs] 改进 README.md (#5662)
  • [Docs] 添加 FakeSource 连接器文档 (#5255)
  • [Docs]README.md 中介绍 SeaTunnel web 项目 (#5634)
  • [Docs] 向 README 添加目录和常见问题解答 (#5693)
  • [Docs] 更新 quick-start-spark.md (#5795)
  • [Docs] 添加 Socket 连接器文档 #5255 (#5287)
  • [Docs] 改进文件接收器文档 (#5799)
  • [Docs] 添加 SqlServer 连接器文档 (#5498)
  • [Docs] 更新 (#5808)
  • [Docs] 添加 hive jdbc 参考值 (#5882)
  • [Docs] 修正 Checkpoint-Storage 描述不正确 (#5883)
  • [Docs] 重构 OssFile 连接器文档 (#5233)
  • [Docs] 修复 oss 连接器无法运行的 bug (#6010)
  • [Docs] 为 jdbc-connector 更新文档 (#5765)
  • [Docs] 添加 V2 连接器 jdbc 文档参数可以加速数据导入 PR (#6176)
  • [Docs] 修改一些文档标题规范 (#6237)
  • [Docs] 重构 Socket Source 和 SftpFile 连接器文档 (#5386)
  • [Docs] 改进驱动放置路径的文档
  • [Docs] 更正数组元素类型和映射键类型的介绍 (#6261)

致谢名单

感谢所有为2.3.4版本做出贡献的社区成员,包括代码贡献者、文档撰写者和测试人员。Apache SeaTunnel的成功离不开每一个人的努力!

用户名1 用户名2 用户名3
Carl-Zhou-CN halo.kim Nick Young
Adarsh Jha Hao Xu Pritham Sriram Govindaraj
Alex Ting haolinkong pstrasser
Anirudh Hegde happyboy1024 seckiller
asia-zengtao He Wang sunjane
bingquanzhao Huan Liang Tung Bui (Leo)
Carl-Zhou-CN ic4y Tyrantlucifer
chaos Jarvis Volodymyr
chen0623-bak Jia Fan wachoo
Chengyu Yan john wei zhao
chenyunde kk Wenjun Ruan
David Zollo Kunni wow_zx
Dennis lightzhao xiami
dependabot[bot] lizhenglei xiaofan2012
dian luo XiaoJiang521
Eric michalrys Yan Xiaole
fang mingbei.xu zhengyuan
FlechazoW Morssssy ZhilinLi
FuYouJ MoSence 丑西蒙
gitfortian muzhongjiang 老王
gnehil Nick 王渔
Guangdong Liu hailin0

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

相关推荐
szxinmai主板定制专家1 小时前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
TGB-Earnest3 小时前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
大圣数据星球5 小时前
Fluss 写入数据湖实战
大数据·设计模式·flink
suweijie7685 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
Data跳动10 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc11111 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq12 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq12 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈12 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据