使用資料流程建立維度模型的最佳做法

設計維度模型是您可以使用資料流程執行的最常見工作之一。 本文重點說明使用資料流程建立維度模型的一些最佳做法。

暫存資料流程

任何資料整合系統中的其中一個關鍵點是減少來源作業系統的讀取次數。 在傳統的資料整合架構中,建立稱為 預備資料庫的新資料庫 ,藉此減少。 預備資料庫的目的是依原樣將資料從資料來源依原樣載入暫存資料庫。

接著,其餘的資料整合將會使用暫存資料庫作為進一步轉換的來源,並將其轉換成維度模型結構。

建議您使用資料流程遵循相同的方法。 建立一組資料流程,負責只依原始來源系統載入資料(且僅適用于您需要的資料表)。 然後,結果會儲存在資料流程的儲存體結構中(Azure Data Lake Storage 或 Dataverse)。 這項變更可確保來源系統的讀取作業最少。

接下來,您可以建立其他資料流程,從暫存資料流程中產生其資料。 此方法的優點包括:

  • 減少來源系統的讀取作業數目,並因此減少來源系統上的負載。
  • 如果使用內部部署資料來源,則減少資料閘道上的負載。
  • 在源系統資料變更時,具有資料中繼複本以供對帳之用。
  • 讓轉換資料流程與來源無關。

Staging dataflows.

強調暫存資料流程和預備儲存體的影像,並顯示暫存資料流程從資料來源存取的資料,以及儲存在 Cadavers 或 Azure Data Lake Storage 中的資料表。 然後會顯示資料表會隨著其他資料流程一起轉換,然後以查詢的形式傳送出來。

轉換資料流程

當您將轉換資料流程與預備資料流程區隔開時,轉換會與來源無關。 如果您要將來源系統移轉至新系統,此區隔有助於您。 在此情況下,您只需要變更暫存資料流程。 轉換資料流程可能沒有任何問題,因為它們只從暫存資料流程來源。

如果來源系統連線速度緩慢,此區隔也有助於。 轉換資料流程不需要等候很長的時間,才能從來源系統取得緩慢連線的記錄。 暫存資料流程已經完成該部分,且資料已準備好進行轉換層。

Image similar to the previous image, except transformations are emphasized, and the data is being sent to the data warehouse.

分層架構

分層架構是您在不同層中執行動作的架構。 暫存和轉換資料流程可以是多層式資料流程架構的兩層。 嘗試在層中執行動作可確保所需的最低維護。 當您想要變更某個專案時,只需要在所在圖層中變更它即可。 其他層應該都會繼續正常運作。

下圖顯示資料流程的多層次架構,其資料表接著會用於 Power BI 資料集。

Image with multi-layered architecture, where staging dataflows and transformation dataflows are in separate layers.

盡可能使用計算資料表

當您在另一個資料流程中使用資料流程的結果時,您會使用計算資料表的概念,這表示從「已處理和儲存的」資料表取得資料。 資料流程內可能發生相同的情況。 當您從另一個資料表參考資料表時,可以使用計算資料表。 當您在多個資料表中需要完成的一組轉換時,這非常有用,這些轉換稱為 一般轉換

Image showing the computed table sourced from a data source used to process common transformations.

在上一個影像中,計算資料表會直接從來源取得資料。 不過,在預備和轉換資料流程的架構中,計算資料表可能是從暫存資料流程來源。

Computed table sourced from dataflows used to process common transformations.

建置星狀架構

最佳維度模型是星型架構模型,其具有維度和事實資料表的設計方式,可將查詢模型資料的時間量降到最低,也可讓您輕鬆地瞭解資料視覺化檢視。

將資料放在 BI 系統中的相同版面配置並不理想。 應該重新建立資料表。 某些資料表應採用維度資料表的形式,以保留描述性資訊。 有些資料表應採用事實資料表的形式,以保留可匯總的資料。 要形成之事實資料表和維度資料表的最佳配置是星型架構。 詳細資訊: 瞭解星型架構和 Power BI 的重要性

Star schema image showing a fact table surrounded by dimension tables, in the shape of a five-pointed star.

針對維度使用唯一索引鍵值

建置維度資料表時,請確定每個資料表都有索引鍵。 此索引鍵可確保維度之間沒有多對多(或換句話說為「弱式」)關聯性。 您可以套用某些轉換來建立索引鍵,以確保資料行或資料行的組合在維度中傳回唯一的資料列。 然後,資料行的組合可以標示為數據流中資料表中的索引鍵。

Mark a column as a key value.

針對大型事實資料表執行累加式重新整理

事實資料表一律是維度模型中最大的資料表。 建議您減少針對這些資料表傳輸的資料列數目。 如果您有非常大的事實資料表,請確定您使用該資料表的累加式重新整理。 您可以在 Power BI 資料集以及資料流程資料表中完成累加式重新整理。

您可以使用累加式重新整理,只重新整理部分資料,該部分已變更。 有多個選項可選擇要重新整理的資料部分,以及要保存哪些部分。 詳細資訊: 搭配 Power BI 資料流程使用累加式重新整理

Incremental refresh for dataflows.

參考以建立維度和事實資料表

在來源系統中,您通常會有一個資料表,可用來在資料倉儲中產生事實和維度資料表。 這些資料表是計算資料表和中繼資料流程的良好候選項目。 程式的常見部分,例如資料清理,以及移除額外的資料列和資料行,可以完成一次。 藉由使用這些動作輸出的參考,您可以產生維度和事實資料表。 此方法會針對一般轉換使用計算資料表。

Image showing an Orders query with the reference option being used to create a new query called Orders aggregated.