# Azure Cloud Storage 預覽

Azure Cloud Storage 是 Microsoft 針對非結構化資料 (包括文字、二進位檔案、媒體、記錄和應用程式備份) 的受控物件儲存服務。它支援經常性、非經常性和封存存取層，提供異地備援複寫，並與 Microsoft Entra ID (前身為 Azure Active Directory) 整合以實現安全的存取控制。

Qlik Talend Cloud 使用對目標儲存體帳戶容器具有讀取存取權的 Microsoft Entra ID 應用程式 (服務主體) 連線至 Azure Cloud Storage。連接器會從指定的容器擷取檔案，透過對檔案內容進行取樣來自動探索結構描述，並根據檔案修改時間戳記執行漸進式資料複寫。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Azure-Cloud-Storage.htm)

#### 功能快照

進一步查看此連接器，包括實用的連結和支援的功能。

| 功能 | 支援詳細資訊 |
| --- | --- |
| 支援的 Qlik Talend Data Integration 專案 | 僅[複寫專案](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/data-replication-task.htm)。不支援資料管道專案。 |
| [目標更新方法](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Change-processing.htm) | 複寫任務：<br><br><ul><li><p>套用變更</p></li><li><p>儲存變更</p></li></ul><br><br>在資料湖中登陸資料任務：<br><br><ul><li><p>變更資料擷取 (CDC)</p></li></ul> |
| [連線到 SaaS 應用程式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm#Managing) | 不需要手動產生中繼資料。 |
| [自動結構描述演進](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Schema) | 僅支援變更欄資料類型操作。 |
| LOB 欄 (NCLOB、CLOB 和 BLOB) 複寫 | 不支援。 |
| 已排程 CDC | 必填。此為目標與來源的變更保持同步的方式。<br><br>對於複寫任務，請參閱 [排程任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Scheduli2)<br><br>對於湖登陸任務，請參閱 [排程湖登陸任務的 CDC](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes-settings.htm#Scheduli2) |
| 通知 | 部分支援<br><br>[設定變更進行時的通知](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Notifications.htm) |
| 監控 | 僅限 CDC，因為此連接器與完整載入無關。<br><br>[監控個別資料任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-tasks.htm) |
| 自動解除 JSON 欄裝載的巢狀結構 | 不支援。來源資料集中的 JSON 欄裝載不會在目標上自動解除巢狀結構。 |

## 準備驗證

若要存取您的資料，您需要使用帳戶認證來驗證連線。

資訊備註確認您使用的帳戶可讀取您要擷取的表格。

若要設定您的 Azure Cloud Storage 帳戶，您需要：

* 具有 Azure Storage 帳戶的 Azure 訂用帳戶。
* 儲存體帳戶中包含要複寫之檔案的 blob 容器。
* 具有用戶端密碼的 Microsoft Entra ID 應用程式註冊。
* 指派給應用程式服務主體的 Storage Blob Data Reader 角色，範圍限定為儲存體帳戶或特定容器。這是唯讀存取權的建議最低權限角色。

若要註冊 Microsoft Entra ID 應用程式並擷取您的認證：

1. 登入您的 [Azure](https://portal.azure.com/) 帳戶。
2. 瀏覽至 Microsoft Entra ID &gt; 應用程式註冊 &gt; 新增註冊。
3. 輸入您應用程式的下列資訊：
   * 名稱：輸入名稱，例如 QlikDataIntegration。
   * 支援的帳戶類型：選取 僅此組織目錄中的帳戶。
4. 按一下 註冊。
5. 在應用程式 概觀 頁面上，複製 應用程式 (用戶端) 識別碼 和 目錄 (租用戶) 識別碼，並將它們儲存到安全的檔案中。
6. 瀏覽至 憑證及密碼 &gt; 用戶端密碼 &gt; 新增用戶端密碼。
7. 輸入描述並選取用戶端密碼的到期期間。
8. 按一下 新增。
9. 複製您的用戶端密碼值並將其儲存到安全的檔案中。
10. 在 Azure 入口網站中，開啟您的儲存體帳戶，然後瀏覽至 存取控制 (IAM) &gt; 新增 &gt; 新增角色指派。
11. 選取 Storage Blob Data Reader 角色，並將此角色指派給您剛註冊的應用程式。
12. 按一下 儲存。

### 支援的檔案格式

* 分隔文字檔：`.csv`、`.tsv`、`.psv`、`.txt` (具有可設定的分隔符號)
* JSON Lines：`.jsonl`
* Parquet：`.parquet`
* Avro：`.avro`
* Excel：`.xlsx` (支援每個活頁簿有多個工作表；每個工作表的資料列都會被複寫，且工作表名稱會附加至 `_sdc_source_file` 欄)
* Gzip 壓縮檔：`.gz` (包含上述任何格式)

## 建立連線

如需詳細資訊，請參閱[連線到 SaaS 應用程式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm)。

1. 填寫所需的連線屬性。

2. 在連線名稱中提供連線名稱。

3. 選取開啟連線中繼資料以在建立後定義連線的中繼資料。

4. 按一下建立。

連線設定

| 設定 | 描述 |
| --- | --- |
| 資料閘道 | 如您的使用情況有需要，選取 資料移動閘道。<br><br>資訊備註<br><br>此欄位無法用於 Qlik Talend Cloud 啟動器 訂閱，因為不支援 資料移動閘道。若您有另一個訂閱層級且不想使用 資料移動閘道，選取無。<br><br>如需關於 資料移動閘道 福利的資訊以及需要此項的使用案例，請參閱 [Qlik Data Gateway - Data Movement](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)。 |
| 開始日期 | 以 `MM/DD/YYYY` 格式輸入資料必須從來源複寫到目標的日期。 |
| 儲存體帳戶名稱 | Azure Storage 帳戶的名稱，例如 mystorageaccount，不含 `https://` 或 `.blob.core.windows.net`。 |
| 容器名稱 | Blob 容器名稱，例如 my-container。 |
| 租用戶識別碼 | 租用戶識別碼。 |
| 表格 | 表格設定決定要讀取哪些檔案以及如何解譯其內容。每個表格定義都包含檔案搜尋模式、表格名稱，以及用於自訂檔案處理的選用設定。 |
| 用戶端識別碼 | 用戶端識別碼。 |
| 用戶端密碼 | 用戶端密碼。 |

### 表格設定

表格設定中的每個項目都代表從容器中的檔案衍生的邏輯表格。可以為每個表格設定下列屬性：

| 屬性 | 必要或選用 | 描述 |
| --- | --- | --- |
| 表格名稱 | 必要 | 指定邏輯表格的名稱 (例如，`my_orders_csv`)。這會成為 Qlik Talend Cloud 中的串流名稱。 |
| 搜尋模式 | 必要 | 提供規則運算式以符合檔案名稱 (例如，`.*\.csv$` 符合所有 CSV 檔案)。將此套用至容器或指定目錄 (如果提供) 內的檔案名稱。 |
| 目錄 | 選用 | 在容器內輸入資料夾路徑前置詞以縮小檔案搜尋範圍 (例如，`exports/orders/`)。透過限制掃描的檔案來改善效能。這不是規則運算式。 |
| 主索引鍵 | 選用 | 定義以逗號分隔的欄名稱清單，以用作主索引鍵 (例如，`id` 或 `id,date`)。對於 CSV 檔案，請使用標頭欄位名稱；對於 JSONL 檔案，請使用頂層物件索引鍵。保留空白以使用完整表格複寫。填入以啟用根據檔案修改時間的漸進式複寫。 |
| 指定日期時間欄位 | 選用 | 列出以逗號分隔的欄名稱，以將其視為日期時間欄位，即使在結構描述探索期間未自動偵測到也是如此 (例如，`created_at`、`updated_at`)。 |
| 分隔符號 | 選用 | 指出分隔文字檔的欄位分隔符號。預設值為 `,` (逗號)。針對 TSV 檔案使用 `\t`，或針對 PSV 檔案使用 `\|`。如果未指定，則會根據副檔名自動偵測分隔符號。 |

* 將 `.jsonl` 和 `.csv` 檔案設定為個別的表格，以確保準確的結構描述處理和資料一致性。
* 確保符合搜尋模式的所有 `.csv` 檔案都包含具有相同欄名稱和順序的一致標頭列。
* 在為每個表格定義的所有 `.jsonl` 檔案中使用一致的物件屬性索引鍵。索引鍵名稱和結構應保持一致，以實現可靠的結構描述偵測。

### 已複寫的表格

表格定義在您提供的表格設定中。每個表格對應於 blob 容器中符合指定搜尋模式以及 (如果適用) 目錄前置詞的一組檔案。連接器會透過對每個表格最多五個檔案進行取樣、讀取每第五列，並分析每個檔案最多 1,000 筆記錄來探索表格結構描述。

設定主索引鍵時，複寫會使用根據檔案修改時間戳記的漸進式方法。在每次擷取期間，會處理在上次同步書籤之後修改的檔案。如果未指定主索引鍵，則在每次執行時都會完整複寫整個表格。

預設會將下列系統欄新增至每個表格：

| 欄 | 描述 |
| --- | --- |
| `_sdc_source_container` | 記錄來源的 Azure blob 容器名稱。 |
| `_sdc_source_file` | 包含記錄之檔案的完整路徑。對於 Excel 檔案，會附加工作表名稱 (例如，`exports/q1.xlsx/Sheet1`)。 |
| `_sdc_source_lineno` | 檔案中記錄的行號。 |
| `_sdc_extra` | 已剖析但不符合所探索結構描述的額外欄位 (僅限 `.jsonl` 檔案)。 |

## 限制與考量

* 儲存體帳戶名稱是以純名稱提供，而不是 URL。
* 支援 Gzip 壓縮檔 (`.gz`)。連接器會從 gzip 標頭讀取原始檔案名稱，以判斷內部檔案格式。使用 `--no-name` (標頭中沒有檔案名稱) 建立的 Gzip 檔案會被略過。
* 會檢查副檔名為 `.csv`、`.txt`、`.tsv`、`.psv` 或 `.jsonl` 的檔案是否有 gzip 魔法位元組，並以透明方式解壓縮，即使檔案沒有 `.gz` 副檔名也是如此。
* 不支援巢狀壓縮 (例如，另一個 `.gz` 內的 `.gz` 檔案)，且會被略過。
* 搜尋模式 欄位使用規則運算式語法，而不是 glob 模式 (例如，使用 `.*\.csv$` 而不是 `*.csv`)。
* 沒有可辨識副檔名的檔案會被略過，並發出警告。
* 連接器包含內建的重試邏輯，具有針對 Azure API 速率限制 (HTTP 429) 和暫時性伺服器錯誤 (HTTP 500、502、503、504) 的指數輪詢，最多五次嘗試。
* 檔案編碼預期為 UTF-8。