历史版本17 :配置Microsoft SQL Server資料源 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述版本编辑

FineDataLink 版本功能變動
4.0定時任務讀寫適配 SQL server
4.2.13.1&5.0.6.1

SQL Server 作為實時管道、實時任務的來源端時,所有配置頁面按照使用者心理預期進行展示,對於基於實現原理不支援的情況,透過配置時提示給使用者進行示意


1.1歷史版本

FineDataLink 版本功能變動
4.0定時任務讀寫適配 SQL server
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 驅動

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 具體連結步驟

建立資料連結步驟請參見:建立並管理資料源


部分設定項說明如下表所示:

設定項
說明
SocketTimeout4.1.14.1 及之後版本新增

使用者若需要配置該設定項,需要使用 7 以上版本的驅動(產品內建驅動是 6 版本的),需要到官網根據實際資料庫版本下載驅動檔案

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 定時任務

定時任務支援讀取和寫入 SQL Server。詳情請參見:定時任務

4.2.7.4 及之後版本,目標端為 SQL Server 時,支援 交易控制 功能

3.2 實時管道

實時管道支援讀取和寫入 SQL Server。詳情請參見:資料管道概述

1)4.1.1 及之後版本,SQLServer 資料源作為源表,支援 無主鍵同步

2)4.2.1.1 之前版本,若使用 SQL Server 資料庫作為管道任務的來源庫,配置資料連結時不建議使用自訂驅動;且管道任務的日誌等級不建議為 DEBUG (可設定為 INFO)。否則管道任務中會出現大量 SQL Server cdc 日誌列印。

3)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;詳情請參見:定時任務維運-運作監視

實時管道&實時任務:表關閉 CDC

1)採集任務進行表級報錯,報錯:增量資料獲取失敗,[表名]未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一

2)實時管道中對應的表表級報錯;使用相應的表的實時任務報錯

3)在曆史已經配置好的實時管道、實時任務再啟動時,如果CDC還是未開啟,相應的採集任務進行表級報錯:增量資料獲取失敗,[表名]未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻

實時管道&實時任務:庫關閉CDC

1)採集任務進行任務級報錯,報錯:增量資料獲取失敗,資料庫未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻

2)管道任務、實時任務進行任務級報錯

3)在曆史已經配置好的實時管道、實時任務再啟動時,如果CDC還是未開啟,相應的採集任務進行表級報錯:增量資料獲取失敗,資料庫未開啟CDC,請在源庫中開啟CDC,配置完成後,建議對相關任務進行全量重跑避免資料不一緻

3.3.資料服務

資料服務 API 支援 SQL Server。詳情請參見:資料服務功能概述

3.4 實時任務

實時任務支援讀取和寫入 SQL Server。詳情請參見:實時任務概述

5.0.6.1 及之後版本,SQL Server 作為來源端時,對欄位、表的展示邏輯進行優化,詳情請參見本文 3.2 節第四條內容。

3.5 定時管道

定時管道支援寫入  SQL Server。詳情請參見:定時管道概述