类型 | 支持版本 |
自建 SQL Server | 2012 / 2014 / 2016 / 2017 / 2019 / 2022 |
云数据库 SQL Server | 2012 / 2014 / 2016 / 2017 / 2019 / 2022 |
能力 | 支持情况 | 说明 |
离线同步(读 / 写) | ✓ / - | 支持作为离线同步任务的源端读取数据;DataBuddy 数据源仅支持接入读取,不支持写入 |
实时同步(读 / 写) | ✓ / - | 支持作为实时同步任务的源端读取整库数据变更;DataBuddy 数据源仅支持接入读取,不支持写入 |
分库分表同步(读 / 写) | ✓ / - | 支持以分库分表方式读取多个分表数据;DataBuddy 数据源仅支持接入读取,不支持写入 |
限制项 | 说明 |
CDC 功能 | 需要在数据库与表上启用 CDC(Change Data Capture) |
日志保留时间 | CDC 日志至少保留 72 小时 |
无主键表 | 无主键表无法保证 exactly-once 语义 |
版本要求 | CDC 仅在 Enterprise / Developer / Standard 版本可用 |
锁争用 | 建议开启快照隔离避免锁争用 |
限制项 | 说明 |
视图 | 支持读取视图 |
切割键 | 仅支持整型字段 |
字段类型 | 离线读 | 实时读 |
BIT / TINYINT / SMALLINT / INT / INTEGER / BIGINT | ✅ | ✅ |
FLOAT / REAL / DECIMAL / NUMERIC / MONEY / SMALLMONEY | ✅ | ✅ |
CHAR / NCHAR / VARCHAR / NVARCHAR / TEXT / NTEXT / XML | ✅ | ✅ |
DATE / TIME / DATETIME / DATETIME2 / SMALLDATETIME / DATETIMEOFFSET | ✅ | ✅ |
BINARY / VARBINARY / IMAGE / UNIQUEIDENTIFIER | ✅ | ✅ |
GEOGRAPHY / GEOMETRY / HIERARCHYID | ❌ | ❌ |
SQL_VARIANT | ✅ | ❌ |
源端类型 | DataBuddy 内部类型 | 备注 |
BIT | Boolean | 读取为 true / false |
TINYINT / SMALLINT / INT / INTEGER / BIGINT | Long | - |
FLOAT / REAL / DECIMAL / NUMERIC / MONEY / SMALLMONEY | Double | 转为双精度浮点数,超出精度范围会丢失小数精度;对精度敏感的场景建议在目标端改用 Decimal 或字符串类型 |
CHAR / NCHAR / VARCHAR / NVARCHAR / TEXT / NTEXT / XML | String | XML 按文本读取,不解析结构 |
UNIQUEIDENTIFIER | String | - |
SQL_VARIANT | String | 按文本读取 |
DATE | Date | 精确到日 |
TIME | Date | 超出 JDBC 时间范围时按 String 读取 |
DATETIME / DATETIME2 / SMALLDATETIME / DATETIMEOFFSET | Date | 均按日期时间读取,不区分时区语义 |
BINARY / VARBINARY / IMAGE | Bytes | 不做内容解析 |
GEOGRAPHY / GEOMETRY / HIERARCHYID | - | 不支持,任务报错并提示不支持的字段类型 |
上表未列出的其他类型 | - | 任务报错并提示不支持的字段类型 |
源端类型 | TCLake 目标类型 | 备注 |
TINYINT / SMALLINT / INT | INTEGER | - |
BIGINT | LONG | - |
BIT | BOOLEAN | - |
DECIMAL / NUMERIC | DECIMAL | 精度与标度保留 |
MONEY | DECIMAL(19, 4) | - |
SMALLMONEY | DECIMAL(10, 4) | - |
FLOAT | DOUBLE | - |
REAL | FLOAT | 与离线落 Double 不同 |
DATE | DATE | - |
TIME | STRING | 不落时间类型 |
DATETIME / DATETIME2 / SMALLDATETIME | TIMESTAMP | 不带时区 |
DATETIMEOFFSET | TIMESTAMPTZ | 带时区语义,与 DATETIME 落点不同 |
CHAR / NCHAR / VARCHAR / NVARCHAR / TEXT / NTEXT | STRING | - |
XML | STRING | 按文本读取,不解析结构 |
VARBINARY / IMAGE | STRING | 二进制按字符串承载 |
REAL:离线按 Double 读取,实时落 FLOAT。请按任务类型核对对应表格。操作 | 是否支持 |
INSERT / DELETE / UPDATE | ✅ |
操作 | 是否支持 |
新增列 / 删除列 / 重命名列 / 修改列类型 | ❌ |
新增表 / 重命名表 / 删除表 / 清空表 | ❌ |
CREATE LOGIN wedata_user WITH PASSWORD = 'your_password';USE your_database;CREATE USER wedata_user FOR LOGIN wedata_user;GRANT SELECT ON SCHEMA::dbo TO wedata_user;
CREATE LOGIN wedata_cdc_user WITH PASSWORD = 'your_password';USE your_database;CREATE USER wedata_cdc_user FOR LOGIN wedata_cdc_user;GRANT SELECT ON SCHEMA::dbo TO wedata_cdc_user;GRANT SELECT ON SCHEMA::cdc TO wedata_cdc_user;ALTER ROLE db_datareader ADD MEMBER wedata_cdc_user;
USE your_database;EXEC sys.sp_cdc_enable_db;EXEC sys.sp_cdc_enable_table@source_schema = N'dbo',@source_name = N'your_table',@role_name = NULL,@supports_net_changes = 1;
EXEC sys.sp_cdc_help_jobs;
ALTER DATABASE your_database SET ALLOW_SNAPSHOT_ISOLATION ON;ALTER DATABASE your_database SET READ_COMMITTED_SNAPSHOT ON;
参数 | 说明 | 是否必填 |
数据源名称 | 数据源在工作空间内的唯一标识 | 是 |
JDBC URL | jdbc:sqlserver://host:port;DatabaseName=database | 是 |
用户名 | 数据库连接账号 | 是 |
密码 | 数据库连接密码(支持 SSM 凭证托管) | 是 |
数据源版本 | 见 支持的版本 | 是 |
jdbc:sqlserver://10.0.0.1:1433;databaseName=mydbjdbc:sqlserver://10.0.0.1:1433;databaseName=mydb;encrypt=true;trustServerCertificate=true
配置项 | 说明 |
来源表范围 | 指定表 (仅同步选中的表,新增表需重启)/ 正则匹配 (指定库名 + 表名正则,符合规则的新增表自动接入) |
读取模式 | 全量 + 增量 / 仅增量 |
参数 | 说明 |
库 / Schema / 表 | 必填,Schema 默认 dbo |
切割键 | 仅支持整型字段 |
筛选条件 | 标准 WHERE 语法 |
sa。EXEC sys.sp_cdc_change_job@job_type = 'cleanup',@retention = 4320; -- 单位:分钟(72 小时)
USE your_database;EXEC sys.sp_cdc_enable_db;EXEC sys.sp_cdc_enable_table@source_schema = N'dbo',@source_name = N'your_table',@role_name = NULL;
EXEC sys.sp_cdc_help_jobs; 检查 CDC 作业状态。ALTER DATABASE your_database SET ALLOW_SNAPSHOT_ISOLATION ON;ALTER DATABASE your_database SET READ_COMMITTED_SNAPSHOT ON;
文档反馈