Microsoft SQL Server
此主題說明如何使用 Microsoft SQL Server 目標連接器對 Microsoft SQL Server 目標設定連線能力。
Microsoft SQL Server 目標可用於 作為資料管道或複寫任務中的目標資料平台。在資料管道中,可以在目標平台執行各種 ELT 操作,包括儲存資料、轉換資料、建立資料超市和註冊資料。另一方面,複寫任務涉及將資料直接從來源系統複寫至具有基本轉換功能但不支援 ELT 操作的目標系統。。您需要先在資料庫上設定 使用者必要條件,才能連線至 Microsoft SQL Server 目標。若您正透過 資料移動閘道 連線至 Microsoft SQL Server,您也需要按照 驅動程式的設定 中的說明安裝驅動程式。
如需關於使用 Microsoft SQL Server 目標連接器時的限制和考慮事項的資訊,請參閱 限制和考慮事項。
設定連線屬性
若要設定連接器,進行下列事項:
-
在連線中,按一下建立連線。
-
選取 Microsoft SQL Server 目標連接器,然後提供下列設定:
Data Movement gateway
Microsoft SQL Server 可以作為目標用於資料管道或複寫任務。在管道中可能需要 資料移動閘道 才能存取 Microsoft SQL Server 目標 (取決於是否可從 Qlik Cloud 直接存取資料庫),而在複寫任務中使用 Microsoft SQL Server 目標時則一律需要。
在資料管道中使用 Microsoft SQL Server 目標
資料閘道
只有在無法從 Qlik Cloud 存取目標資料庫且只能使用私人連結存取時 (例如若將內部部署置於防火牆後方或在虛擬私人雲端中),才需要 資料移動閘道。在此情況下,選取您要用來存取目標資料庫的 資料移動閘道。
根據您的使用情況,這會是為了從資料來源移動資料而部署的相同或不同 資料移動閘道。
如需關於 資料移動閘道 使用案例的資訊,請參閱 何時需要 資料移動閘道? 和 常見使用案例。
若目標資料庫可從 Qlik Cloud 直接存取,請選取無。
在複寫任務中使用 Microsoft SQL Server 目標
資料閘道:選取將會用來測試 Microsoft SQL Server 目標連線的 資料移動閘道。其閘道應與用來存取資料來源的閘道相同。
需要 資料移動閘道 2023.5.10 或更高版本。
資料目標
-
雲端提供者:在適當時選擇以下項目之一:
- 無 (適用於內部部署)
- Amazon RDS
- Google Cloud
- Microsoft Azure (支援 Microsoft Azure 受管理執行個體和 Microsoft Azure 資料庫)
-
伺服器:Microsoft SQL Server 資料庫安裝所在電腦的主機名稱或 IP 位址。
資訊備註若要覆寫預設連接埠,請將連接埠加入至伺服器名稱,並以逗號分隔。例如,若伺服器名稱是
myserver.company.local
,而連接埠是3333
,則伺服器名稱應為:myserver.company.local,3333
帳戶屬性
使用者名稱和密碼:獲得授權可存取 Microsoft SQL Server 資料庫的使用者的使用者名稱和密碼。
資料庫屬性
-
資料庫名稱:有兩種方法可用來指定資料庫:
- 方法 1 - 從清單中選取:此方法要求在主要資料庫上建立使用者。按一下載入資料庫,然後選取資料庫。
- 方法 2 - 手動:選取手動輸入資料庫名稱,然後輸入資料庫名稱。
- 加密 (信任伺服器憑證):選取可將 Qlik Cloud 和資料庫伺服器之間的通訊加密。選取後,將會自動信任伺服器憑證。
- 憑證中的主機名稱:若要僅在主機名稱符合此欄位中指定的值時,才信任伺服器憑證,請輸入伺服器憑證的主機名稱。
內部屬性
內部屬性用於特殊使用情況,因此不會在對話方塊中顯示。您只能在 Qlik 支援指示下使用。
根據需要使用欄位右側的 和 按鈕以新增或移除屬性。
名稱
連線的顯示名稱。
必要條件
使用者必要條件
- 連接器設定中指定的使用者在目標 Microsoft SQL Server 資料庫上必須至少有
db_owner
使用者角色。 - 為了能夠選取資料庫 (透過在連接器對話方塊中按一下載入資料庫),需要在主要資料庫建立連接器設定中指定的使用者。
驅動程式的設定
只有在透過 資料移動閘道 存取資料庫時,才需要驅動程式。請參閱以上的 資料移動閘道,瞭解更多關於需要 資料移動閘道 時之使用案例的資訊。
您可以使用驅動程式安裝公用程式 (建議) 或手動安裝 driver。只能在不太可能發生的事件 (您在使用驅動程式安裝公用程式時遇到問題) 中嘗試手動安裝。
使用驅動程式安裝公用程式來安裝驅動程式
此區段描述如何安裝所需的 driver。該流程涉及執行將會自動下載、安裝並設定所需 driver 的指令碼。您也可以執行指令碼,以根據需求更新並解除安裝 driver。
準備安裝
-
確認 Python 3.6 或更高版本安裝於 資料移動 閘道伺服器。
Python 會預先安裝在大部分的 Linux 發行版。您可以執行下列命令,以查看哪個 Python 版本安裝在您的系統上:
python3 --version
安裝 driver
若要下載並安裝 driver:
-
停止 Data Movement gateway 服務:
sudo systemctl stop repagent
-
可自選,確認服務已停止:
sudo systemctl status repagent
狀態應如下所示:
Active: inactive (dead) since <timestamp> ago
-
在 資料移動 閘道機器上,將工作目錄變更為:
opt/qlik/gateway/movement/drivers/bin
-
執行下列命令:
語法:
./install sqlserver
若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後,再次執行 install sqlserver 命令。
否則,就會顯示 driver 的 EULA。
-
執行下列其中一個動作:
- 重複按下 [Enter] 以緩慢瀏覽 EULA。
- 重複按下空格鍵以快速瀏覽 EULA。
- 按下 q 以結束授權文字並呈現 EULA 接受選項。
-
執行下列其中一個動作:
- 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
- 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
-
輸入「v」並按下 [Enter] 以再次檢視 EULA。
-
等待安裝完成 (以「完成!」指示),然後開始 Data Movement gateway 服務:
sudo systemctl start repagent
-
可自行選擇確認服務已開始:
sudo systemctl status repagent
狀態應如下所示:
Active: active (running) since <timestamp> ago
將會安裝 driver。
更新 driver
若您想要在安裝提供的 driver 之前解除安裝先前的 driver 版本,請執行更新命令。
若要下載並更新 driver:
-
停止 Data Movement gateway 服務:
sudo systemctl stop repagent
-
可自選,確認服務已停止:
sudo systemctl status repagent
狀態應如下所示:
Active: inactive (dead) since <timestamp> ago
-
在 資料移動 閘道機器上,將工作目錄變更為:
opt/qlik/gateway/movement/drivers/bin
-
執行下列命令:
語法:
./update sqlserver
若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後,再次執行 update sqlserver 命令。
否則,就會顯示 driver 的 EULA。
-
執行下列其中一個動作:
- 重複按下 [Enter] 以緩慢瀏覽 EULA。
- 重複按下空格鍵以快速瀏覽 EULA。
- 按下 q 以結束授權文字並呈現 EULA 接受選項。
-
執行下列其中一個動作:
- 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
- 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
- 輸入「v」並按下 [Enter] 以從頭檢閱 EULA。
-
等待安裝完成 (以「完成!」指示),然後開始 Data Movement gateway 服務:
sudo systemctl start repagent
-
可自行選擇確認服務已開始:
sudo systemctl status repagent
狀態應如下所示:
Active: active (running) since <timestamp> ago
將會解除安裝舊版 driver,並安裝新版 driver。
解除安裝 driver
若您想要解除安裝 driver,請執行解除安裝命令。
若要解除安裝 driver:
-
停止設定為使用此連接器的所有任務。
-
在 資料移動 閘道機器上,將工作目錄變更為:
opt/qlik/gateway/movement/drivers/bin
-
執行下列命令:
語法:
./uninstall sqlserver
將會解除安裝 driver。
手動安裝驅動程式
只有在自動驅動程式安裝無法成功完成時,才能嘗試手動安裝 driver。
在資料管道中使用 Microsoft SQL Server 作為目標時,您需要安裝 ODBC 驅動程式和 JDBC 驅動程式。在複寫任務中使用 Microsoft SQL Server 作為目標時,您只需要安裝 ODBC 驅動程式。
安裝 ODBC 驅動程式
安裝 資料移動閘道 後,下載 msodbcsql<version>.x86_64.rpm 驅動程式。您可以在 /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml 的 binary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將 RPM 複製到 資料移動閘道 機器。
在 Data Movement gateway 伺服器上,開啟 shell prompt 並進行以下項目:
-
停止 Data Movement gateway 服務:
sudo systemctl stop repagent
-
可自選,確認服務已停止:
sudo systemctl status repagent
-
安裝驅動程式 (RPM)。
-
變更任務目錄至 <product_dir>/bin。
-
複製驅動程式位置至
site_arep_login.sh
檔案,如下所示:echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/microsoft/
msodbcsql<version>
/lib64/" >> site_arep_login.sh
這將新增驅動程式至「LD_LIBRARY_PATH」並更新位於以下的驅動程式位置: site_arep_login.sh 檔案。
-
可自選,確認已複製驅動程式位置:
cat site_arep_login.sh
-
開始 Data Movement gateway 服務:
sudo systemctl start repagent
-
可自選,確認服務已開始:
sudo systemctl status repagent
狀態應如下所示:
Active: active (running) since <timestamp> ago
-
Data Movement gateway 需要以下 ODBC 物件庫:msodbcsql-18.1.so.1.1
要檢查目前安裝的物件庫版本,請發出以下指令:
ls /opt/microsoft/msodbcsql<version>/lib64/
若現有的物件庫有不同的版本號碼 (例如 libmsodbcsql-18.0.so.1.1),您需要在現有物件庫和必要物件庫之間建立符號連結。
要這麼做,請發出以下指令:
cd /opt/microsoft/msodbcsql<version>/lib64/
ln -s existing_library_name
msodbcsql-18.1.so.1.1若
existing_library_name
為目前安裝物件庫的名稱 (如 libmsodbcsql-18.0.so.1.1)。
狀態應如下所示:
Active: inactive (dead) since <timestamp> ago
安裝 JDBC 驅動程式
-
下載 mssql-jdbc-<version>.jar 檔案。您可以在 /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml 的 binary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將 JAR 檔案複製到 資料移動閘道 機器的下列資料夾:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
執行 重新啟動服務 中描述的命令,以重新啟動 資料移動閘道 服務
限制和考慮事項
用於資料管道時的限制和考慮事項
- 在資料管道中將資料登陸至 Microsoft SQL Server 時,不支援即時檢視。如需關於即時檢視的詳細資訊,請參閱 儲存資料集。
所有資料任務的限制和考慮事項
若來源資料庫的下列大型物件類型是空的 (0 位元組),在完整載入後將會是空的:
- BLOB 將會寫為 0x0000 (2 位元組)
- TEXT (VARCHAR(max)) 將會寫為 0X00 (1 位元組)
-
NTEXT (NVARCHAR(max)) 將會寫為 0x0000 (2 位元組)
僅複寫任務的限制和考慮事項
- 批次最佳化套用模式不支援完整大小的 LOB 欄。您可以在任務設定中限制 LOB 欄大小或切換至交易套用模式,以因應此限制。
- 若啟用批次最佳化套用和複寫有限的 LOB 欄 (KB) 選項,目標上的 BLOB 欄將會截斷為限制 LOB 欄大小為欄位中指定大小的四分之一,而 CLOB 欄將會截斷為指定大小的一半。
- 若您需要複寫 4 位元組表情圖示字元,使用轉換以將資料類型從 WSTRING(n ) 轉換為 WSTRING ( n*2 )。
資料類型
會保留原生資料類型資訊,並顯示在資料集檢視的原生資料類型欄中。若看不見欄,您需要開啟資料集檢視的欄選擇器並選取原生資料類型欄。
Qlik Cloud 資料類型 | Microsoft SQL Server 資料類型 |
---|---|
布林 |
TINYINT |
位元組 |
VARBINARY (長度) |
日期 |
日期 |
時間 |
TIME(0) |
日期時間 |
DATETIME2(scale) |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
數字 |
NUMERIC(p,s) |
REAL4 |
實際 |
REAL8 |
浮動 |
字串 |
若欄是日期或時間,則: DATETIME2 若欄不是日期或時間: VARCHAR(length) |
UINT1 |
INT2 |
UINT2 |
INT4 |
UINT4 |
INT8 |
UINT8 |
NUMERIC(20) |
WSTRING |
NVARCHAR(length) |
BLOB |
VARBINARY(max) 影像 |
CLOB |
VARCHAR(max) 文字 |
NCLOB |
NVARCHAR(max) NTEXT |
不支援下列 SQL Server 資料類型。將不會讀取資料。
-
游標
-
SQL_VARIANT
-
表格
下列資料類型會轉換為 VARCHAR (MAX):
-
XML
-
地理
-
幾何