從資料來源登陸資料
上線時傳輸資料的第一步是登陸資料。這涉及持續將資料從內部部署資料來源傳輸到登陸區域。
您可以從若干資料來源,經由來源連線登陸資料。
當您建立專案時,會定義登陸區域。
-
Qlik Cloud (透過 Amazon S3)
將資料登陸到 Qlik Cloud (透過 Amazon S3) 時,您可以用來在 Qlik Cloud 中產生準備好進行分析的 QVD 表格。
-
雲端資料倉庫
若您將資料登陸到雲端資料倉庫,例如 Snowflake 或 Azure Synapse Analytics,您可以在相同的雲端資料倉庫中儲存表格。
建立並設定登陸資料任務
本文說明如何建立登陸資料任務。建立資料管道最快的方式是讓資料上線,以建立登陸資料任務和儲存空間資料任務,隨即可進行準備及執行。如需詳細資訊,請參閱 上線資料。
-
在專案中,按一下新增,並選取登陸資料。
-
在登陸資料對話方塊,輸入資料任務的名稱和描述。
選取開啟以在建立時開啟登陸資料任務。
按一下建立。
-
按一下選取來源資料。
-
選取前往來源資料的連線並按一下下一步。
您可以使用左側面板的篩選,以對來源類型、空間和擁有者篩選連線清單。
若您還沒有前往來源資料的連線,則需要先建立;作法是按一下新增連線。
關於對支援的來源設定連線如需詳細資訊,請參閱設定前往資料來源的連線。
資訊備註您在下一個步驟中選取表格之後,即無法將來源連線從內部部署資料來源變更為雲端資料來源,反之亦然。只能變更連線到相同類型的另一個資料來源。 -
選取要在資料任務中納入的資料集。選項對話方塊會視您連線的來源類型而各不相同。
完成選取表格後,按一下儲存。
即顯示資料集。
-
您可為登陸變更設定。這並非必備。
-
按一下設定。
如需關於設定的詳細資訊,請參閱 登陸設定。
-
-
現在您可以預覽所選的資料資產表格的結構和中繼資料。這包括所有明確列出的表格,與符合選取規則的表格。
若您想要從資料來源新增更多表格,按一下選取來源資料。
-
您可以執行基本資料集轉換,例如篩選資料或新增欄。這並非必備。
如需詳細資訊,請參閱管理資料集。
-
您已新增所需的轉換之後,可按一下驗證資料集以驗證資料集。如果驗證後發現錯誤,請先修正錯誤再繼續進行。
如需詳細資訊,請參閱驗證和調整資料集。
-
當您就緒時,按一下準備以將資料任務編入目錄,為執行做好準備。
您可以在畫面下方的準備進度之下追蹤進度。
-
準備好資料任務且您準備好可開始複寫資料時,按一下執行。
即可開始複寫,您可在監控中看見進度。如需詳細資訊,請參閱監控個別資料任務。
從資料庫中選取資料
您可以選取特定表格或檢視,或使用選取規則以納入或排除表格群組。
可使用 % 作為萬用字元,為架構和表格定義選取標準。
-
%.% 可定義所有架構中的所有表格。
-
Public.% 可定義架構 Public 中的所有表格。
選取標準可依照您的選取項目提供預覽。
您現在可以:
-
建立規則,以基於選取標準納入或排除表格群組。
按一下從選取標準新增規則以建立規則,再選取納入或排除。
您可在選取規則之下看見此規則。
-
選取一或多個資料集,按一下新增所選的資料集。
您可在明確選取的資料集之下看見新增的資料集。
選取規則僅套用到目前的表格和檢視組,不會套用到日後新增的表格和檢視。
透過變更資料擷取 (CDC) 執行登陸任務
您可以在準備就緒後執行登陸任務。這會開始複寫,將資料從內部部署資料來源傳輸至登陸區域。
-
按一下執行以開始登陸資料。
即可開始複寫,資料任務的狀態應為正在執行。首先,會複製完整資料來源,然後追蹤變更。這表示會在探索時持續追蹤並傳輸變更。這會讓登陸區域中的登陸資料保持最新狀態。
在 Qlik Talend Data Integration 首頁中,您可以檢視更新登陸資料的狀態、日期和時間,以及發生錯誤的表格數量。您也可以開啟資料任務並選取表格索引標籤,以檢視表格的基本中繼資料資訊。
您可開啟監控索引標籤,以監控詳細進度。如需詳細資訊,請參閱監控個別資料任務。
載入所有表格並處理第一組變更後,資料任務卡片上的資料更新至會指示可在資料任務中使用直到該時間的來源變更。
載入表格
您可以自來源重新載入資料。
載入單一表格
您可以手動載入特定表格,不會干擾變更資料擷取。若一個或多個表格有 CDC 問題,這很實用。
-
開啟登陸資料任務並選取監控索引標籤。
-
選取您要載入的表格。
-
按一下載入表格。
若您無法透過載入表格來解決問題,或者若影響了整個任務,可以改為將所有表格載入到目標。這將會重新啟動變更資料擷取。
將所有表格載入到目標
若您遇到無法透過載入特定表格來解決的 CDC 問題,可以將所有表格載入到目標。問題範例包括遺失事件、來源資料庫重組造成的問題,或讀取來源資料庫事件失敗。
- 停止資料任務和取用資料任務的所有任務。
-
開啟資料任務並選取監控索引標籤。
-
按一下 ...,然後按一下載入目標。
這會使用捨棄-建立將所有表格載入到目標,並且將會重新啟動從現在起的所有變更資料擷取。
-
將會在下次執行以進行同步時透過比較和套用載入取用登陸資料任務的儲存任務。將會保留現有歷史記錄。將會更新類型 2 歷史記錄,以在執行載入並比較流程後反映變更。
類型 2 歷史記錄中的起始日期時間戳記將會反映載入日期,而不必是來源中發生變更的日期。
-
在儲存同步之前,儲存即時檢視在載入目標操作期間並不可靠。儲存將會在下列情況完全同步:
-
使用比較和套用載入所有表格,
-
為每個表格執行一次變更循環。
-
透過載入並比較執行登陸資料任務
您可以在準備就緒後使用登陸資料任務複製資料。
-
按一下執行以開始完整載入。
資料現在將會開始複製,資料任務的狀態將會是執行中。複製完整資料來源後,狀態為已完成。
在 Qlik Talend Data Integration 首頁中,您可以檢視更新登陸資料的狀態、日期和時間,以及發生錯誤的表格數量。您也可以開啟資料任務並選取表格索引標籤,以檢視表格的基本中繼資料資訊。
您可開啟監控索引標籤,以監控詳細進度。如需詳細資訊,請參閱監控個別資料任務。
載入所有表格後,資料任務卡片上的資料更新至會指示可在資料資產中使用直到該時間的來源變更。不過,資料任務的某些表格可更新至之後的時間,視載入開始時間而定。這表示不保證資料一致性。例如,若載入於 08:00 開始並花費 4 小時,資料更新至將會在載入完成時顯示 08:00。不過,在 11:30 開始載入的表格將會包括 08:00 和 11:30 之間發生的來源變更。
資料更新至僅反映成功載入的表格。這不會針對載入失敗的表格指示任何內容。在雲端目標中,若連同所有發生錯誤的表格完成載入,欄位將會空白。
在使用載入並比較時載入資料
使用載入並比較作為更新方法時,您需要載入資料,以透過資料來源保持最新狀態。
-
按一下載入以執行所有表格手動載入。
-
設定排程載入。
載入單一表格
您可以手動載入特定表格。若一個或多個表格有問題,這很實用。
-
開啟登陸資料任務並選取監控索引標籤。
-
選取您要載入的表格。
-
按一下載入表格。
- 此選項將在登陸任務執行了至少一次後提供使用,且只會在任務沒有在執行時提供使用。
- 不支援中繼資料變更。若來源中有中繼資料變更,會在載入資料時傳播至登陸,但不會正常處理。這可能會造成取用儲存空間失敗。
排程載入並比較登陸資料任務
若您在資料任務的空間中有可以操作角色,則您可以為登陸資料任務排程定期載入。資料任務狀態必須至少為已準備才能讓排程處於作用中。
-
按一下資料任務上的 ... 並選取排程。
您可以設定基於時間的排程。
如需關於根據資料來源類型和訂閱層級的最低排程間隔的資訊,請參閱 最低允許的排程間隔。
設定資料集的載入優先順序
您可以透過為每個資料集指定載入優先順序,控制資料任務中資料集的載入順序。例如,如果您希望在大型資料集之前先載入較小的資料集,這會很有用。
-
按一下載入優先順序。
-
為每個資料集選擇一種載入優先順序。
預設的載入優先順序為一般。資料集將會依照下列優先順序載入:
-
最高
-
較高
-
高
-
正常
-
低
-
較低
-
最低
具有相同優先順序的資料集不會按特定順序載入。
-
-
按一下確定。
操作登陸資料任務
您可以從任務功能表在登陸資料任務執行下列操作。
-
開啟
這會開啟登陸資料任務。您可以檢視表格結構和關於資料任務的詳細資訊。
-
編輯
您可以編輯任務的名稱和說明。
-
刪除
您可以刪除資料任務。
不會刪除下列物件,需要手動刪除:
-
登陸區域中的資料。
-
-
執行
您可以執行資料任務以開始複製資料。
-
停止
您可以停止執行之資料任務的操作。不會以變更的資料更新登陸區域。
若您透過載入排程停止完整載入資料任務,只會停止目前的載入。若資料任務狀態為已停止並且有作用中的載入排程,將會在下一個排程時間重新載入。您必須在重新載入排程中關閉重新載入排程。
-
載入
您可以透過載入並比較更新模式執行手動載入資料任務。
- 準備
可準備要執行的任務。這包括:
-
驗證設計有效。
-
建立或改變實體表格和檢視以符合設計。
-
產生資料任務的 SQL 代碼。
-
建立或改變任務輸出資料集的目錄項目。
您可以在畫面下方的準備進度之下追蹤進度。
-
-
重新建立表格
可從來源重新建立資料集。
-
排程
您可以在完整載入模式中為登陸資料任務設定已排程的載入。您可以設定可自訂且基於時間的排程。
您也可以開啟或關閉排程載入。
您必須在資料任務的空間有可以操作角色,才能排程載入。
-
儲存資料
您可以建立從此登陸資料任務使用資料的儲存資料任務。
正在重新整理中繼資料
您可以在任務的設計檢視中重新整理任務中的中繼資料,以符合來源中繼資料中的變更。對於使用 Metadata Manager 的 SaaS 應用程式,必須先重新整理 Metadata Manager,才能重新整理資料任務中的中繼資料。
-
您可以進行以下任一項:
-
按一下 ...,然後按一下重新整理中繼資料,以對任務中的所有資料集重新整理中繼資料。
-
在資料集中的資料集按一下 ...,然後按一下重新整理中繼資料,以對單一資料集重新整理中繼資料。
您可以在畫面下方部分的重新整理中繼資料之下檢視中繼資料重新整理狀態。您可以將游標暫留在 上方,以查看上次重新整理中繼資料的時間。
-
-
準備資料任務以套用變更。
準備資料任務並套用變更後,會從重新整理中繼資料移除變更。
您必須準備取用此任務的儲存任務以散佈變更。
若移除欄,會新增具有 Null 值的轉換,以確保儲存不會失去歷史資料。
重新整理中繼資料的限制
-
若有相同的資料類型和資料長度,則在此之前於相同時段以捨棄的欄重新命名,將會轉譯為捨棄的欄重新命名。
範例:
之前:a b c d
之後:a c1 d
在此範例中,捨棄了 b,而 c 重新命名為 c1,且 b 和 c 有相同的資料類型和資料長度。
這將會識別為從 b 重新命名為 c1 並捨棄 c。
-
不會辨識最後一欄重新命名,即使已捨棄最後一欄並重新命名前一欄,也是如此。
範例:
之前:a b c d
之後:a b c1
在此範例中,捨棄了 d 且 c 重新命名為 c1。
這將會識別為捨棄 c 和 d,並新增 c1。
-
會假設新的欄在末尾新增。若在中間新增資料類型與下一欄相同的欄,可能會解譯為捨棄並重新命名。
結構描述演進
結構描述演進讓您可以輕鬆偵測多個資料來源的結構變更,然後控制如何將這些變更套用至您的任務。結構描述演進可用於偵測對來源資料結構描述所做的 DDL 變更。您也可以自動套用一些變更。
對於每種變更類型,您可以在任務設定的結構描述演進區段中選取如何處理變更。 您可以套用變更、忽略變更、暫停表格或停止任務處理。
您可以設定使用哪個動作來處理每種變更類型的 DDL 變更。某些動作不一定適用於所有變更類型。
-
套用至目標
自動套用變更。
-
忽略
忽略變更。
-
暫停表格
暫停表格。表格將在監控中顯示為錯誤。
-
停止任務
停止任務處理。如果您想手動處理所有結構描述變更,這非常實用。這也將停止排程,即不會進行排程的執行。
支援以下變更:
-
新增欄
-
重新命名欄
-
變更欄資料類型
-
建立與選取模式相符的表格
如果您使用選取規則新增與模式相符的資料集,則會偵測到並新增符合該模式的新表格。
如需更多關於任務設定的資訊,請參閱 結構描述演進
您也可以針對透過結構描述演進處理的變更取得相關通知。如需詳細資訊,請參閱設定變更進行時的通知。
結構描述演進的限制
以下限制適用於結構描述演進:
-
只有在使用 CDC 作為更新方法時才支援結構描述演進。
-
變更結構描述演進設定後,您必須重新準備任務。
-
如果重新命名表格,則不支援結構描述演進。在這種情況下,您必須在準備任務之前重新整理中繼資料。
-
如果您正在設計任務,則必須重新整理瀏覽器,才能接收結構描述演進變更。您可以設定通知以在發生變更時發出警示。
-
在登陸任務中,不支援捨棄欄。捨棄欄並新增將會導致表格錯誤。
-
在登陸任務中,捨棄表格操作不會捨棄表格。捨棄表格然後新增表格只會截斷舊的表格,而不會新增新的表格。
-
並非所有目標都可以變更欄的長度,具體取決於目標資料庫的支援。
-
如果變更欄名稱,則使用該欄定義的明確轉換將不會生效,因為這基於欄名稱。
-
重新整理中繼資料的限制也適用於結構描述演進。
擷取 DDL 變更時,適用以下限制:
-
若來源資料庫中發生一系列快速操作 (例如 DDL>DML>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 變更 | 若要實施變更 | 若要保留目前狀態 |
---|---|---|
新增欄 | 重新整理中繼資料、準備任務,然後執行任務。 | 不需要採取動作 |
建立表格 | 重新整理中繼資料、準備任務,然後執行任務。 | 不需要採取動作 |
變更欄資料類型 |
檢查限制。如果沒有適用的限制: 重新整理中繼資料、準備任務,然後執行任務。 |
不一定支援保留目前狀態。可能的解決方法:
|
重新命名表格 |
檢查限制。如果沒有適用的限制: 準備任務,然後執行任務。 |
對舊名稱定義明確的重新命名規則。 |
重新命名欄 |
檢查限制。如果沒有適用的限制: 重新整理中繼資料、準備任務,然後執行任務。 |
重新整理中繼資料,然後對舊名稱定義明確的重新命名規則。 |
移除欄
若您在啟用歷史記錄的情況下捨棄儲存資料任務取用的欄,您需要按照這些步驟保留歷史記錄並避免可能的資料損失。
-
停止登陸資料任務。
-
執行儲存資料任務以確保讀取所有登陸資料。
-
捨棄登陸中的欄。
-
執行登陸資料任務。
-
在儲存空間中,新增具有預設運算式 (Null 或預設值) 的欄,或捨棄欄。
維護登陸區域
不支援自動清理登陸區域。這會影響效能。
我們建議您執行手動清理登陸區域中的舊的完整載入資料。
-
Qlik Cloud (透過 Amazon S3)
若有幾個完整載入資料的資料夾,可以刪除全部,僅保留最新的資料夾。也可以刪除已處理的變更資料分割。
-
雲端資料倉庫
您可以刪除完整載入和已處理的變更表格記錄。
建議
-
若可以更新來源表格中的主要金鑰,請在變更處理微調中更新主要金鑰欄選項時啟用刪除和插入。
限制
-
不支援複寫超過 8000 個位元組的 varchar 資料,或是超過 4000 個位元組的 Nvarchar 資料。
-
對於已移動的欄不支援變更可 Null 性,直接變更或使用轉換規則變更都不受支援。不過,依照預設,任務中建立的新欄可為 Null。
轉換受到下列限制:
- 使用由右至左語言的欄不支援轉換。
-
無法對名稱中包含特殊字元 (e.g. #, \, /, -) 的欄執行轉換。
- 對 LOB/CLOB 資料類型唯一支援的轉換是捨棄目標的欄。
- 不支援使用轉換重新命名欄,然後新增名稱相同的新欄。