1. 概述版本
| FineDataLink 版本 | 功能變動 |
|---|---|
| 4.0 | 定時任務讀寫適配 SQL server |
| 4.2.13.1&5.0.6.1 | SQL Server 作為實時管道、實時任務的來源端時,所有配置頁面按照使用者心理預期進行展示,對於基於實現原理不支援的情況,透過配置時提示給使用者進行示意 |
| 4.2.14.4 | 定時任務、實時管道任務寫入 SQL server 時,新增「裝載方式」配置項,支援:COPY裝載、普通裝載 |
1.1歷史版本
| 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.1 | SQL 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 | |
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 驅動 注:4.2.9.2 之前版本,使用 jtds 驅動時,若配置 SocketTimeout 值為 3,實際 3 *1000 再傳給驅動,所以建議值為一個較小的整數;4.2.9.2 及之後版本,正常配置即可 |
3.3 收集連結資訊
在連結資料庫之前,請收集以下資訊:
資料庫所在伺服器的 IP 地址和埠號。
資料庫的名稱。
資料庫的帳號和密碼。
要連結的資料庫模式。
3.4 具體連結步驟
建立資料連結步驟請參見:建立並管理資料源

部分設定項說明如下表所示:
| 設定項 | 說明 |
|---|---|
| SocketTimeout(4.1.14.1 及之後版本新增) | 使用者若需要配置該設定項,需要使用 7 以上版本的驅動(產品內建驅動是 6 版本的),需要到官網根據實際資料庫版本下載驅動檔案 1)值說明: 配置當前資料連結的套接字逾時,單位為秒,預設值為 3600 輸入框要求為非負整數,配置為 0 時,視為不設定逾時 2)該設定項應用場景: 在網路發生抖動時,可能會出現管道&定時任務發出查詢後,無限等待傳回資料的問題,使用者維運時,看不到報錯,但實際任務已不再同步資料 配置該設定項後,將控制查詢在一個合理的範圍內,達到套接字逾時時間後,SQL 語句會自動中斷報錯,避免出現無限等待的問題 3)該設定項控制的功能範圍:
|
| 資料連結URL | SQL Server 2012 版若使用了 jtds 驅動,資料連結 URL 格式為:jdbc:jtds:sqlserver://ip:port;databaseName=資料庫名 |
| 其他說明 | 注1:使用者若是想要連結非預設實體,可以更改「資料連結URL」為:jdbc:sqlserver://ip:port;instanceName=實體名;databaseName=資料庫名 注2:連結多模式的資料庫時使用 SQL 語句需要帶上模式名前綴進行搜尋,例如 SELECT * FROM [dbo].[asdfg] |
4. 資料源特性說明
4.1 定時任務
4.1.1 讀取
定時任務支援讀取 SQL Server。詳情請參見:定時任務概述
4.1.2 寫入
定時任務支援寫入 SQL Server。詳情請參見:定時任務概述

1)4.2.7.4 及之後版本,目標端為 SQL Server 時,支援 交易控制 。
2)4.2.14.4 及之後版本,寫入 SQL Server 時,寫入方式新增「裝載方式」配置項。
| 裝載方式 | 說明 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 普通裝載 | 預設為普通裝載 以 JDBC 做串行裝載 應用場景:資料寫入量小時推薦使用;或無法提供 COPY 方案所需使用者權限時,選擇普通裝載方式 | ||||||||
| COPY 裝載 | 應用場景:資料寫入量較大時推薦使用 使用前提: 如選擇 COPY 裝載方式,需要確定目標資料庫和使用者滿足以下條件:
|
4.2 實時管道
實時管道支援讀取和寫入 SQL Server。詳情請參見:實時管道任務概述
4.2.1 讀取
1)4.1.1 及之後版本,SQLServer 資料源作為源表,支援 無主鍵同步
2)4.2.1.1 之前版本,若使用 SQL Server 資料庫作為管道任務的來源庫,配置資料連結時不建議使用自訂驅動;且管道任務的日誌等級不建議為 DEBUG (可設定為 INFO)。否則管道任務中會出現大量 SQL Server cdc 日誌列印。
3)SQL Server 資料源作為管道任務來源端時,目前 DLL同步 不支援自動同步源端新增欄位,若需要使用 DDL 進行新增欄位的處理,請參見 資料管道中SQL Server DDL操作說明
4)對於不是很清晰知道 SQLServer 具體實現原理的使用者,進入配置頁面發現:
能夠配置的欄位不在欄位列表內
想同步的表沒在選擇列表內
實時管道使用者 4.2.13.1 及之後版本、實時任務 5.0.6.1 及之後版本,對於基於實現原理不支援的情況,透過配置時提示給使用者進行示意。
詳情參見表格:
| 場景 | 說明 |
|---|---|
| 實時管道&實時任務:資料庫未開啟 CDC | 選擇資料連結後,提示未開啟 CDC,其餘設定項置灰 |
| 實時管道&實時任務:資料庫開啟 CDC,表未開啟 CDC | 沒有開 CDC 的來源表置灰,無法選擇 |
| 實時管道&實時任務:使用者沒有 CDC 表的讀權限 | 該表置灰,提示資料連結使用者無權限讀取該 CDC 表 |
| 實時管道任務中,快速選表選擇了未開啟 CDC 的表,或者選擇的表沒有讀權限 | 將匹配失敗,並給出提示 |
| 實時管道&實時任務:來源表在欄位映射中展示的欄位邏輯 | 展示來源表所有的欄位:
|
| 實時管道&實時任務:表關閉 CDC | 1)採集任務進行表級報錯,報錯:增量資料獲取失敗,[表名]未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻 2)實時管道中對應的表表級報錯;使用相應的表的實時任務報錯 3)在曆史已經配置好的實時管道、實時任務再啟動時,如果CDC還是未開啟,相應的採集任務進行表級報錯:增量資料獲取失敗,[表名]未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻 |
| 實時管道&實時任務:庫關閉CDC | 1)採集任務進行任務級報錯,報錯:增量資料獲取失敗,資料庫未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻 2)管道任務、實時任務進行任務級報錯 3)在曆史已經配置好的實時管道、實時任務再啟動時,如果CDC還是未開啟,相應的採集任務進行表級報錯:增量資料獲取失敗,資料庫未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻 |
4.1.2 寫入
4.2.14.4 及之後版本,寫入 SQL Server(全量階段)時,寫入方式新增「裝載方式」配置項。

若選擇 COPY 裝載方式,需要在目標資料庫先建立 fdl_temp 模式用來存放臨時表,因此需要給該資料連結帳號賦予在對應資料庫建立模式的權限。
COPY裝載:資料寫入量較大時推薦使用。
普通裝載:資料寫入量小時推薦使用;或無法提供 COPY 方案所需使用者權限時,選擇普通裝載方式。
4.3.資料服務
資料服務 API 支援 SQL Server。詳情請參見:資料服務功能概述
4.4 實時任務
實時任務支援讀取和寫入 SQL Server。詳情請參見:實時任務概述
5.0.6.1 及之後版本,SQL Server 作為來源端時,對欄位、表的展示邏輯進行優化,詳情請參見本文 3.2 節第四條內容。
4.5 定時管道
定時管道支援寫入 SQL Server。詳情請參見:定時管道概述
