跳到主要內容 跳至補充內容

Microsoft SQL Server

此主題說明如何使用 Microsoft SQL Server 目標連接器對 Microsoft SQL Server 目標設定連線能力。Microsoft SQL Server 目標可用於複寫任務或 作為資料管道中的目標資料平台。在資料管道中,可以在目標平台執行各種操作,包括登陸資料、儲存資料、轉換資料、資料超市建立和資料註冊。。您需要先在資料庫上設定 使用者必要條件,才能連線至 Microsoft SQL Server 目標。若您正透過 資料移動閘道 連線至 Microsoft SQL Server,您也需要按照 驅動程式的設定 中的說明安裝驅動程式。

如需關於使用 Microsoft SQL Server 目標連接器時的限制和考慮事項的資訊,請參閱 限制和考慮事項

設定連線屬性

本節說明可用的連線屬性。除非另有指明,否則所有屬性皆為必要。

資料移動閘道

Microsoft SQL Server 目標可以用於資料管道或複寫任務。在管道中可能需要 Data Movement gateway 才能存取 Microsoft SQL Server 目標 (取決於是否可從 Qlik Cloud 直接存取資料庫),而在複寫任務中使用 Microsoft SQL Server 目標時則一律需要。

資訊備註透過 資料移動閘道 存取目標資料庫時,您也需要在 資料移動閘道 機器上安裝適當的驅動程式。如需詳細資訊,請參閱以下的 驅動程式的設定

在資料管道中使用 Microsoft SQL Server 目標

資料閘道: 只有在無法從 Qlik Cloud 存取目標資料庫且只能使用私人連結存取時 (例如若將內部部署置於防火牆後方或在虛擬私人雲端中),才需要 資料移動閘道。在此情況下,選取您要用來存取目標資料庫的 資料移動閘道

根據您的使用情況,這會是為了從資料來源登陸資料而部署的相同或不同 資料移動閘道。如需關於可能的 資料移動閘道 部署可能性的資訊,請參閱 常見使用案例

資訊備註需要 資料移動閘道 2022.11.70 或更高版本。

若目標資料庫可從 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

  1. 停止 資料移動閘道 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 資料移動 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  4. 執行下列命令:

    語法:

    ./install sqlserver

    若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後,再次執行 install sqlserver 命令。

    否則,就會顯示 driver 的 EULA。

  5. 執行下列其中一個動作:

    • 重複按下 [Enter] 以緩慢瀏覽 EULA。
    • 重複按下空格鍵以快速瀏覽 EULA。
    • 按下 q 以結束授權文字並呈現 EULA 接受選項。
  6. 執行下列其中一個動作:

    • 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
    • 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
    • 輸入「v」並按下 [Enter] 以再次檢視 EULA。

  7. 將會安裝 driver

  8. 等待安裝完成 (以「完成!」指示),然後開始 資料移動閘道 服務:

    sudo systemctl start repagent

  9. 可自行選擇確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

若您想要在安裝提供的 driver 之前解除安裝先前的 driver 版本,請執行更新命令。

若要下載並更新 driver

  1. 停止 資料移動閘道 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  3. 資料移動 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  4. 執行下列命令:

    語法:

    ./update sqlserver

    若無法下載 driver (由於存取限制或技術問題),將會顯示訊息,指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後,再次執行 update sqlserver 命令。

    否則,就會顯示 driver 的 EULA。

  5. 執行下列其中一個動作:

    • 重複按下 [Enter] 以緩慢瀏覽 EULA。
    • 重複按下空格鍵以快速瀏覽 EULA。
    • 按下 q 以結束授權文字並呈現 EULA 接受選項。
  6. 執行下列其中一個動作:

    • 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
    • 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
    • 輸入「v」並按下 [Enter] 以從頭檢閱 EULA。
  7. 將會解除安裝舊版 driver,並安裝新版 driver

  8. 等待安裝完成 (以「完成!」指示),然後開始 資料移動閘道 服務:

    sudo systemctl start repagent

  9. 可自行選擇確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

若您想要解除安裝 driver,請執行解除安裝命令。

若要解除安裝 driver

  1. 停止設定為使用此連接器的所有任務。

  2. 資料移動 閘道機器上,將工作目錄變更為:

    opt/qlik/gateway/movement/drivers/bin

  3. 執行下列命令:

    語法:

    ./uninstall sqlserver

    將會解除安裝 driver

手動安裝驅動程式

只有在自動驅動程式安裝無法成功完成時,才能嘗試手動安裝 driver

在資料管道中使用 Microsoft SQL Server 作為目標時,您需要安裝 ODBC 驅動程式和 JDBC 驅動程式。在複寫任務中使用 Microsoft SQL Server 作為目標時,您只需要安裝 ODBC 驅動程式。

安裝 資料移動閘道 後,下載 msodbcsql<version>.x86_64.rpm 驅動程式。您可以在 /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yamlbinary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將 RPM 複製到 資料移動閘道 機器。

Data Movement gateway 伺服器上,開啟 shell prompt 並進行以下項目:

  1. 停止 Data Movement gateway 服務:

    sudo systemctl stop repagent

  2. 可自選,確認服務已停止:

    sudo systemctl status repagent

  3. 狀態應如下所示:

    Active: inactive (dead) since <timestamp> ago

  4. 安裝驅動程式 (RPM)。

  5. 變更任務目錄至 <product_dir>/bin

  6. 複製驅動程式位置至 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 檔案。

  7. 可自選,確認已複製驅動程式位置:

    cat site_arep_login.sh
  8. 開始 Data Movement gateway 服務:

    sudo systemctl start repagent

  9. 可自選,確認服務已開始:

    sudo systemctl status repagent

    狀態應如下所示:

    Active: active (running) since <timestamp> ago

  10. 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)。

資訊備註在複寫任務中使用 Microsoft SQL Server 作為目標時,不需要安裝 JDBC 驅動程式。
  1. 下載 mssql-jdbc-<version>.jar 檔案。您可以在 /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yamlbinary-artifacts 之下找到支援版本的直接下載連結。下載完成後,將 JAR 檔案複製到 資料移動閘道 機器的下列資料夾:

    /opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib

  2. 執行 重新啟動服務 中描述的命令,以重新啟動 資料移動閘道 服務

限制和考慮事項

用於資料管道時的限制和考慮事項

  • 在資料管道中將資料登陸至 Microsoft SQL Server 時,不支援即時檢視。如需關於即時檢視的詳細資訊,請參閱 儲存資料集

所有資料任務的限制和考慮事項

若來源資料庫的下列大型物件類型是空的 (0 位元組),在完整載入後將會是空的:

  • BLOB 將會寫為 0x0000 (2 位元組)
  • TEXT (VARCHAR(max)) 將會寫為 0X00 (1 位元組)
  • NTEXT (NVARCHAR(max)) 將會寫為 0x0000 (2 位元組)

資訊備註若在變更處理期間,這些類型是空的,將會以空白 (0 位元組) 正確寫到目標。

僅複寫任務的限制和考慮事項

  • 批次最佳化套用模式不支援完整大小的 LOB 欄。您可以在任務設定中限制 LOB 欄大小或切換至交易套用模式,以因應此限制。
  • 若啟用批次最佳化套用和複寫有限的 LOB 欄 (KB) 選項,目標上的 BLOB 和 CLOB 欄將會截斷為「限制 LOB 大小為」欄位中指定大小的四分之一。
  • 若您需要複寫 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

  • 地理

  • 幾何

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!