暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

SeaTunnel 2024-03-06
1307

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]
    修复因 JdbcHiveIT
    SparkSinkTest
    导致的构建失败 (#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]
    更改 amazonsqs
    AmazonSqs
    作为连接器标识符 (#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]
    清理 JsonWriteStrategy
    ExcelWriteStrategy
    的内存缓冲 (#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
    中添加 init
    restoreCommit
    方法 (#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]
    移除所有无用的 prepare
    getProducedType
    方法 (#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_SAVEPOINT
    SAVEPOINT_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


新手入门

 SeaTunnel 让数据集成变得 So easy!  3 分钟入门指南
从 0 到 1 快速入门 Apache SeaTunnel 
初探 Apache SeaTunnel / 深入理解 Apache SeaTunnel

 MySQL 同步到 Hive / 从MySQL同步到StarRocks
通过 SeaTunnel 将数据写入 OSS-HDFS 
MySQL 到 Elasticsearch 实时同步解决方案

启动 SeaTunnel / 3 分钟部署 SeaTunnel Zeta 
 部署 Apache SeaTunnel 分布式集群
Apache SeaTunnel Web部署指南
基于Apache SeaTunnel构建CDC数据同步管道

最佳实践

 OPPO 清风 天翼云 马蜂窝
孩子王 哔哩哔哩 唯品会
众安保险

测试报告


 性能测试报告:SeaTunnel 批量同步数据比 GLUE 快 420%!
最新性能对比报告:SeaTunnel 是 Airbyte 30 倍!
比DataX快20%!SeaTunnel同步计算引擎性能测试全新发布
SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

Apache SeaTunnel





Apache SeaTunnel 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台


仓库地址: 
https://github.com/apache/seatunnel

网址:
https://seatunnel.apache.org/

Apache SeaTunnel 下载地址:
https://seatunnel.apache.org/download
 
衷心欢迎更多人加入!

我们相信,在「Community Over Code」(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!

我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!

提交问题和建议:
https://github.com/apache/seatunnel/issues

贡献代码:
https://github.com/apache/seatunnel/pulls

订阅社区开发邮件列表 : 
dev-subscribe@seatunnel.apache.org

开发邮件列表:
dev@seatunnel.apache.org

加入 Slack:
https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ

关注 Twitter: 
https://twitter.com/ASFSeaTunnel

文章转载自SeaTunnel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论