最新历史版本 :配置Microsoft SQL Server数据源 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述版本编辑

FineDataLink 版本功能变动
4.0定时任务读写适配 SQL server
4.2.13.1&5.0.6.1

SQL Server 作为实时管道、实时任务的来源端时,所有配置页面按照用户心理预期进行展示,对于基于实现原理不支持的情况,通过配置时提示给用户进行示意

4.2.14.4定时任务、实时管道任务写入 SQL server 时,新增「装载方式」配置项,支持:COPY装载、普通装载


历史版本更新
FineDataLink 版本
功能变动
4.0.7

数据管道输入适配 SQL server

数据管道输出适配 SQL server

4.0.20.1数据服务适配 SQL server
4.1.11.4实时任务读写适配 SQL server
4.1.14.1数据连接支持配置套接字超时(SocketTimeout 设置项中配置),控制数据库查询时间在一个合理范围内,避免出现无限等待的问题
4.2.6.1SQL Server 2012 版适配 jtds 驱动
4.2.10.4定时管道任务的数据去向支持:Microsoft SQL Server

1.2 功能简介

FineDataLink 支持连接 Microsoft SQL Server,进行定时任务读写、实时管道任务读写、数据服务发布、实时任务读写、定时管道写入。

2. 使用限制编辑

数据源功能限制说明请参见本文第三章说明。

3. 配置数据连接编辑

3.1 前提条件

详情请参见:前提条件

3.2 版本和驱动

下载对应的驱动包,如何上传驱动包可参见:驱动管理

注1:4.1.14.1 及之后版本,新增设置项 SocketTimeout,可控制数据库查询时间,详情请参见本文第三章说明;若想使用该设置项,驱动文件需要在 7 以上版本,用户需要到官网根据实际数据库版本下载驱动文件。

注2:4.2.1.1 之前版本,若使用 SQL Server 数据库作为管道任务的来源库,不建议使用自定义驱动。

支持的数据库版本驱动包下载 
SQL Server 2000

sqljdbc.zip

SQL Server 2005

SQL Server 2008

SQL Server 2012

SQL Server 2014

SQL Server 2016

SQL server 2019

注:SQL server 2019 支持在4.0.17.1以及之后的FDL版本中使用

 已内置无需下载
SQL Server 2012

jtds-1.2.5.jar

可使用 jtds 驱动

注:4.2.9.2 之前版本,使用 jtds 驱动时,若配置 SocketTimeout 值为 3,实际 3 *1000 再传给驱动,所以建议值为一个较小的整数;4.2.9.2 及之后版本,正常配置即可

3.3 收集连接信息

在连接数据库之前,请收集以下信息:

  • 数据库所在服务器的 IP 地址和端口号。

  • 数据库的名称。

  • 数据库的用户名和密码。

  • 要连接的数据库模式。

3.4 具体连接步骤

创建数据连接步骤请参见:创建并管理数据源

1730965562871829.png

部分设置项说明如下表所示:

设置项
说明
SocketTimeout4.1.14.1 及之后版本新增

注 1:用户若需要配置该设置项,需要使用 7 以上版本的驱动(产品内置的驱动是 6 版本的),需要到官网根据实际数据库版本下载驱动文件

注 2:4.2.9.2 之前版本,使用 jtds 驱动时,若配置 SocketTimeout 值为 3,实际 3 *1000 再传给驱动,所以建议值为一个较小的整数;4.2.9.2 及之后版本,正常配置即可

1)值说明:

配置当前数据连接的套接字超时,单位为秒,默认值为 3600

输入框要求为非负整数,配置为 0 时,视为不设置超时

2)该设置项应用场景:

在网络发生抖动时,可能会出现管道&定时任务发出查询后,无限等待返回数据的问题,用户运维时,看不到报错,但实际任务已不再同步数据

配置该设置项后,将控制查询在一个合理的范围内,达到套接字超时时间后,SQL 语句会自动中断报错,避免出现无限等待的问题

3)该设置项控制的功能范围:

  • 定时任务:对应数据源读写、SQL脚本执行、参数赋值、全局赋值参数

  • 管道任务:对应数据源读写

  • 数据发布:对应数据源查询

  • 库表管理:SQL执行

数据连接URLSQL Server 2012 版若使用了 jtds 驱动,数据连接 URL 格式为:jdbc:jtds:sqlserver://ip:port;databaseName=数据库名
其他说明

注1:用户若是想要连接非默认实例,可以更改「数据连接URL」为:jdbc:sqlserver://ip:port;instanceName=实例名;databaseName=数据库名

注2:连接多模式的数据库时使用 SQL 语句需要带上模式名前缀进行搜索,例如 SELECT * FROM [dbo].[asdfg]

3. 数据源特性说明编辑

3.1 定时任务

3.1.1 读取

定时任务支持读取 SQL Server。详情请参见:定时任务概

3.1.2 写入

定时任务支持写入 SQL Server。详情请参见:定时任务概

2.jpg

1)4.2.7.4 及之后版本,目标端为 SQL Server 时,支持 事务控制 。

2)4.2.14.4 及之后版本,写入 SQL Server 时,写入方式新增「装载方式」配置项。

装载方式说明
普通装载

默认为普通装

以 JDBC 做串行装载

