# 透過標準、進階或企業訂閱複寫資料

若要設定複寫任務：

1. 在資料整合 &gt; 管線專案中，按一下新建 &gt; 專案。

2. 在新的專案對話方塊中，進行下列事項：

   1. 提供專案的名稱。

   2. 選取您要在其中建立專案的空間。

   3. 或者可選擇提供描述。

   4. 選取複寫作為使用案例。

   5. 若您想要建立空的專案而不進行任何設定，也可以選擇清除開啟核取方塊。

   6. 按一下建立。

      將會發生下列情況之一：

      * 若在新的專案對話方塊中選取開啟核取方塊 (預設)，專案將會開啟。
      * 若您在新的專案對話方塊中清除開啟核取方塊，專案將會新增至專案清單。您之後可以從專案的 功能表選取開啟the 更多 icon以開啟專案。

3. 專案開啟後，按一下複寫資料。

   就會開啟複寫資料精靈。

4. 在一般索引標籤中，為複寫任務指定名稱和描述。然後，按一下下一步。

5. 在選取來源連線索引標籤中，選取前往來源資料的連線。您也可以從動作欄功能表選取編輯，以編輯連線設定。

   資訊備註如果您在任務已準備好之後變更來源連線或來源資料閘道，您必須[重新建立所有資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm#:~:text=the%20storage%20task.-,Recreating%20datasets,-You%20can%20recreate)。

   若您尚未建立前往資料來源的連線，則需要在索引標籤右上方按一下建立連線，以便建立。

   您可以使用左側的篩選器篩選連線清單。可以根據來源類型、閘道、空間和擁有者篩選連線。連線清單上方的所有篩選按鈕顯示目前的篩選數量。您可以使用此按鈕關閉或開啟左側的篩選面板。目前作用中的篩選也會顯示在可用連線清單上方。

   您也可以從右側的下拉式清單中選取上次修改、上次建立或按字母順序，以排序清單。按一下清單的向右箭頭以變更排序順序。

   選取資料來源連線之後，可以選擇按一下索引標籤右上方的測試連線 (建議)，然後按一下下一步。

6. 在選取資料集索引標籤中，選取表格和/或檢視，以包括在複寫任務中。您也可以使用萬用字元並建立選取規則，如 [從資料庫中選取資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/Landing-data-data-sources.htm#Selectin) 中所述。

7. 在選取目標連線索引標籤中，從可用連線清單中選取目標，然後按一下下一步。在功能方面，索引標籤與先前描述的選取來源連線索引標籤相同。

   資訊備註如果您在任務已準備好之後變更目標連線，您必須[重新建立所有資料集](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm#:~:text=the%20storage%20task.-,Recreating%20datasets,-You%20can%20recreate)。

8. 在設定索引標籤中，可以選擇變更下列設定，然後按一下下一步。

   複寫模式

   資訊備註從 SaaS 應用程式來源複寫時，依照預設會啟用完整載入複寫模式，並且無法停用。

   * 完整載入： 將資料從選取的來源資料表載入到目標平台，並在必要時建立目標資料表。完整載入會在任務開始時自動發生，但如有需要，也可以手動執行。

     資訊備註此設定在使用 SaaS 應用程式連接器時無法使用。

   * 套用變更： 使目標資料表與來源資料表的任何變更保持同步。

   * 儲存變更： 將來源資料表的變更儲存至變更資料表 (每個來源資料表一個)。

     如需詳細資訊，請參閱[儲存變更](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Store)。

   使用 資料移動閘道 時，會幾乎即時地從來源擷取變更。在沒有 資料移動閘道 的情況下工作時 (透過在連接器設定中將資料閘道設定為無)，會根據排程器設定擷取變更。預設變更擷取間隔為每六小時一次。如需詳細資訊，請參閱[複寫設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Scheduli)。

   套用變更模式

   資訊備註複寫至資料倉庫目標或使用 Qlik Talend Cloud 啟動器 訂閱時，您無法選取要使用哪個套用變更模式。變更永遠會在批次最佳化模式下套用，以提供最大效率。對此的例外情況是複寫到 Snowflake 目標且載入方法 設定為 Snowpipe 串流時。在這種情況下，雖然您仍然無法選取要使用哪一種套用變更模式，但變更將一律在交易模式下套用。

   變更會使用下列方法之一套用至目標表格：

   * 批次最佳化：此為預設。若選取此選項，會在批次中套用變更。會發生前置處理動作，以最有效率的方式將交易組成批次。
   * 交易：選取此選項以認可順序個別套用每筆交易。在此情況下，會為所有表格確保嚴格參考完整性。

   連線至暫存區域

   複寫至下列資料倉庫時，您需要設定暫存區域。會先在暫存區域中處理並準備資料，再傳輸至倉庫。

   * [Amazon Redshift](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/redshift-target.htm)
   * [Microsoft Fabric](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/fabric-target.htm)
   * [Databricks](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/databricks-target.htm)

   選取現有的暫存區域，或按一下新建以定義新的暫存區域，並按照 [連線至雲端儲存空間](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/cloud-storage-connections.htm) 中的說明。

   若要編輯連線設定，按一下編輯。若要測試連線 (建議)，按一下測試連線。

   如需資料倉庫支援哪些暫存區域的資訊，請參閱 中的作為暫存區域受到支援[目標平台使用案例和支援版本](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/data-project-connections.htm#ar_app_supported_dbversions_993761142_cjaehbcc)欄。

   複寫排程器

   資訊備註

   此設定僅在以下使用情況下可用：

   * 當使用 SaaS 應用程式連接器時。
   * 當存取資料來源時，若沒有 資料移動閘道。

   如需關於 資料移動閘道 福利的資訊以及需要此項的使用案例，請參閱 [Qlik Data Gateway - Data Movement](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)。

   * Replicate 資料頻率： 您可以排程從資料來源擷取變更的頻率，並設定開始日期和時間。任務設定精靈可讓您設定基本排程頻率。在您完成設定任務之後，可以使用額外的排程選項。

     如需所有排程選項的說明，請參閱 [Scheduling tasks](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Deploying/Scheduling-tasks.htm)。

   如需關於根據資料來源類型和訂閱層級的最低排程間隔的資訊，請參閱 [最低允許的排程間隔](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/subscription-options-QTC.htm#Minimum)。

9. 在摘要索引標籤中，會顯示資料管道的視覺。若部分選取的資料集不支援 CDC，將會顯示兩個管道：一個用於 CDC 任務，另一個用於載入任務。選擇要開啟 &lt;name&gt; 資料任務或不做任何事，然後按一下建立。

   根據您的選擇，將會開啟任務，或將會顯示專案清單。

10. 若您選擇開啟任務，資料集索引標籤將會顯示所選來源表格的結構和中繼資料。這包括所有明確列出的表格，以及符合選取規則的表格。

    若您想要從資料來源新增更多表格，按一下選取來源資料。

11. 選用，變更任務設定，如[複寫設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm)中所述。

12. 您可以執行資料集轉換、篩選資料或新增欄。

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

13. 您已新增所需的轉換之後，可按一下驗證資料集以驗證資料集。如果驗證失敗，請先解決錯誤再繼續進行。

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

14. 當您就緒時，按一下準備以將資料任務編入目錄，為執行做好準備。

    資訊備註

    * 當您準備資料任務並將其設定為完整載入複寫模式時，將會套用在[任務設定的完整載入索引標籤](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm)中定義的設定。

    * 依預設，初始準備作業將會捨棄並重新建立任何現有的目標資料表。您可以透過追蹤以下[在初始準備期間保留現有的目標資料表](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-other-subscriptions.htm#Retainin)中的步驟來覆寫預設值。

15. 準備資料任務後，按一下執行。

    如需關於復原任務和其他任務執行方法的資訊，請參閱 [進階執行選項](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)。

16. 即可開始複寫任務，您可在監控中看見進度。如需詳細資訊，請參閱[監控個別資料任務](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-tasks.htm#Monitori)

## 在初始準備期間保留現有的目標資料表

依預設，初始準備作業會捨棄並重新建立任何現有的目標資料表。不過，在某些情況下，您可能會想要保留現有的目標表格。例如，如果您匯入的專案包含已執行的資料任務，您可以從現有目標記錄的最後一個時間戳記或位置之後開始 (繼續) 資料任務。

資訊備註從 SaaS 應用程式來源複寫時不支援。

要執行的操作：

1. 在 [完整載入任務設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Basic) 中，將 如果目標表格已存在 設定為 忽略。

   資訊備註除了在資料任務準備階段套用之外，此設定也將在每次重新載入表格時套用。

2. 準備任務。

3. 任務準備好後，開啟[進階執行選項對話方塊](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating_advanced_run.htm)並選取資料表已載入。開始處理變更，從：。為防止複製的目標記錄，請輸入日期和時間或來源位置 (視資料來源而定)，就在現有目標記錄的最後一個時間戳記或位置之後。

4. 執行任務。

## 設定資料集的載入優先順序

您可以透過為每個資料集指定載入優先順序，控制資料任務中資料集的載入順序。例如，如果您希望在大型資料集之前先載入較小的資料集，這會很有用。

1. 按一下載入優先順序。

2. 為每個資料集選擇一種載入優先順序。

   預設的載入優先順序為一般。資料集將會依照下列優先順序載入：

   * 最高

   * 較高

   * 高

   * 正常

   * 低

   * 較低

   * 最低

   具有相同優先順序的資料集不會按特定順序載入。

3. 按一下確定。

資訊備註SaaS 應用程式來源中的資料集可能依載入順序包含相依性。設定載入優先順序時，請考慮這一點。

## 結構描述演進

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

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

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

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

* 套用至目標

  自動套用變更。

* 忽略

  忽略變更。

* 暫停表格

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

* 停止任務

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

支援以下變更：

* 新增欄

* 重新命名欄

* 變更欄資料類型

* 捨棄表格

* 捨棄欄

* 新增符合選取模式的表格

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

如需關於工作設定的詳細資訊，請參閱[自動結構描述演進](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Schema)

您也可以針對透過結構描述演進處理的變更取得相關通知。如需詳細資訊，請參閱[設定變更進行時的通知](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Notifications.htm)。

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

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

* 只有在使用 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，如果目標表格沒有主要金鑰/唯一索引，後續更新將產生「零列受影響」的訊息。

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

### 處理未自動套用的變更

這描述如何處理無法套用於目標的變更，即動作為「忽略」、「暫停」或「停止任務」。

| DDL 變更 | 若要實施變更 | 若要保留目前狀態 |
| --- | --- | --- |
| 新增欄位 | 重新整理中繼資料、準備任務，然後執行任務。 | 不需要採取動作 |
| 建立表格 | 重新整理中繼資料、準備任務，然後執行任務。 | 不需要採取動作 |
| 變更欄位資料類型 | 檢查限制。如果沒有適用的限制：<br><br>重新整理中繼資料、準備任務，然後執行任務。 | 不一定支援保留目前狀態。可能的解決方法：<br><br><ul> <li> <p>手動變更欄資料類型。這需要在下游任務中重複進行。</p> </li> <li> <p>建立新欄並將舊欄導向到新欄，然後手動建立合併這兩個欄的檢視畫面。</p> </li> </ul> |
| 重新命名表格 | 檢查限制。如果沒有適用的限制：<br><br>準備任務，然後執行任務。 | 對舊名稱定義明確的重新命名規則。 |
| 重新命名欄位 | 檢查限制。如果沒有適用的限制：<br><br>重新整理中繼資料、準備任務，然後執行任務。 | 重新整理中繼資料，然後對舊名稱定義明確的重新命名規則。 |

## 變更閘道或連線

當變更目標或來源連線，或來源閘道時，您必須重新建立表格。

## 檢視專案資訊

按一下功能表列上的 the 資訊 icon 以檢視專案資訊，例如：

* 擁有者

* 空間

* 資料平台

* 專案 ID

## 資料複寫時的限制與考量

轉換受到下列限制：

* 使用由右至左語言的欄不支援轉換。

* 無法對名稱中包含特殊字元 (e.g. #, \, /, -) 的欄執行轉換。

* 對 LOB/CLOB 資料類型唯一支援的轉換是捨棄目標的欄。

* 不支援使用轉換重新命名欄，然後新增名稱相同的新欄。

對於已移動的欄不支援變更可 Null 性，直接變更或使用轉換規則變更都不受支援。不過，依照預設，任務中建立的新欄可為 Null。