# 儲存資料集

在 Qlik 開放湖倉庫 專案中，儲存任務將登陸的資料寫入到 Iceberg 表格中，以便有效率地儲存和查詢。儲存空間資料任務透過登陸資料任務，取用登陸到雲端登陸區域的資料。例如，您可以使用分析應用程式中的表格。

以下設定和行為適用於寫入到 Iceberg 表格的 Qlik 開放湖倉庫 專案中的儲存任務。

* 儲存資料任務持續執行，無法進行排程。

* Qlik 自動最佳化儲存在 Iceberg 表格中的資料。如需關於最佳化流程的詳細資訊，請參閱[Qlik 開放湖倉庫 架構](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/lakehouse-pipeline-architecture.htm)。

* 登陸資料任務的狀態至少為準備好進行準備時，您可設計儲存空間資料任務，

* 登陸資料任務的狀態至少為準備好執行時，您可準備儲存空間資料任務，

儲存空間資料任務將會使用與取用的登陸資料任務相同的操作模式 (完整載入或完整載入 & CDC)。兩個操作模式之間有不同的設定屬性，監控和控制選項之間也是如此。若您使用僅限完整載入的雲端目標登陸資料任務，儲存空間資料任務將會對登陸表格建立檢視，而非產生實際表格。

資訊備註資料任務在所屬的專案擁有者的內容中操作。如需有關所需角色和權限的詳細資訊，請參閱 [資料空間角色與權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataSpaces/permissions-data-space.htm)。

## 建立儲存空間資料任務

您可用三種方式建立儲存空間資料任務：

* 按一下登陸資料任務上的 ...，選取 儲存資料以基於此登陸資料資產建立儲存區資料任務。

* 在專案中，按一下建立，然後按一下儲存資料。此情形下，您需要指定要用的登陸資料任務。

* 當您上線資料時，會建立儲存空間資料任務。它會連線到在上線資料時也會建立的登陸資料任務。

  如需詳細資訊，請參閱[將資料上線至 Qlik 開放湖倉庫](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/Onboarding-data-open-lakehouse.htm)。

當您已建立儲存空間資料任務時：

1. 按一下 ...，選取開啟，以開啟儲存空間資料任務。  
   即開啟儲存空間資料任務，您可基於取自登陸資料資產的表格，預覽輸出資料集。

2. 對所包含的資料集作出所有必要變更，例如轉換、篩選資料，或新增欄。

   如需詳細資訊，請參閱[管理資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm)。

