SQL Server 作為實時管道、實時任務的來源端時,所有配置頁面按照使用者心理預期進行展示,對於基於實現原理不支援的情況,透過配置時提示給使用者進行示意
資料管道輸入適配 SQL server
資料管道匯出適配 SQL server
FineDataLink 支援連結 Microsoft SQL Server,進行定時任務讀寫、管道任務讀寫、作為資料服務資料發布源、實時任務讀寫。
資料源功能限制說明請參見本文第三章說明。
詳情請參見:前提條件
下載對應的驅動包,如何上傳驅動包可參見:驅動管理
注1:4.1.14.1 及之後版本,新增設定項 SocketTimeout,可控制資料庫查詢時間,詳情請參見本文第三章說明;若想使用該設定項,驅動檔案需要在 7 以上版本,使用者需要到官網根據實際資料庫版本下載驅動檔案。
注2:4.2.1.1 之前版本,若使用 SQL Server 資料庫作為管道任務的來源庫,不建議使用自訂驅動。
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版本中使用
jtds-1.2.5.jar
可使用 jtds 驅動
注:4.2.9.2 之前版本,使用 jtds 驅動時,若配置 SocketTimeout 值為 3,實際 3 *1000 再傳給驅動,所以建議值為一個較小的整數;4.2.9.2 及之後版本,正常配置即可
注:使用該驅動無法讀取儲存程式
在連結資料庫之前,請收集以下資訊:
資料庫所在伺服器的 IP 地址和埠號。
資料庫的名稱。
資料庫的帳號和密碼。
要連結的資料庫模式。
建立資料連結步驟請參見:建立並管理資料源
部分設定項說明如下表所示:
使用者若需要配置該設定項,需要使用 7 以上版本的驅動(產品內建驅動是 6 版本的),需要到官網根據實際資料庫版本下載驅動檔案
注 2:4.2.9.2 之前版本,使用 jtds 驅動時,若配置 SocketTimeout 值為 3,實際 3 *1000 再傳給驅動,所以建議值為一個較小的整數;4.2.9.2 及之後版本,正常配置即可
1)值說明:
配置當前資料連結的套接字逾時,單位為秒,預設值為 3600
輸入框要求為非負整數,配置為 0 時,視為不設定逾時
2)該設定項應用場景:
在網路發生抖動時,可能會出現管道&定時任務發出查詢後,無限等待傳回資料的問題,使用者維運時,看不到報錯,但實際任務已不再同步資料
配置該設定項後,將控制查詢在一個合理的範圍內,達到套接字逾時時間後,SQL 語句會自動中斷報錯,避免出現無限等待的問題
3)該設定項控制的功能範圍:
定時任務:對應資料源讀寫、SQL腳本執行、參數指派、全局指派參數
管道任務:對應資料源讀寫
資料發佈:對應資料源查詢
庫表管理:SQL執行
注1:使用者若是想要連結非預設實體,可以更改「資料連結URL」為:jdbc:sqlserver://ip:port;instanceName=實體名;databaseName=資料庫名
注2:連結多模式的資料庫時使用 SQL 語句需要帶上模式名前綴進行搜尋,例如 SELECT * FROM [dbo].[asdfg]
定時任務支援讀取 SQL Server。詳情請參見:定時任務概述
定時任務支援寫入 SQL Server。詳情請參見:定時任務概述
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裝載」
2)目標表有主鍵或配置「主鍵映射」,主鍵沖突策略為「更新資料」時,支援「COPY裝載」
3)SQL Server 在比較字串時,遵循 ANSIISO SQL-92 標準,會忽略尾部空格。這意味着:
'хxxx '和'xxxx'在比較時被視為相等 。
因此插入'xxxx’時會與已存在的'xxxx '衝突
這個行為適用於CHAR、VARCHAR、NCHAR、NVARCHAR 類型 。
實時管道支援讀取和寫入 SQL Server。詳情請參見:實時管道任務概述
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 的來源表置灰,無法選擇
展示來源表所有的欄位:
對於 SQLServer CDC 不支援的欄位,進行置灰,並提示:SQLServer CDC不支援該欄位類型
對於 SQLServer CDC 支援但 CDC 表中不存在的欄位(比如來源表新增欄位),進行置灰,並提示:cdc表中不存在該欄位,請建立Capture Instance;詳情請參見:資料管道中SQL Server DDL操作說明
1)採集任務進行表級報錯,報錯:增量資料獲取失敗,[表名]未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻
2)實時管道中對應的表表級報錯;使用相應的表的實時任務報錯
3)在曆史已經配置好的實時管道、實時任務再啟動時,如果CDC還是未開啟,相應的採集任務進行表級報錯:增量資料獲取失敗,[表名]未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻
1)採集任務進行任務級報錯,報錯:增量資料獲取失敗,資料庫未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻
2)管道任務、實時任務進行任務級報錯
3)在曆史已經配置好的實時管道、實時任務再啟動時,如果CDC還是未開啟,相應的採集任務進行表級報錯:增量資料獲取失敗,資料庫未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻
4.2.14.4 及之後版本,寫入 SQL Server(全量階段)時,寫入方式新增「裝載方式」配置項。
若選擇 COPY 裝載方式,需要在目標資料庫先建立 fdl_temp 模式用來存放臨時表,因此需要給該資料連結帳號賦予在對應資料庫建立模式的權限。
COPY裝載:資料寫入量較大時推薦使用。
普通裝載:資料寫入量小時推薦使用;或無法提供 COPY 方案所需使用者權限時,選擇普通裝載方式。
資料服務 API 支援 SQL Server。詳情請參見:資料服務功能概述
實時任務支援讀取和寫入 SQL Server。詳情請參見:實時任務概述
5.0.6.1 及之後版本,SQL Server 作為來源端時,對欄位、表的展示邏輯進行優化,詳情請參見本文 3.2 節第四條內容。
定時管道支援寫入 SQL Server。詳情請參見:定時管道概述
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