应用场景:数据写入量小时推荐使用;或无法提供 COPY 方案所需用户权限时,选择普通装载方式

COPY 装载

应用场景:数据写入量较大时推荐使用

使用前提:

如选择 COPY 装载方式,需要确保目标数据库和用户满足以下条件:

  • 需要在目标数据库先创建 fdl_temp 模式用来存放临时表

  • 需要用户有建表、建指定模式的权限(如果已由 DBA 建好模式并赋权,数据库用户可不需要建schema的权限

写入方式
说明
直接将数据写入目标表

1)目标表无主键且未配置「主键映射」时,支持 COPY 装载方式

2)目标表有主键或配置「主键映射」,仅主键冲突策略为「更新数据」时,仅支持「COPY装载」

清空目标表,再写入数据

1)目标表无主键且未配置「主键映射」时,支持 COPY 装载方式

2)目标表有主键或配置「主键映射」,主键冲突策略为「更新数据」时,支持「COPY装载」

基于标识字段,追加/更新/删除数据有无主键映射,均支持「COPY装载」

3.2 实时管道

实时管道支持读取和写入 SQL Server。详情请参见:实时管道任务概述

3.2.1 读取

1)4.1.1 及之后版本,SQLServer 数据源作为源表,支持 无主键同步

2)4.2.1.1 之前版本,若使用 SQL Server 数据库作为管道任务的来源库,配置数据连接时不建议使用自定义驱动;且管道任务的日志等级不建议为 DEBUG (可设置为 INFO)。否则管道任务中会出现大量 SQL Server cdc 日志打印。

3)SQL Server 数据源作为管道任务来源端时,目前 DDL 同步功能 不支持自动同步源端新增字段,若需要使用 DDL 进行新增字段的处理,请参见 数据管道中SQL Server DDL操作说明

4)对于不是很清晰知道 SQLServer 具体实现原理的用户,进入配置页面发现:

  • 能够配置的字段不在字段列表内

  • 想同步的表没在选择列表内

实时管道用户 4.2.13.1 及之后版本、实时任务 5.0.6.1 及之后版本,对于基于实现原理不支持的情况,通过配置时提示给用户进行示意。

详情参见该表格
场景说明
实时管道&实时任务:数据库未开启 CDC选择数据连接后,提示未开启 CDC,其余设置项置灰
实时管道&实时任务:数据库开启 CDC,表未开启 CDC

没有开 CDC 的来源表置灰,无法选

实时管道&实时任务:用户没有 CDC 表的读权限该表置灰,提示数据连接用户无权限读取该 CDC 表
实时管道任务中,快速选表选择了未开启 CDC 的表,或者选择的表没有读权限
将匹配失败,并给出提示
实时管道&实时任务:来源表在字段映射中展示的字段逻辑

展示来源表所有的字段:

  • 对于 SQLServer CDC 不支持的字段,进行置灰,并提示:SQLServer CDC不支持该字段类型

  • 对于 SQLServer CDC 支持但 CDC 表中不存在的字段(比如来源表新增字段),进行置灰,并提示:cdc表中不存在该字段,请新建Capture Instance;详情请参见:数据管道中SQL Server DDL操作说明

实时管道&实时任务:表关闭 CDC

1)采集任务进行表级报错,报错:增量数据采集失败,[表名]未开启CDC,请在源库中开启CDC,配置完成后,建议对相关任务进行全量重跑避免数据不一

2)实时管道中对应的表表级报错;使用相应的表的实时任务报错

3)在历史已经配置好的实时管道、实时任务再启动时,如果CDC还是未开启,相应的采集任务进行表级报错:增量数据采集失败,[表名]未开启CDC,请在源库中开启CDC,配置完成后,建议对相关任务进行全量重跑避免数据不一致

实时管道&实时任务:库关闭CDC

1)采集任务进行任务级报错,报错:增量数据采集失败,数据库未开启CDC,请在源库中开启CDC,配置完成后,建议对相关任务进行全量重跑避免数据不一致

2)管道任务、实时任务进行任务级报错

3)在历史已经配置好的实时管道、实时任务再启动时,如果CDC还是未开启,相应的采集任务进行表级报错:增量数据采集失败,数据库未开启CDC,请在源库中开启CDC,配置完成后,建议对相关任务进行全量重跑避免数据不一致


3.1.2 写入

 4.2.14.4 及之后版本,写入 SQL Server(全量阶段)时,写入方式新增「装载方式」配置项。

3.jpg

若选择 COPY 装载方式,需要在目标数据库先创建 fdl_temp 模式用来存放临时表,因此需要给该数据连接账号赋予在对应数据库创建模式的权限。

  • COPY装载:数据写入量较大时推荐使用。

  • 普通装载:数据写入量小时推荐使用;或无法提供 COPY 方案所需用户权限时,选择普通装载方式。

3.3.数据服务

数据服务 API 支持 SQL Server。详情请参见:数据服务功能概述

3.4 实时任务

实时任务支持读取和写入 SQL Server。详情请参见:实时任务概述

5.0.6.1 及之后版本,SQL Server 作为来源端时,对字段、表的展示逻辑进行优化,详情请参见本文 3.2 节第四条内容。

3.5 定时管道

定时管道支持写入  SQL Server。详情请参见:定时管道概述