Azure Synapse Analytics
您可以使用 Azure Synapse Analytics 作為資料管道中的目標資料平台。在資料管道中,可以在目標平台執行各種 ELT 操作,包括儲存資料、轉換資料、建立資料超市和註冊資料。
設定 Azure Synapse Analytics 作為目標涉及:
設定雲端暫存區域
您也需要有 Azure Data Lake Storage 雲端暫存區域,資料和變更在套用和儲存之前會在該區暫存。如需設定連線至 Azure Data Lake Storage 的資訊,請參閱 Azure Data Lake Storage。
設定 Azure Synapse Analytics 連線屬性
提供 Azure 資料湖儲存目標設定後,進行下列事項:
-
在連線中,按一下建立連線。
-
選取 Azure Synapse Analytics 目標連接器,然後提供下列設定:
資料目標
資料閘道
只有在無法從 Qlik Cloud 存取目標資料庫且只能使用私人連結存取時 (例如若將在虛擬私人雲端中),才需要 資料移動閘道。在此情況下,選取您要用來存取目標資料庫的 資料移動閘道。
根據您的使用情況,這會是為了從資料來源移動資料而部署的相同或不同 資料移動閘道。
如需關於 資料移動閘道 使用案例的資訊,請參閱 何時需要 資料移動閘道? 和 常見使用案例。
若目標資料庫可從 Qlik Cloud 直接存取,請選取無。
連線屬性
-
伺服器:用來識別 Azure Synapse Analytics 資料庫位置的主機名稱。
-
連接埠:藉此存取 Azure Synapse Analytics 資料庫的連接埠。預設為 1433。
帳戶屬性
使用者名稱和密碼:獲得授權可存取 Azure Synapse Analytics 資料庫的使用者的使用者名稱和密碼。
資料庫屬性
-
資料庫名稱:有兩種方法可用來指定資料庫:
- 方法 1 - 從清單中選取:此方法要求在主要資料庫上建立使用者。按一下載入資料庫,然後選取資料庫。
- 方法 2 - 手動:選取手動輸入資料庫名稱,然後輸入資料庫名稱。
資料載入屬性
可以在執行階段期間自動建立 SQL Server 認證 (預設),或您可以使用現有認證。按適當情況進行下列內容之一:
- 若選取建立 SQL Server 認證核取方塊 (預設),將會在執行階段期間自動建立 SQL Server 認證。在存取金鑰欄位中指定存取金鑰。
- 若要使用現有認證,清除建立 SQL Server 認證核取方塊,並在認證名稱欄位中指定 SQL Server 認證名稱。
名稱
連線的顯示名稱。
必要條件
權限
您需要授予儲存區權限和資料庫權限,如下所述。
儲存區的權限
在 Azure Synapse Analytics 連接器中指定的使用者必須獲得對於儲存區的以下權限。
- 對 ADLS Gen2 Storage 容器:列出
- 對 ADLS Gen2 Storage 資料夾:讀取、寫入和刪除
- 在 ADLS Gen2 檔案系統的存取控制 (IAM) 設定中,指定「儲存 Blob 資料參與者」角色至 Data Movement gateway (AD App ID)。可能需要幾分鐘角色才會生效。
對資料庫的權限
在 Azure Synapse Analytics 連接器中指定的使用者必須在資料庫獲得以下權限:
-
一般授權:
- 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。
您需要安裝 ODBC 驅動程式和 JDBC 驅動程式。
安裝 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
-
執行 重新啟動服務 中描述的命令,以重新啟動 資料移動閘道 服務
連接埠
- 當Data Movement gateway在機器之外的 Azure 運作,開啟連接埠 1433 進行傳出的通訊。
- 當Data Movement gateway在 AzureVM 上運作,開啟以下連接埠進行傳出的通訊:
- 1433
- 11000-11999
- 14000-14999
限制和考慮事項
使用 Azure Synapse Analytics 作為目標時,您需要考量下列限制和考慮事項:
-
具有 CHAR/VARCHAR 資料類型和非拉丁定序 (例如「Chinese_PRC_CI_AS」) 的來源欄和需要對應至 NVARCHAR。
-
空的來源欄處理:
-
若 移動 來源二元欄 (例如 VARBINARY 或 BLOB) 有空的值,Qlik Talend Data Integration 會將 NULL 插入對應的目標欄中。
資訊備註空的值不是 NULL,但資料長度為零。 -
- 不支援超過 1 MB 的記錄 移動。
- 移動 具有 4 位元組表情圖示字元的資料需要該資料類型是目標上的寬字串 (例如 NCHAR/NVARCHAR/NCLOB)。
資料類型
下表顯示使用 Qlik Cloud 時支援的 Azure Synapse Analytics 資料類型和來自 Qlik Cloud 資料類型的預設對應。
會保留原生資料類型資訊,並顯示在資料集檢視的原生資料類型欄中。若看不見欄,您需要開啟資料集檢視的欄選擇器並選取原生資料類型欄。
Qlik Cloud 資料類型 | Azure Synapse Analytics 資料類型 |
---|---|
布林 |
位元 |
位元組 |
VARBINARY (以位元組為單位的長度) |
日期 |
日期 |
時間 |
時間 |
日期時間 |
日期時間 |
INT1 |
BYTEINT |
INT2 |
SMALLINT |
INT4 |
整數 |
INT8 |
BIGINT |
數字 |
數字 (精確度,縮放) |
REAL4 |
實際 |
REAL8 |
浮動 |
UINT1 |
BYTEINT |
UINT2 |
整數 |
UINT4 |
整數 |
UINT8 |
BIGINT |
字串 |
VARCHAR (以位元組為單位的長度) |
WSTRING |
NVARCHAR (以位元組為單位的長度) |
BLOB |
VARBINARY (以位元組為單位的長度) |
NCLOB |
NVARCHAR (以位元組為單位的長度) |
CLOB |
VARCHAR (以位元組為單位的長度) |