# 儲存資料集

您可以使用儲存空間資料任務儲存資料集。儲存空間資料任務透過登陸資料任務，取用登陸到雲端登陸區域的資料。您可以例如在分析應用程式中使用這些表格。

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

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

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

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

除了將表格儲存在資料倉庫之外，您也可以將表格儲存為由資料平台管理的 Iceberg 表格。此選項目前僅適用於 Snowflake 專案。可以在任務設定中的表格類型之下選取 Snowflake 管理的 Iceberg 表格，以便進行。

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

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

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

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

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

  如需詳細資訊，請參閱[將資料導入資料倉儲](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Onboarding-data.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. 建立資料模型

   按一下模型以設定所包含的資料集之間的關係。

   如需詳細資訊，請參閱[建立資料模型](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Create-data-model.htm)。

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

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

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

   按一下執行。

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

資訊備註Iceberg 表格將繼承在結構描述、資料庫或帳戶層級設定的儲存序列化政策。這會影響與其他直接透過 Snowflake 讀取表格之產品的互通性。

## 保留歷史資料

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

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

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

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

[檢視影片剪輯](https://play.vidyard.com/BTK77F6qMWFR5gLMpzWgbY)

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

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

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

資訊備註使用 Qlik Cloud 作為資料平台時，歷史資料無法使用。

HDS 資料儲存在內部資料結構描述的 Prior 表格中。您可以在外部資料結構描述使用歷史檢視和即時歷史檢視以檢視歷史資料。

* 歷史記錄檢視會合併來自 Current 表格和 Prior 表格的資料。此檢視包括已合併的所有變更。

* 即時歷史記錄檢視會合併來自 Current 表格、Prior 表格和 Changes 表格的資料。此檢視也包括尚未合併的所有變更。

如需詳細資訊，請參閱[雲端資料倉庫中的資料集架構](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm)。

儲存

## 排程儲存任務

您可以排程定期更新儲存任務。

* 若輸入登陸資料任務使用完整載入和 CDC，您只能設定基於時間的排程。

* 若輸入登陸資料任務使用完整載入，您可以設定基於時間的排程，或設定為在輸入登陸資料任務完成執行後執行任務。

  資訊備註透過使用完整載入的輸入登陸資料任務執行基於時間的排程時，請考慮到當登陸任務仍在執行時，登陸中的每個已完成表格都可用。這可讓您共同執行登陸和儲存，改善總載入時間。

* 如果專案將資料儲存在 Iceberg 表格中，則可以設定基於時間的排程，或設定在任何變更資料分割區關閉時執行任務。

按一下資料任務上的 ... 並選取排程以建立排程。預設排程設定繼承自管道專案中的設定。如需關於預設設定的詳細資訊，請參閱 [儲存預設值](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Data-project-settings.htm#Storage)。您一律需要將排程設定為開啟以啟用排程。

### 基於時間的排程

無論登陸類型是什麼，您都可以使用基於時間的排程來執行儲存資料任務。

* 在執行資料任務中選取在特定時間。

您可以設定每小時、每日、每週或每月排程。

### 基於事件的排程

* 在執行資料任務中選取成功完成任何輸入資料任務時。

儲存任務將會在每次輸入登陸資料任務成功完成後執行。

資訊備註若在登陸持續執行時，輸入登陸資料任務使用完整載入和 CDC，則此選項不可使用。

## 監控儲存任務

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

如需詳細資訊，請參閱[監控個別資料任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-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. 您可以在儲存資料任務載入資料。

   若啟用歷史資料，儲存中的載入可能會造成歷史資料損失。若這發生問題，請考慮改從來源載入登陸。

   [載入資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/generating-datasets.htm#Reloadin)

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

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

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

### 載入資料

您可以執行手動表格載入。若一個或多個表格有問題，這很實用。

1. 開啟資料任務並選取監控索引標籤。

2. 選取您要載入的表格。

3. 按一下載入表格。

載入將會發生在下次執行任務時，並透過以下方式執行：

1. 截斷表格。

2. 將登陸資料載入到表格。

3. 載入從載入時間起累積的變更。

資訊備註

一般而言，這是在登陸中載入資料集的最佳做法。這在下列情況尤其如此：

* 若啟用歷史資料，儲存中的載入可能會造成歷史資料損失。載入登陸中的資料集會在儲存中觸發比較流程，並校正保留類型 2 歷史記錄的資料。

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

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

將會載入下游任務以套用變更，並避免提早進行。若透過截斷並載入的方式執行載入，也會截斷並載入所有下游專案，以便載入。

載入登陸或儲存資料任務後的下游影響

載入登陸或儲存資料任務後的下游影響

載入登陸或儲存資料任務後的下游影響 ![儲存載入下游影響](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/qcdi_reload_downstream_storage.png)

對下游的影響取決於執行的載入操作類型，以及直接下游資料集的類型。標準處理表示資料集將會使用對特定資料集設定的方法，反映並處理資料。

* 在下游轉換任務中：

  會透過截斷並載入的方法載入資料集轉換。

  與完整載入比較並套用變更，以載入 SQL 轉換和轉換流程。

* 立即在儲存任務之後的資料超市任務會透過截斷並載入的方式載入。

您可以按一下取消載入，為等待載入的表格取消載入。這不會影響已載入的表格，且將會完成目前正在執行的載入。

資訊備註以 Qlik Cloud 作為目標資料平台的資料專案中不支援載入表格。

## 結構描述演進

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

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

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

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

* 套用至目標

  自動套用變更。

* 忽略

  忽略變更。

* 暫停表格

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

* 停止任務

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

支援以下變更：

* 新增欄

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

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

如需更多關於任務設定的資訊，請參閱 [結構描述演進](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/generating-datasets.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 以檢視任務資訊，例如：

* 擁有者

* 空間

* 資料平台

* 專案 ID

* 資料任務執行階段 ID

## 儲存空間的設定

若資料平台為雲端資料倉庫，您可以設定儲存區域資料任務的屬性。若您使用 Qlik Cloud 作為資料平台，請參閱 [資料專案的儲存空間設定，以 Qlik Cloud 作為資料平台](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/generating-datasets.htm#Storage2)。

* 按一下設定。

警告備註如果已經執行任務，變更至非執行時間的設定需要您重新建立資料集。

### 一般設定

* 資料庫

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

* 任務結構描述

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

* 內部架構

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

* 預設大寫架構名稱

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

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

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

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

* 歷史記錄

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

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

  * 標記為已刪除

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

  * 繼續

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

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

* 發佈至目錄

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

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

### 檢視的設定

* 即時檢視

  使用即時檢視以最低的延遲讀取表格。

  如需關於即時檢視的詳細資訊，請參閱 [使用即時檢視](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#Using)。

  資訊備註即時檢視的效率低於標準檢視，而且需要更多資源，因為需要重新計算已套用的資料。

### 檢視類型設定

檢視設定僅適用於 Snowflake。

* 標準檢視

  大部分情況下使用標準檢視。

* Snowflake 安全檢視

  使用 Snowflake 安全檢視來指定用於資料隱私或敏感資訊保護的檢視畫面，例如為了針對不應暴露給所有基礎表格使用者的敏感資料，限制其存取權限，所建立的檢視畫面。

  資訊備註 Snowflake 安全檢視的執行速度比標準檢視慢。

### 執行時間設定

* 平行執行

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

* 倉庫

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

### 表格類型設定

這些設定僅可用於以 Snowflake 作為資料平台的專案。

* 表格類型

  您可以選取要使用的表格類型：

  * Snowflake 表格

  * Snowflake 管理的 Iceberg 表格

    您必須在 Snowflake 外部磁碟區中設定外部磁碟區的預設名稱。

* 要使用的雲端儲存資料夾

  選取將資料登陸到暫存區域時要使用的資料夾。

  * 預設資料夾

    如此可建立預設名稱為 &lt;專案名稱&gt;/&lt;資料任務名稱&gt; 的資料夾。

  * 根資料夾

    將資料存放在儲存區的根資料夾。

  * 資料夾

    指定要使用的資料夾名稱。

* 與 Snowflake 開放目錄同步

  啟用此選項可讓 Snowflake Open Catalog 管理雲端檔案儲存中的檔案。

### 結構描述演進

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

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

## 資料專案的儲存空間設定，以 Qlik Cloud 作為資料平台

若資料平台 Qlik Cloud 為資料平台，您可以設定要在儲存空間中使用哪個資料夾。

1. 按一下設定。

2. 選取要在儲存空間中使用哪一個資料夾。

3. 在您準備好時按一下確定。

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

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

* 開啟

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

* 編輯

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

* 刪除

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

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

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

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

* 準備

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

  * 驗證設計有效。

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

  * 產生資料任務的 SQL 代碼

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

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

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

* 驗證資料集

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

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

* 重新建立表格

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

* 停止

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

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

* 繼續

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

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

* 轉換資料

  依據規則和自訂 SQL 建立可重複使用的低層級轉換。這會建立轉換資料任務。

  [轉換資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformations.htm)

* 建立資料超市

  利用資料任務建立資料超市。這會建立資料超市資料任務。

  [建立與管理資料超市](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataMarts/DataMarts.htm)

## 限制

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

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

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

* 無法透過 Qlik Cloud (QVD) 在專案的儲存任務中變更主要金鑰作為目標。在登陸任務中更新主要金鑰，重新建立登陸任務，然後重新建立儲存任務。

* 當使用 Iceberg 儲存時，JSON 資料欄將會儲存為 STRING。