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

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

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

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

相关文章

【CSS】(浮动定位)易忘知识点汇总

浮动特性 加了浮动之后的元素,会具有很多特性,需要我们掌握的. 1、浮动元素会脱离标准流(脱标:浮动的盒子不再保留原先的位置) 2、浮动的元素会一行内显示并且元素顶部对齐 注意: 浮动的元素是互相贴靠在一起的(不会有缝隙)&…

机器学习专项课程03:Unsupervised Learning, Recommenders, Reinforcement Learning笔记 Week02

Week 02 of Unsupervised Learning, Recommenders, Reinforcement Learning 课程地址: https://www.coursera.org/learn/unsupervised-learning-recommenders-reinforcement-learning 本笔记包含字幕,quiz的答案以及作业的代码,仅供个人学习…

YOLOv9独家改进|使用HWD(小波下采样)模块改进ADown

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、改进点介绍 HWD是一种下采样模型,应用了小波变换的方法。 ADown是YOLOv9中的下采样模块,对不同的数据场景具有一定的可学…

no declaration can be found for element ‘rabbit:connection-factory‘

spring-mvc 配置 rabbitmq 出现问题。 我的解决方案如下: 1 找到配置文件 spring-rabbitmq.xml 我的配置文件叫:spring-rabbitmq.xml,你们按照自己的查找。 2 定位如下URI 接着 Ctrl鼠标左键 3 确定spring-rabbit-x.x.xsd 按照步骤2 &…

uniapp同步将本地图片转换为base64,支持微信、H5、APP

接上篇,少了一个方法的源代码。 先上代码: ploadFilePromiseSync (url) > { return new Promise((resolve, reject) > { // #ifdef MP-WEIXIN uni.getFileSystemManager().readFile({ filePath: url, encoding: base64, success: res > { let …

Rabbitmq消息丢失-生产者消息丢失(一)

说明:消息生产者在将数据发送到Mq的时候,可能由于网络等原因造成数据投递失败。 消息丢失大致分三种:这里说的是生产者消息丢失! 分析原因: 1.有没有一种可能,我刚发送消息,消息还没有到交换…

MySQL中有事务无法回滚的语句?

目录 0.从修改表结构语句开始 1.DDL(Data Definition Language) 数据定义语言 2.DCL(Data Control Language) 数据控制语言 3.在该事务还没提交时开启新事务 4.锁操作 5.行政声明语句 6.主从复制的从机操作 7.如何避免出现隐式提交导致的错误 0.从修改表结构语句开始 试…

tomcat nginx 动静分离

实验目的:当访问静态资源的时候,nginx自己处理 当访问动态资源的时候,转给tomcat处理 第一步 关闭防火墙 关闭防护 代理服务器操作: 用yum安装nginx tomcat (centos 3)下载 跟tomcat(centos 4&#xff0…

Ansible-Playbook

目录 1、概念介绍 roles 角色 playbook 核心元素 ansible-playbook 命令 playbook 简单案例 2、Ansible 变量 自定义变量 facts 变量 Palybook 部署 LAMP ansible 端安装 LAMP playbook 系统环境脚本 构建 httpd 任务 构建 mariadb 任务 构建 php 任务 编写整个任务…

2024年【陕西省安全员C证】考试资料及陕西省安全员C证找解析

题库来源:安全生产模拟考试一点通公众号小程序 陕西省安全员C证考试资料根据新陕西省安全员C证考试大纲要求,安全生产模拟考试一点通将陕西省安全员C证模拟考试试题进行汇编,组成一套陕西省安全员C证全真模拟考试试题,学员可通过…

Netty权威指南——基础篇4 网络通信基础

1 TCP粘包/拆包 TCP是个“流”协议,所谓流,就是没有界限的一串数字。可以想象河里流水,是连成一片的,其间没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,一…

Vue.js的单向数据流:让你的应用更清晰、更可控

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

全局渐变滚动条样式

效果如下&#xff1a; APP.vue<style> /* 整个滚动条 */ ::-webkit-scrollbar {width: 5px;height: 10px; } /* 滚动条上的滚动滑块 */ ::-webkit-scrollbar-thumb {background-color: #49b1f5;/* 关键代码 */background-image: -webkit-linear-gradient(45deg,rgba(255,…

使用Go的encoding/asn1库处理复杂数据:技巧与最佳实践

使用Go的encoding/asn1库处理复杂数据&#xff1a;技巧与最佳实践 引言ASN.1 基础ASN.1与Go语言的关系ASN.1数据类型 encoding/asn1库概览主要功能和特性关键API应用场景 基本使用方法序列化&#xff08;编码&#xff09;反序列化&#xff08;解码&#xff09;处理复杂数据结构…

npm、cnpm、pnpm使用详细

简介&#xff1a; npm&#xff1a;npm&#xff08;Node Package Manager&#xff09;是Node.js的包管理工具&#xff0c;用于安装、更新、卸载Node.js的模块和包。它提供了一个命令行界面&#xff0c;使得开发者可以轻松地管理项目依赖。npm 是 nodejs 中的一部分&#xff0c;…

Pytorch学习 day01(Jupyter安装、常用函数、三种编辑器的对比)

Jupyter 安装过程中遇到的问题&#xff1a; Anaconda的base环境会自动安装Jupyter&#xff0c;但是如果我们要在其他环境中安装Jupyter&#xff0c;就需要注意&#xff0c;该环境的python版本不能高于3.11&#xff0c;且用以下代码安装&#xff1a; conda install nb_conda_…

什么是跨站脚本攻击(XSS)

厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OCP\CKA\K8S\ CISP\CISSP\PMP\ ​ 跨站脚本攻击&#xff08;Cross-site Scripting&#xff0c;通常称为XSS&#xff09;&#xf…

SpringCloud-RabbitMQ消息模型

本文深入介绍了RabbitMQ消息模型&#xff0c;涵盖了基本消息队列、工作消息队列、广播、路由和主题等五种常见消息模型。每种模型都具有独特的特点和适用场景&#xff0c;为开发者提供了灵活而强大的消息传递工具。通过这些模型&#xff0c;RabbitMQ实现了解耦、异步通信以及高…

深度学习系列61:在CPU上运行大模型

1. 快速版 1.1 llamafile https://github.com/Mozilla-Ocho/llamafile 直接下载就可以用&#xff0c;链接为&#xff1a;https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue 启动&#xff1a;./llava-v1.5-7b-q4.lla…

提升效率的电脑定时工具,AutoOff软件推荐

今天最软库给大家带来一款非常实用的电脑定时关机软件在我们日常办公的时候有的时候需要上传一些资料由于我们下班了&#xff0c;我们想让他上传完成之后我们才离开这时候呢&#xff0c;就可以用到这款定时工具了。 我们可以设置中设置在几小时或者几分钟之后让电脑进行关机我们…