Qlik 開放湖倉庫 中的資料集架構 | Qlik Cloud 說明
跳到主要內容 跳至補充內容

Qlik 開放湖倉庫 中的資料集架構

當您在 Qlik 開放湖倉庫 中產生資料集時,Qlik Talend Data Integration 會自動產生儲存表格、變更表格和檢視。您可以查詢這些檢視,以存取以 Iceberg 開放表格格式儲存的目前和歷史資料。

直覺且引導式的使用者介面可協助您建置、塑模和執行資料管道。您可以自動產生操作資料存放區 (ODS) 和歷史資料存放區 (HDS) 的架構,而無需手動編寫程式碼。

使用 Qlik 資料閘道 - 資料移動Qlik 開放湖倉庫 資料管道架構。資料登陸在 S3 中,並儲存在 Iceberg 開放式湖倉中。如下所示,可以選擇將表格鏡像到資料倉儲。

架構

成品會在內部架構和資料工作架構中產生。

  • 內部架構包含具有多個分割區的實體表格。

  • 資料工作架構包含可用於取用資料的檢視。

    當架構與多個資料工作相關聯時,每個資料工作必須為表格和檢視使用唯一的前置詞。您可以在資料工作設定中設定前置詞。

僅會檢查內部架構是否有命名衝突。對於其他架構,您必須確保表格名稱中沒有命名衝突。最佳實務是將內部架構命名為與資料工作架構相同的名稱,並加上 _internal。這可確保每個架構和前置詞組合都是唯一的。

資訊備註所有表格和檢視均由 Qlik Talend Data Integration 管理。請勿使用其他工具變更資料。

表格

對於每個來源表格,會在內部架構中建立一個帶有 _internal 尾碼的表格,使用以下格式:

<INTERNAL_SCHEMA>.<TABLE_NAME>_internal

此表格包含五個分割區,每個分割區在資料處理和儲存方式中都有不同的用途。每個分割區會根據其在資料生命週期中的角色,運用表格欄位的子集。

資訊備註內部架構中的表格可能會隨時變更,恕不另行通知。在可能的情況下,您應主要使用檢視來取用資料。

內部資料集的結構旨在有效管理來自來源系統的傳入資料,支援即時擷取和歷史追蹤。資料流程透過幾個專門的分割區進行管理,每個分割區的說明如下:

  • Changes 分割區 – 即時擷取

    來自來源系統的所有變更 (插入、更新和刪除) 都會首先附加到 Changes 分割區。

    • 作為原始變更記錄,該分割區在發生任何轉換之前提供來源活動的完整摘要。

    • 每個變更都會標記一個類型 (I、U 或 D),指出其處理方式。

    • 事件在發生時從來源擷取。該分割區會以近乎即時的方式更新。

    • 當在 Lake 登陸資料工作中套用以下設定時,可以使用 Changes 分割區。

      • 一般索引標籤中,更新方法設定為 CDC

      • 已啟用完整載入。

  • Asset_state 分割區 - 追蹤進度

    隨著變更被擷取,Asset_state 分割區會記錄兩個關鍵時間戳記:

    • 上次將變更附加到 Changes 分割區的時間。

    • 上次將變更套用到 Current 分割區的時間。

    這提供了對同步管道的完整可見性,並有助於監控或疑難排解延遲。

  • Current 分割區 (ODS) – 來源的最新複本

    來自 Changes 分割區的變更會定期套用到 Current 分割區,以維護來源資料的最新、查詢最佳化複本。

    • 背景工作會自動執行以套用這些更新。這是根據累積變更的數量,而不是固定的排程。

    • 初始完整載入會直接寫入 Current 分割區。

    • 此分割區反映資料的目前狀態,專為有效率的查詢而設計。

  • Prior 分割區 (HDS) – 歷史資料

    當記錄在 Current 分割區中更新或刪除時,先前版本的複本會寫入 Prior 分割區。 

    • 記錄包含中繼資料,包括變更歷史記錄和資料有效的日期範圍。

    • 這支援類型 2 緩慢變更維度 (SCD2)。

    • 當在儲存資料工作設定的一般索引標籤中啟用保留歷史記錄和變更記錄的封存時,可以使用 Prior 分割區。

    • 當記錄的更新版本進入 Current 分割區時,先前的記錄會移至 Prior 分割區以進行歷史追蹤。

  • Reload 分割區

    Reload 分割區在手動或排程的完整重新載入期間充當暫時的預備區域:

    • 新資料首先寫入 Reload 分割區。

    • 定期維護工作會在暫停任何暫停的變更之前將其清除。

    • 將資料與 Current 分割區進行比較,並且僅將差異移至 Current 分割區。

    • 作業完成時,會清除 Reload 分割區。

    此程序可確保在完整重新載入作業期間對主要資料集的干擾降至最低。

Current 分割區

欄位 類型 說明
hdr__key_hash VARBINARY (20) 所有記錄主索引鍵的雜湊。雜湊格式為 SHA1。欄位以退格字元分隔。
hdr__from_timestamp TIMESTAMP

UTC 時間戳記:

  • 對於從完整載入取得的資料,這是完整載入開始時間。

  • 對於來自 Changes 分割區的變更,這是記錄的時間戳記欄位。

