当前支持 34 种预设数据库类型,其中二十五种驱动随包内置。按「实时同步」「ETL 任务」与「Redis 缓存投影」三条链路组织:左侧选数据源,中间是三张引擎卡,右侧看能落到哪些目标;卡片上的标签标明它可参与的模式。最下方的专属迁移是独立的整对象复制链路,不走 JDBC,也不占用这条能力矩阵
按主键或时间窗做增量;开启日志 CDC 后直接解析数据库日志。MySQL 兼容家族、Oracle、PostgreSQL 方言家族、SQL Server、达梦、崖山六类源可切 CDC,位点续传、结构同步与行数审计都在同一条链路里。
按 Cron 或手动触发,用自由 SQL 把查询结果写入目标表;支持批次、断点续传与前置 / 后置 SQL,分析型引擎与 MongoDB 原生驱动也能取数。
日志 CDC 的行级变化直接投影进 Redis:键为前缀 + 表名 + 主键,值可选 JSON 或 HASH,支持 TTL、排除列与按前缀重建,不走 JDBC。
只作实时同步的目标,不占数据库类型:仅日志 CDC 源可用,结构 / 索引 / 视图 / 存储过程同步强制关闭,无主键表不投影。
实时同步中,Doris、ClickHouse、Hive、Impala、Elasticsearch、MongoDB(Atlas SQL)只作源、按无主键读取,不会出现在目标下拉。ETL 中 Doris、ClickHouse、Hive、Impala 可作写入目标;Elasticsearch 与 MongoDB(Atlas SQL)只读,MongoDB 原生驱动只作源,H2 主要作为内置元数据库。
一次性复制运行那一刻的数据,不是持续同步;预检通过后手动运行或按 cron 触发,运行中可取消并保留每次运行历史。凭据只存加密字段,MongoDB URI 与 Kingbase JDBC URL 禁止写密码,连接测试与运行日志也不输出 URI。边界见 已知限制。
URLClassLoader + DriverShim 动态加载注册,
不污染应用类加载器,也不会与内置驱动发生版本冲突。
com.huawei.gaussdb.jdbc.Driver、URL 前缀 jdbc:gaussdb://,方言归入 PostgreSQL 系;
后者使用 org.opengauss.Driver。TDSQL、PolarDB 的预置对应 MySQL 版;
PolarDB 的 PostgreSQL 版直接选 PostgreSQL,Oracle 兼容版请用自定义类型。
每一行都通过基于主键的 upsert 写入,重复执行收敛到同一状态 —— 这把「至少一次投递」变成了「结果上的恰好一次」
| 数据库 | 语句 |
|---|---|
| MySQL 系(MySQL / MariaDB / TiDB / OceanBase / GoldenDB / TDSQL / PolarDB / GreatDB / UPDRDB / KunDB / GBase / H2) | INSERT ... ON DUPLICATE KEY UPDATE |
| PostgreSQL 系(PostgreSQL / openGauss / 华为 GaussDB / 金仓 / 瀚高 / 海量 / 神通 / RASESQL / SeaboxSQL) | INSERT ... ON CONFLICT (pk) DO UPDATE |
| Oracle 系(Oracle / 达梦 DM / 崖山 YashanDB) | MERGE INTO ... USING (SELECT ? FROM DUAL) |
| SQL Server | MERGE ... WITH (HOLDLOCK) |
| DB2 | MERGE INTO ... USING (VALUES (?)) |
| 通用 / 自定义 | UPDATE-then-INSERT(无原生 upsert 时的兜底,含唯一冲突重试) |
UPSERT … WITH PRIMARY KEY;
Doris、ClickHouse、Hive、Impala、Elasticsearch、MongoDB(Atlas SQL)只能作为实时同步的源(轮询 / 全表比对),
不会出现在目标下拉中,且一律按无主键读取 —— 增量只识别新增,需要收敛时用全表比对。它们同样可以继续用于 ETL;
Elasticsearch 与 MongoDB 只读。MongoDB 另提供原生驱动路径,填集合名与可选的 Extended JSON 过滤条件即可取数。
预置的 OceanBase、PolarDB 对应 MySQL 模式,Oracle 模式请选「自定义」类型并填写 Oracle 系
JDBC URL;PolarDB 的 Oracle 兼容版是 PostgreSQL 协议产品,选自定义类型、方言家族选 PostgreSQL 并配
com.aliyun.polardb2.Driver;崖山 YashanDB 的 URL 前缀为 jdbc:yasdb:,选择类型后自动生成,无需记忆。
二十五种常用驱动随包内置,个别商业 / 自定义驱动仍按需动态加载,互不污染应用类加载器
MySQL、MariaDB、Oracle、SQL Server、DB2、PostgreSQL、openGauss、达梦 DM、人大金仓 KingBase、OceanBase、TiDB、GoldenDB、TDSQL、PolarDB、GreatDB、UPDRDB、KunDB、RASESQL、SeaboxSQL、瀚高 HighGo、海量 Vastbase、崖山 YashanDB、Apache Doris、MongoDB 原生驱动、H2。 共二十五种随发行包内置,开箱即用,新建连接时不再需要手动上传 jar。 TiDB、GoldenDB、TDSQL、PolarDB、GreatDB、UPDRDB、KunDB、Doris 兼容 MySQL 协议、复用 MySQL 驱动; RASESQL、SeaboxSQL 复用 PostgreSQL 驱动,MongoDB 原生驱动直接连接任意 mongod,选对应类型即可。
仅 华为 GaussDB、GBase、神通 Oscar、SAP HANA、ClickHouse、Hive、Impala、Elasticsearch、MongoDB(Atlas SQL)与自定义数据库需要自备 jar:在连接配置中填写驱动 jar 路径或所在目录,驱动类留空即使用预设值、也可以覆盖,工具会用独立 URLClassLoader 加载,并通过 DriverShim 注册到 DriverManager。
mkdir -p /opt/jync/drivers cp gaussdbjdbc.jar gbase-8.3.81.53.jar oscarJDBC.jar /opt/jync/drivers/ # GaussDB / GBase / 神通 Oscar cp ngdbc.jar clickhouse-jdbc-all.jar hive-jdbc-standalone.jar impalaJDBC4.jar /opt/jync/drivers/ # SAP HANA / ClickHouse / Hive / Impala cp elasticsearch-jdbc.jar mongodb-jdbc.jar /opt/jync/drivers/ # Elasticsearch / MongoDB Atlas SQL
然后在「数据库连接」页面新建连接时,填写驱动 jar 路径(如 /opt/jync/drivers/gbase-8.3.81.53.jar,也可以填目录)
与驱动类名(选择预设类型时会自动填好,留空即用预设值)。点击「测试连接」验证加载成功即可保存。
THIRD_PARTY_LICENSES.md;华为 GaussDB、GBase、神通 Oscar、SAP HANA、ClickHouse、Hive、Impala、Elasticsearch、MongoDB(Atlas SQL)等第三方驱动不随本项目分发,
请自行从厂商处获取并确认使用授权。
Oracle / SQL Server → 国产库的替换场景是本工具的主战场
达梦、人大金仓、OceanBase、TiDB、OpenGauss、华为 GaussDB、中兴 GoldenDB、腾讯 TDSQL、阿里 PolarDB、 万里 GreatDB、银联 UPDRDB、星环 KunDB、平安 RASESQL、东方金信 SeaboxSQL、瀚高、海量、崖山、南大通用、神通 十九种国产与信创库都是预设选项:Oracle 系有专门的方言与元数据读取器实现,MySQL / PostgreSQL 协议产品复用对应家族 已验证的 DDL、upsert 与元数据读取链路,而不是靠通用 JDBC 蒙。已处理的差异包括:
MERGE INTO ... FROM DUAL 这类 Oracle 系特有语法DECIMAL(0,0)SUBSTR → SUBSTRING,且不会二次命中自身这恰恰是 Debezium、Canal 生态设计重心未覆盖的场景 —— 它们对国产数据库的官方支持相对有限。