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

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

file

此次版本发布带来了多项重要更新和功能增强,包括核心与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-CNhalo.kimNick Young
Adarsh JhaHao XuPritham Sriram Govindaraj
Alex Tinghaolinkongpstrasser
Anirudh Hegdehappyboy1024seckiller
asia-zengtaoHe Wangsunjane
bingquanzhaoHuan LiangTung Bui (Leo)
Carl-Zhou-CNic4yTyrantlucifer
chaosJarvisVolodymyr
chen0623-bakJia Fanwachoo
Chengyu Yanjohnwei zhao
chenyundekkWenjun Ruan
David ZolloKunniwow_zx
Dennislightzhaoxiami
dependabot[bot]lizhengleixiaofan2012
dianluoXiaoJiang521
EricmichalrysYan Xiaole
fangmingbei.xuzhengyuan
FlechazoWMorssssyZhilinLi
FuYouJMoSence丑西蒙
gitfortianmuzhongjiang老王
gnehilNick王渔
Guangdong Liuhailin0

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

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SeaTunnel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值