3. 您已新增所需的轉換之後，可按一下驗證資料集以驗證資料集。如果驗證後發現錯誤，請先修正錯誤再繼續進行。

   如需詳細資訊，請參閱[驗證和調整資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm#Validati)。

4. 按一下準備以準備資料任務和所需全部成品。這需花一些時間。

   您可以在畫面下方的準備進度之下追蹤進度。

5. 當狀態顯示準備好執行時，您即可執行資料任務。

   按一下執行。

   這時資料任務會開始建立存放資料用的資料集。

## 保留歷史資料

您可以保留 2 型歷史變更資料，輕鬆重新建立在特定時間點的資料。這會產生一個完整的歷史資料儲存區 (HDS)。

* 支援類型 2 緩慢變更維度。

* 合併已變更的記錄時，這會建立新記錄以儲存已變更的資料，並讓舊的記錄保持不變。

* 新的 HDS 記錄會自動加上時間戳記，讓您可以建立趨勢分析和其他時間導向的分析資料超市。

您可以按一下以下內容，以啟用歷史資料：

* 上線資料時，在設定中以目前資料和先前資料的歷史記錄複寫

* 儲存區域任務的設定對話方塊中的保留歷史變更記錄並變更記錄封存。

## 排程儲存任務

Qlik 開放湖倉庫 專案中的儲存任務以一分鐘小批次的方式連續執行，無法排程。

## 監控儲存任務

您可以按一下監控，監控儲存任務的狀態和進度。

如需詳細資訊，請參閱[監控 Qlik 開放湖倉庫 儲存任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-qol-storage-tasks.htm)。

## 疑難排解儲存資料任務

儲存資料任務中的一個或多個表格發生問題時，您可能需要載入或重新建立資料。有幾個選項可用來執行此操作。請以下列順序考慮要使用哪個選項：

1. 您可以載入登陸中的資料集。載入登陸中的資料集會在儲存中觸發比較流程，並校正資料，同時保留類型 2 歷史記錄。也應在以下情況考慮此選項：

   * 完整載入在很久以前執行，會有大量變更。

   * 若已刪除完整載入和已處理的變更表格記錄，作為維護登陸區域的一部分。

   [從資料來源登陸資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/Landing-data-data-sources.htm)

2. 您可以重新建立表格。可從來源重新建立資料集。

   * 按一下 ...，然後按一下重新建立表格。重新建立表格時，下游任務的反應方式，如同截斷並載入來源資料集發生的動作。

     資訊備註若個別表格發生問題，建議先嘗試載入表格，而非重新建立。重新建立表格可能會造成歷史資料損失。若有重大變更，您也必須準備取用重建資料任務的下游資料任務，以載入資料。

## 結構描述演進

結構描述演進讓您可以輕鬆偵測多個資料來源的結構變更，然後控制如何將這些變更套用至您的任務。結構描述演進可用於偵測對來源資料結構描述所做的 DDL 變更。您也可以自動套用一些變更。

資訊備註結構描述演進不適用於 Qlik Talend Cloud 啟動器 訂閱。使用 SaaS 應用程式連接器時，僅支援資料類型變更。

對於每種變更類型，您可以在任務設定的結構描述演進區段中選取如何處理變更。您可以套用變更、忽略變更、暫停表格或停止任務處理。

您可以設定使用哪個動作來處理每種變更類型的 DDL 變更。某些動作不一定適用於所有變更類型。

* 套用至目標

  自動套用變更。

* 忽略

  忽略變更。

* 暫停表格

  暫停表格。表格將在監控中顯示為錯誤。

* 停止任務

  停止任務處理。如果您想手動處理所有結構描述變更，這非常實用。這也將停止排程，即不會進行排程的執行。

支援以下變更：

* 新增欄

* 建立與選取模式相符的表格

  如果您使用選取規則新增與模式相符的資料集，則會偵測到並新增符合該模式的新表格。

如需更多關於任務設定的資訊，請參閱 [結構描述演進](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/storing-data.htm#Schema)

資訊備註如果存在尚未自動套用於儲存的結構描述演進變更，您必須驗證並準備儲存任務。

### 結構描述演進的限制

以下限制適用於結構描述演進：

* 只有在使用 CDC 作為更新方法時才支援結構描述演進。

* 變更結構描述演進設定後，您必須重新準備任務。

* 如果重新命名表格，則不支援結構描述演進。在這種情況下，您必須在準備任務之前重新整理中繼資料。

* 如果您正在設計任務，則必須重新整理瀏覽器，才能接收結構描述演進變更。您可以設定通知以在發生變更時發出警示。

* 在登陸任務中，不支援捨棄欄。捨棄欄並新增將會導致表格錯誤。

* 在登陸任務中，捨棄表格操作不會捨棄表格。捨棄表格然後新增表格只會截斷舊的表格，而不會新增新的表格。

* 並非所有目標都可以變更欄的長度，具體取決於目標資料庫的支援。

* 如果變更欄名稱，則使用該欄定義的明確轉換將不會生效，因為這基於欄名稱。

* 重新整理中繼資料的限制也適用於結構描述演進。

* 如果任務包含尚未準備好的設計變更，且在執行任務時偵測到來源結構描述演進變更，則任務將會停止以避免衝突。準備暫停的設計變更，並再次執行任務。

擷取 DDL 變更時，適用以下限制：

* 若來源資料庫中發生一系列快速操作 (例如 DDL&gt;DML&gt;DDL)，Qlik Talend Data Integration 可能會以錯誤的順序剖析記錄，進而導致資料遺失或不可預測的行為。為了盡可能減少發生這種情況的可能性，最佳做法是先等待變更套用至目標，再執行下一個操作。

  例如，在變更擷取期間，如果來源表格連續快速重新命名多次 (而且第二次操作將其重新命名回原始名稱)，則可能會遇到該表格已存在於目標資料庫的錯誤。

* 如果您變更任務中使用的表格名稱，然後停止該任務，則在任務恢復進行後，Qlik Talend Data Integration 將不會擷取對該表格所做的任何變更。

* 不支援在任務停止時重新命名來源表格。

* 不支援重新配置表格的主要金鑰欄 (因此不會寫入到 DDL 歷史記錄控制表格)。

* 如果停止任務*時*，變更欄的資料類型然後重新命名 (相同的) 欄，則 DDL 變更將在 DDL 歷史記錄控制表格中顯示為「捨棄欄」，然後在任務恢復進行時顯示為「新增欄」。請注意，延長延遲也可能導致相同的行為。

* 任務停止時在來源上執行的 CREATE TABLE 操作將在任務恢復進行時套用於目標，但不會在 DDL 歷史記錄控制表格中記錄為 DDL。

* 如果在以下任一情況執行與中繼資料變更相關的操作 (例如 ALTER TABLE、重組、重建叢集索引等)，可能會導致不可預測的行為：

  * 完整載入期間

    -或者-

  * 開始處理變更時間戳記和目前時間 (即使用者在進階執行選項對話方塊中按一下確定的那一刻) 之間。

    範例：

    IF:

    指定的開始處理變更時間是上午 10:00。

    AND:

    名為年齡的欄已在上午 10:10 新增至員工表格中。

    AND:

    使用者在上午 10:15 於進階執行選項 對話方塊中按下確定。

    THEN:

    上午 10:00 和 10:10 之間發生的變化可能會導致 CDC 錯誤。

  資訊備註

  在上述任何一種情況下，必須載入受影響的表格，以便將資料正確地 已移動 至目標。

* DDL 陳述式 `ALTER TABLE ADD/MODIFY <column> <data_type> DEFAULT <>` 不會將預設值複寫到目標，且新欄/修改的欄設定為 NULL。請注意，即使過去曾執行新增/修改該欄的 DDL，仍可能會發生此情況。如果新欄/修改的欄可為 Null，來源端點在記錄 DDL 本身之前會更新所有表格列。因此，Qlik Talend Data Integration 會擷取變更，但不會更新目標。由於新欄/修改的欄已設定為 NULL，如果目標表格沒有主要金鑰/唯一索引，後續更新將產生「零列受影響」的訊息。

* 將不會擷取對時間戳記和日期精確度欄的修改。

## 刪除任務

如果資料任務未執行，且相同專案中沒有下游任務的相依性，您可以刪除該資料任務。

* 在專案的管線專案檢視中，按一下任務上的the 刪除 icon，然後選取。

任務建立的成品 (表格和檢視) 也會被刪除，除非您選擇保留它們。

資訊備註請記住，您保留的成品將不再由任務更新。

## 檢視任務資訊

按一下功能表長條上的 the 資訊 icon 以檢視任務資訊，例如：

* 擁有者

* 空間

* 資料平台

* 專案 ID

* 資料任務執行階段 ID

## 儲存空間的設定

若資料平台為 Qlik 開放湖倉庫，您可以設定儲存區域資料任務的屬性。

* 按一下設定。

## 一般設定

* 資料庫

  要在資料來源中使用的資料庫。

* 任務結構描述

  您可以變更儲存資料任務結構描述的名稱。預設名稱是儲存任務的名稱。

* 內部架構

  您可變更內部儲存空間資料資產架構的名稱。預設名稱是附加 \_internal 的儲存任務名稱。

* 預設大寫架構名稱

  您可以為所有結構描述名稱設定預設大寫。如果您的資料庫設定為強制大寫，則此選項將無效。

* 用於所有表格和檢視的前置詞

  您可以為透過此任務建立的所有表格和檢視畫面設定前置詞。

  資訊備註若您想要在數個資料任務中使用一個資料庫結構描述，則必須使用唯一前置詞。

* 歷史記錄

  您可以保留歷史變更資料，讓您輕鬆重新建立在特定時間點的資料。您可以使用歷史記錄檢視和即時歷史記錄檢視以查看歷史資料。選取保留歷史記錄和變更記錄封存以啟用歷史變更資料。

* 比較儲存與登陸時，您可選擇如何管理不存在於登陸中的記錄。

  * 標記為已刪除

    這會對不存在於登陸中的記錄執行軟體式刪除。

  * 繼續

    這會保留不存在於登陸中的所有記錄。

  資訊備註儲存空間資料任務中的資料集必須設定有主要金鑰。否則，每回重新載入登陸資料時，就會對儲存空間資料任務執行初始載入。

* 發佈至目錄

  選取此選項以將此資料版本發佈至目錄作為資料集。將會在下次您準備此任務時更新目錄內容。

  如需更多關於目錄的資訊，請參閱 [使用目錄工具理解資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Catalog/catalog-overview.htm)。

### 執行時間設定

* 平行執行

  您可用 1 到 5 的數字設定完整載入連線的最大數目。

* 倉庫

  雲端資料倉庫的名稱。此設定僅適用於 Snowflake。

### 結構描述演進

選取如何處理結構描述中以下類型的 DDL 變更。變更結構描述演進設定後，您必須重新準備任務。下表描述了哪些動作可用於支援的 DDL 變更。

| DDL 變更 | 套用至目標 | 忽略 | 停止任務 |
| --- | --- | --- | --- |
| 新增欄 | 是 | 是 | 是 |
| 建立表格<br><br>如果您使用選取規則新增與模式相符的資料集，則會偵測到並新增符合該模式的新表格。 | 是 | 是 | 是 |

## 操作儲存空間資料任務

您可以從任務功能表在儲存空間資料任務執行下列操作。

* 開啟

  這會開啟儲存空間資料任務。您可以檢視表格結構和關於資料任務的詳細資訊，並監控完整載入和變更批次的狀態。

* 編輯

  您可以編輯任務的名稱和說明並新增標記。

* 刪除

  您可以刪除資料任務。

* 準備

  可準備要執行的任務。這包括：

  * 驗證設計有效。

  * 建立或改變實體表格和檢視以符合設計。

  * 產生資料任務的 SQL 代碼

  * 建立或改變任務輸出資料集的目錄項目。

  您可以在畫面下方的準備進度之下追蹤進度。

  資訊備註在準備任務之前，請停止直接下游處理的所有任務。

* 驗證資料集

  可驗證所有包含在資料任務中的資料集。

  拓展驗證和調整以查看所有驗證錯誤和設計變更。

* 重新建立表格

  可從來源重新建立資料集。重新建立表格時，下游任務的反應方式，如同截斷並載入來源資料集發生的動作。如需詳細資訊，請參閱[疑難排解儲存資料任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/storing-data.htm#Troubles)。

* 停止

  您可以停止資料任務的操作。資料任務將不會繼續更新表格。

  資訊備註此選項在資料任務執行中時可供使用。

* 繼續

  您可以從停止的地方繼續操作資料任務。

  資訊備註此選項在資料任務停止時可供使用。

* 鏡像資料

  將 Qlik 開放湖倉庫 表格鏡像至其他資料平台。這將建立鏡像資料任務。

  [將資料鏡像到雲端資料倉庫](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/mirroring-data.htm)

## 限制

* 如果資料任務中含有資料集，並且您在連線中變更任何參數，例如使用者名稱、資料庫或架構，即認定資料存在於新位置。如並非此情形，有兩種作法：

  * 將來源中的資料移到新位置。

  * 使用相同設定建立新的資料任務。