hdr__operation VARCHAR (1)

此記錄的最新作業。

  • D - 從 Changes 分割區刪除。

  • U - 從 Changes 分割區更新。

  • I - 從 Changes 分割區插入。

  • L - 由完整載入工作插入。

  • d - 從比較和套用中刪除。

  • u - 從比較和套用中更新。

  • i - 從比較和套用中插入。

hdr__inserted_timestamp TIMESTAMP 首次新增金鑰的 UTC 時間戳記。使用完整載入時,為完整載入的開始時間。
hdr__modified_timestamp TIMESTAMP 進行上次更新時的 UTC 時間戳記。

Prior 分割區

欄位 類型 說明
hdr__key_hash VARBINARY (20) 所有記錄主索引鍵的雜湊。
hdr__from_timestamp TIMESTAMP UTC 時間戳記。
hdr__to_timestamp TIMESTAMP UTC 時間戳記。
hdr__operation STRING (1)

此記錄的最新作業。

  • D - 從 Changes 分割區刪除。

  • U - 從 Changes 分割區更新。

  • I - 從 Changes 分割區插入。

  • L - 由完整載入工作插入。

  • d - 從比較和套用中刪除。

  • u - 從比較和套用中更新。

  • i - 從比較和套用中插入。

hdr__was_current_from_timestamp TIMESTAMP 記錄首次成為目前記錄的 UTC 時間戳記。
hdr__was_current_to_timestamp TIMESTAMP 記錄最後一次成為目前記錄的 UTC 時間戳記。

Changes 分割區

欄位 類型 說明
hdr__change_identifier VARCHAR (50)

變更識別碼是包含兩個部分的字串:

  • 自 1970 年 1 月 1 日以來的批次執行開始時間戳記 (以毫秒為單位) (10 位數字串)。

  • 來自複寫閘道器的變更序列 (35 個字元)。

hdr__operation VARCHAR (1)

此記錄的最新作業。

  • D - 從 Changes 分割區刪除。

  • U - 從 Changes 分割區更新。

  • I - 從 Changes 分割區插入。

  • L - 由完整載入工作插入。

  • d - 從比較和套用中刪除。

  • u - 從比較和套用中更新。

  • i - 從比較和套用中插入。

hdr__timestamp TIMESTAMP UTC 時間戳記。
hdr__key_hash BINARY (20) 所有記錄主索引鍵的雜湊。
hdr__inserted_timestamp TIMESTAMP Qlik 處理變更時的 UTC 時間戳記。

Asset_state 分割區

欄位 類型 說明
hdr__apply_change_identifier VARCHAR (50) 套用到 Current 分割區的最新變更的變更識別碼。
hdr__copy_change_identifier VARCHAR (50) 附加到 Changes 分割區的最新變更的變更識別碼。

Reload 分割區

Reload 分割區使用的欄位與 Current 分割區相同。

檢視

建立的所有檢視都會以近乎即時的方式更新。以下檢視可用於簡化查詢和報告:

Current

Current 檢視反映資料的最新狀態。此檢視代表來源表格的複本,以近乎即時的方式更新。它會合併來自 CurrentChanges 分割區的資料。

名稱:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>

不會將標頭欄位新增至表格結構中。

History

當在資料工作設定中啟用 History 時,會在資料資產架構中為每個選取的來源表格產生 History 檢視。History 檢視會合併來自 PriorChanges 分割區的資料。它提供了完整的變更時間軸,非常適合稽核或歷史分析。

名稱:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>

以下標頭欄位會新增至 History 檢視:

欄位 類型 說明
hdr__key_hash BINARY (20) 所有記錄主索引鍵的雜湊。
hdr__from_timestamp TIMESTAMP 變更在來源系統中發生的時間戳記。這反映了使用者最初進行變更的時間。
hdr__to_timestamp TIMESTAMP 變更在來源系統中被還原或更新的時間戳記。
hdr__store VARCHAR (10)

這指出記錄所在的位置:

  • CURRENT - 如果記錄位於 Current 分割區中。

  • PRIOR - 如果記錄位於包含歷史資料的 Prior 分割區中。

hdr__operation STRING (1)

此記錄的最新作業。

  • D - 從 Changes 分割區刪除。

  • U - 從 Changes 分割區更新。

  • I - 從 Changes 分割區插入。

  • L - 由完整載入工作插入。

  • d - 從比較和套用中刪除。

  • u - 從比較和套用中更新。

  • i - 從比較和套用中插入。

hdr__deleted BIT 根據 hdr__operation 是否為 D 或 d,指出記錄是否被軟刪除。
hdr__was_current_from_timestamp TIMESTAMP 此列進入 Current 分割區的時間 (UTC)。這通常是儲存工作執行且套用變更的時間。
hdr__was_current_to_timestamp TIMESTAMP 該列從 Current 表格中移除的時間 (UTC),例如,由於有較新的版本。

資訊備註Current 和 History 檢視依賴於 Changes 分割區,並且始終是近乎即時的。但是,如果您遇到查詢效能緩慢的情況,可能是因為有大量變更尚未套用到 CurrentPrior 分割區。未合併的差異在查詢時需要更多處理,從而導致存取速度變慢。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們!