# Azure Synapse Analytics

您可以使用 Azure Synapse Analytics 作為資料管道中的目標資料平台。在資料管道中，可以在目標平台執行各種 ELT 操作，包括儲存資料、轉換資料、建立資料超市和註冊資料。

設定 Azure Synapse Analytics 作為目標涉及：

* [履行先決條件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/azure-target.htm#Prerequi2)
* 設定連線至雲端暫存區域 (Azure 資料湖儲存空間)。若您[註冊現有資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm)，則不需要這麼做。
* 設定連線至 Azure Synapse Analytics

## 設定雲端暫存區域

資訊備註若您[註冊現有資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm)，您不需要設定雲端暫存區域。

您也需要有 Azure Data Lake Storage 雲端暫存區域，資料和變更在套用和儲存之前會在該區暫存。如需設定連線至 Azure Data Lake Storage 的資訊，請參閱 [Azure Data Lake Storage](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/adls-target.htm)。

## 設定 Azure Synapse Analytics 連線屬性

提供 Azure 資料湖儲存目標設定後，進行下列事項：

1. 在 連線 中，按一下 建立連線。

2. 選取 Azure Synapse Analytics目標連接器，然後提供下列設定：

### 資料目標

#### 資料閘道

資訊備註此欄位無法用於 Qlik Talend Cloud 啟動器 訂閱，因為此訂閱層級不支援 資料移動閘道。

只有在無法從 Qlik Cloud 存取目標資料庫且只能使用私人連結存取時 (例如若將在虛擬私人雲端中)，才需要 資料移動閘道。在此情況下，選取您要用來存取目標資料庫的 資料移動閘道。

根據您的使用情況，這會是為了從資料來源移動資料而部署的相同或不同 資料移動閘道。

如需關於 資料移動閘道 使用案例的資訊，請參閱 [何時需要 資料移動閘道？](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) 和 [常見使用案例](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common)。

若目標資料庫可從 Qlik Cloud 直接存取，請選取無。

資訊備註透過 資料移動閘道 存取目標資料庫時，您也需要在 資料移動閘道 機器上安裝適當的驅動程式。如需詳細資訊，請參閱以下的 [Azure Synapse Analytics](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/azure-target.htm#Driver)。

### 連線屬性

* 伺服器：用來識別 Azure Synapse Analytics 資料庫位置的主機名稱。

* 連接埠：藉此存取 Azure Synapse Analytics 資料庫的連接埠。預設為 1433。

### 帳戶屬性

使用者名稱和密碼：獲得授權可存取 Azure Synapse Analytics 資料庫的使用者的使用者名稱和密碼。

### 資料庫屬性

* 資料庫名稱：有兩種方法可用來指定資料庫：

  * 方法 1 - 從清單中選取： 此方法要求使用者 [在主資料庫中建立](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/azure-target.htm#Database)。按一下載入資料庫，然後選取資料庫。
  * 方法二 - 手動： 選擇 手動輸入資料庫名稱，然後輸入資料庫名稱。

### 資料載入屬性

資訊備註若您正在[註冊資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm) (亦即不登陸資料)，則不需要這些欄位。

可以在執行階段期間自動建立 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：

1. 停止 Data Movement gateway 服務：

   sudo systemctl stop repagent

2. 可自選，確認服務已停止：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: inactive (dead) since &lt;timestamp&gt; 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。

   將會安裝 driver。

7. 等待安裝完成 (以「完成！」指示)，然後開始 Data Movement gateway 服務：

   sudo systemctl start repagent

8. 可自行選擇確認服務已開始：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: active (running) since &lt;timestamp&gt; ago

更新 driver

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

若要下載並更新 driver：

1. 停止 Data Movement gateway 服務：

   sudo systemctl stop repagent

2. 可自選，確認服務已停止：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: inactive (dead) since &lt;timestamp&gt; 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。

   將會解除安裝舊版 driver，並安裝新版 driver。

7. 等待安裝完成 (以「完成！」指示)，然後開始 Data Movement gateway 服務：

   sudo systemctl start repagent

8. 可自行選擇確認服務已開始：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: active (running) since &lt;timestamp&gt; ago

解除安裝 driver

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

若要解除安裝 driver：

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

2. 在 資料移動 閘道機器上，將工作目錄變更為：

   opt/qlik/gateway/movement/drivers/bin

3. 執行下列命令：

   語法：

   ./uninstall sqlserver

   將會解除安裝 driver。

#### 手動安裝驅動程式

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

您需要安裝 ODBC 驅動程式和 JDBC 驅動程式。

安裝 ODBC 驅動程式

安裝 資料移動閘道 後，下載 msodbcsql&lt;version&gt;.x86\_64.rpm 驅動程式。您可以在 /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml 的 binary-artifacts 之下找到支援版本的直接下載連結。下載完成後，將 RPM 複製到 資料移動閘道 機器。

在 Data Movement gateway 伺服器上，開啟 shell prompt 並進行以下項目：

1. 停止 Data Movement gateway 服務：

   sudo systemctl stop repagent

2. 可自選，確認服務已停止：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: inactive (dead) since &lt;timestamp&gt; ago

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

4. 變更任務目錄至 &lt;product\_dir&gt;/bin。

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

6. 可自選，確認已複製驅動程式位置：

   ```
   cat site_arep_login.sh
                           
   ```

7. 開始 Data Movement gateway 服務：

   sudo systemctl start repagent

8. 可自選，確認服務已開始：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: active (running) since &lt;timestamp&gt; ago

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

安裝 JDBC 驅動程式

1. 下載 mssql-jdbc-&lt;version&gt;.jar 檔案。您可以在 /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml 的 binary-artifacts 之下找到支援版本的直接下載連結。下載完成後，將 JAR 檔案複製到 資料移動閘道 機器的下列資料夾：

   /opt/qlik/gateway/movement/qcs\_agents/qdi-db-commands/lib

2. 執行 資料移動閘道 中描述的命令，以重新啟動 [重新啟動服務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti2) 服務

### 連接埠

* 當Data Movement gateway在機器之外的 Azure 運作，開啟連接埠 1433 進行傳出的通訊。
* 當Data Movement gateway在 AzureVM 上運作，開啟以下連接埠進行傳出的通訊：
  * 1433
  * 11000-11999
  * 14000-14999

## 限制和考慮事項

使用 Azure Synapse Analytics 作為目標時，您需要考量下列限制和考慮事項：

資訊備註在資料管道專案中，不支援將 SaaS 連接器作為 Azure Synapse Analytics 的來源。

* 具有 CHAR/VARCHAR 資料類型和非拉丁定序 (例如「Chinese\_PRC\_CI\_AS」) 的來源欄和需要對應至 NVARCHAR。

* 空的來源欄處理：

  * 若 移動 來源二元欄 (例如 VARBINARY 或 BLOB) 有空的值，Qlik Talend Data Integration 會將 NULL 插入對應的目標欄中。

  資訊備註空的值不是 NULL，但資料長度為零。

* 不支援超過 1 MB 的記錄 移動。

* 移動 具有 4 位元組表情圖示字元的資料需要該資料類型是目標上的寬字串 (例如 NCHAR/NVARCHAR/NCLOB)。

## 資料類型

下表顯示使用 Azure Synapse Analytics 時支援的 Qlik Cloud 資料類型和來自 Qlik Cloud 資料類型的預設對應。

會保留原生資料類型資訊，並顯示在資料集檢視的原生資料類型欄中。若看不見欄，您需要開啟資料集檢視的欄選擇器並選取原生資料類型欄。

支援的資料類型

| Qlik Cloud 資料類型 | Azure Synapse Analytics 資料類型 |
| --- | --- |
| 布林值 | 位元 |
| 位元組 | VARBINARY (以位元組為單位的長度) |
| 日期 | 日期 |
| 時間 | 時間 |
| 日期時間 | 時間戳記<br><br>If scale &gt; 7: STRING(37) |
| INT1 | BYTEINT |
| INT2 | SMALLINT |
| INT4 | 整數 |
| INT8 | BIGINT |
| 數字 | 數字 (精確度，縮放) |
| REAL4 | 實際 |
| REAL8 | 浮動 |
| UINT1 | BYTEINT |
| UINT2 | 整數 |
| UINT4 | 整數 |
| UINT8 | BIGINT |
| 字串 | VARCHAR (以位元組為單位的長度) |
| WSTRING | NVARCHAR (以位元組為單位的長度) |
| BLOB | VARBINARY (以位元組為單位的長度) |
| NCLOB | NVARCHAR (以位元組為單位的長度) |
| CLOB | VARCHAR (以位元組為單位的長度) |
| JSON | VARCHAR (max) |