大数据智能体工作台 DataBuddy SQL Server 数据源

SQL Server 是 Microsoft 推出的关系型数据库管理系统,广泛应用于企业级应用与数据管理。DataBuddy 数据接入支持将 SQL Server 作为来源端,覆盖离线同步、实时整库同步与分库分表同步等场景。这里说明其连接配置、能力支持范围、前提条件与常。

相关产品
大数据智能体工作台 DataBuddy 产品页,含版本规格、价格与购买入口。

二、支持的版本

类型 支持版本
自建 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 版本可用
锁争用 建议开启快照隔离避免锁争用

六、离线同步限制

限制项 说明
视图 支持读取视图
切割键 仅支持整型字段

七、支持的字段类型

完整字段类型请参见 SQL Server 产品文档。

字段类型 离线读 实时读
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 内部类型(同步链路中的中间类型)。配置任务前请重点核对「备注」列标注的类型,避免精度丢失或语义变化。

源端类型 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 – 不支持,任务报错并提示不支持的字段类型
上表未列出的其他类型 – 任务报错并提示不支持的字段类型

九、字段类型映射(实时同步)

实时同步(整库多表 / 分库分表)由 CDC 连接器解析源端类型并写入 TCLake。下表为自动建表时目标表实际使用的字段类型 ,配置任务前请重点核对「备注」列标注的类型。

源端类型 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 二进制按字符串承载

注意:说明:

十一、DML

操作 是否支持
INSERT / DELETE / UPDATE ✅

十二、DDL

操作 是否支持
新增列 / 删除列 / 重命名列 / 修改列类型 ❌
新增表 / 重命名表 / 删除表 / 清空表 ❌

SQL Server 基于 CDC 机制进行变更捕获,不支持 DDL 变更的自动同步。Schema 变更后需要重新启用 CDC,并可能需要重新配置同步任务。建议在业务低峰期进行 Schema 变更。

十四、1. 配置账号权限

离线同步 :

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;

十五、2. 开启数据库与表 CDC(仅实时同步)

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;

十六、3. 确保 SQL Server Agent 服务正在运行

CDC 依赖 SQL Server Agent Job 来捕获变更:

EXEC sys.sp_cdc_help_jobs;

十七、4. 开启快照隔离(推荐)

ALTER DATABASE your_database SET ALLOW_SNAPSHOT_ISOLATION ON;ALTER DATABASE your_database SET READ_COMMITTED_SNAPSHOT ON;

十九、操作步骤

1. 登录 DataBuddy 控制台。

2. 在顶部切换到目标地域和 Workspace。

3. 进入 数据集成 > 数据源管理 (或 平台管理 > 数据源管理 )。

4. 点击 添加数据源 ,选择 SQL Server 。

5. 填写连接配置与认证信息,详见 参数说明。

6. 点击 连通性测试 (参见 数据源连通性测试)。

7. 测试通过后点击 保存 或 保存 & 创建任务 。

20、参数说明

参数 说明 是否必填
数据源名称 数据源在工作空间内的唯一标识 是
JDBC URL jdbc:sqlserver://host:port;DatabaseName=database 是
用户名 数据库连接账号 是
密码 数据库连接密码(支持 SSM 凭证托管) 是
数据源版本 见 支持的版本 是

JDBC URL 示例:

jdbc:sqlserver://10.0.0.1:1433;databaseName=mydbjdbc:sqlserver://10.0.0.1:1433;databaseName=mydb;encrypt=true;trustServerCertificate=true

22、实时整库

配置项 说明
来源表范围 指定表 (仅同步选中的表,新增表需重启)/ 正则匹配 (指定库名 + 表名正则,符合规则的新增表自动接入)
读取模式 全量 + 增量 / 仅增量

23、离线单表

参数 说明
库 / Schema / 表 必填,Schema 默认 dbo
切割键 仅支持整型字段
筛选条件 标准 WHERE 语法

详细任务配置参见 表到表同步 与 实时整库多表任务配置。

24、最佳实践

·账号权限最小化 :使用专用账号,避免 sa。

·CDC 日志保留 :建议至少 72 小时:

EXEC sys.sp_cdc_change_job @job_type = 'cleanup', @retention = 4320; — 单位:分钟(72 小时)

·切割键选择 :主键或索引列。

·网络打通 :优先使用内网连接。

26、Q:报错 CDC 未启用或找不到 CDC 表?

A:在数据库与表上启用 CDC:

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;

27、Q:CDC 变更未被捕获?

A:SQL Server Agent 服务未启动。请启动 Agent 服务,并通过 EXEC sys.sp_cdc_help_jobs; 检查 CDC 作业状态。

28、Q:报错找不到 CDC 变更数据?

A:CDC 日志保留时间太短,已被清理。请增加 CDC 保留时间(详情请参见 最佳实践)。

29、Q:连接超时或被拒绝?

A:检查网络连通性、确认 SQL Server 允许远程连接、检查防火墙端口(默认 1433)。

30、Q:同步过程中出现锁等待或死锁?

A:未开启快照隔离:

ALTER DATABASE your_database SET ALLOW_SNAPSHOT_ISOLATION ON;ALTER DATABASE your_database SET READ_COMMITTED_SNAPSHOT ON;

31、相关文档

·添加数据源连接

·数据源连通性测试

·支持的数据源与读取能力

·实时整库多表任务配置

赞 (0)
上一篇 4天前
下一篇 4天前