更新时间:2025-07-14 GMT+08:00

DWS-Connector版本说明

DWS-Connector版本发布包含:dws-client、dws-connector-flink、dws-flink-ingestion组件,入库相关均使用dws-client作业底层入库组件。

  • dws-client是一款集成了DWS JDBC的高性能数据库入库工具。
  • dws-connector-flink是封装dws-client基础上,对接开源Flink的工具。
  • dws-flink-ingestion是集成前两者基础上,dws提供的一个flink入库作业包(该组件当前未开放提供,如需使用请联系技术支持)。

三个组件统一使用dws-client版本号:当前版本分为1.x和2.x版本。版本记录参见表1,各版本与jdbc的配套关系参见表2

  • 1.x版本将不再引入新的功能,仅对已有功能加固。
  • 2.x版本为长期演进版本,由于整体设计做了较大重构,部分功能使用会和1.x版本不兼容。

因此1.x版本短期会持续维护修复重要问题,待2.x稳定使用后将停止演进1.x版本。

表1 版本变更记录

版本

变更描述

备注

1.0

初始化版本。

dws-connector-flink仅发布Scala2.11 Flink 1.12版本

1.0.2

dwsclient优化异常重试逻辑,由所有异常重试修改为只重试:连接异常、数据库只读、超时、连接数过多、加锁异常五类异常。

dws-connector-flink支持版本:

Scala2.11: Flink 1.12、1.13

Scala2.12:Flink 1.12、1.13、1.15

1.0.3

  1. 已知问题修复与性能优化。
  2. 支持update写入场景。
  3. 支持使用唯一索引。
  4. 由于支持update模式,为避免原dwsClient中upsert接口歧义,故后续统一使用write接口承载写入操作,两接口能力一致推荐使用write。

-

1.0.4

增加SQL执行超时时间,避免长时间阻塞。

-

1.0.5

修复无主键表相同数据写入丢失问题。

-

1.0.6

  1. 优化攒缓存逻辑代码性能,提升在CPU不足场景的吞吐。
  2. 增加临时表复用,避免在copy merge/upsert场景频繁创建临时表。
  3. copy增加CSV格式,避免在数据复杂时受特殊字符干扰无法正常入库。

-

1.0.7

  1. 数据库重启中写入数据失败后支持重试。
  2. 增加as方式创建临时表,解决在有主键表无法使用copy merge/upsert的问题。
  3. 数据库字段适配为默认大小写不敏感。
  4. Flink SQL增加打印主键参数,用于分析数据缺失时排查问题。

-

1.0.8

  1. 修复Flink SQL主键配置必须大小写和数据库一致问题。
  2. 增加设置sink并发的参数。

-

1.0.9

优化时间类型入库。

-

1.0.10

  1. 修复client并发执行delete和insert,导致有概率先执行insert后执行delete,当同主键数据在同一批缓存中先删除后写入会导致丢数据问题。
  2. 修复Kafka写dws链路中偶现写DWS异常后丢数据问题。
  3. 新增connector参数ignoreUpdateBefore,部分主要参数兼容flink-connector-jdbc。

-

1.0.11

  1. dws client write接口支持传入schema用于检查数据库字段是否和传入schema一致,如果缺少字段将自动新增字段。
  2. 支持配置比较字段,必须满足新数据比数据库值大才会被更新。
  3. flink sql支持逻辑删除。

connector-flink新增 Scala2.12:Flink 1.17

1.1.0

dws client 缓存写入性能优化

-

1.1.0.1

  1. client适配bit类型入库。
  2. client适配nvarchar为null时入库。

-

1.1.0.2

修复问题:

  1. 表字段大写报错
  2. 当使用upsert入库,如果数据库类型为bigint,但是数据源第一条为int类型,后面为long类型并且超过int范围,报错超过int范围。

-

1.1.0.3

修复问题:

  1. 修复表名大写时读取binlog报错。
  2. 修复copy模式下源数据带\u0000报错问题。

-

2.0.0-r0~r2

2.x版本初始化:

  1. 新增直连DN入库能力。
  2. 重构缓存模型,表级别下新增分区级别缓存,每个表中可以有多份缓存,缓存通过分布列映射到不同分区中,可实现并发入库。
  3. client初始化支持properties配置文件方式。
  4. upsert、merge等操作强制要求前一批数据完成后才能执行,保证入库顺序和缓存写入顺序一致。
  5. 数据类型的转换迁移至写缓存时,copy、upsert均可生效。

-

2.0.0-r3

若干问题修复,主要包括:

  1. flink sql binlog读取时,表名称配置为不存在表导致dws集群连接耗尽。
  2. binlog读取时,表字段、schema大写无法读取问题。
  3. flink sql入库过程中如果dws发生故障,有概率触发单条数据丢失。

功能优化增强:

  1. flink sql 及API增加入库时延、入库速度指标。
  2. 当无主键但是有唯一索引时可自动获取唯一索引。
  3. jdbc连接增加标签。
  4. 时间类型字段转换逻辑增强。
  5. DwsInvokeFunction接口context使用Map接口。

-

表2 dws-connector与JDBC版本对应关系

dws-connector版本

JDBC版本

1.1.0.1及之前

8.1.3

1.1.0.2、1.1.0.3

8.2.1.300-200

2.x

8.2.1.300-200