Share via


在對應資料流程中使用資料行模式

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有項目。 了解如何免費啟動新的試用版

數個對應資料流程轉換可讓您根據模式 (而不是硬式編碼的資料行名稱) 參考範本資料行。 此比對稱為資料行模式。 您可以定義模式,根據名稱、資料類型、串流、原點或位置來比對資料行,而不需要確切的欄位名稱。 資料行模式很有用的情節有兩種:

  • 內送的來源欄位經常變更時非常實用,特別是在變更文字檔或 NoSQL 資料庫中的資料行時。 此情節稱為結構描述漂移
  • 如果您想要對大型資料行群組執行一般作業。 例如,想要將資料行名稱中有「總計」的每個資料行轉換成雙精度浮點數。

衍生資料行和彙總中的資料行模式

若要在衍生資料行、彙總或視窗轉換中新增資料行模式,請按一下資料行清單上方的 [新增] 或現有衍生資料行旁邊的加號圖示。 選擇 [新增資料行模式]

Screenshot shows the plus icon to Add column pattern.

使用 [運算式建立器] 來輸入比對條件。 建立布林運算式,以根據資料行的 nametypestreamoriginposition 來比對資料行。 此模式會影響條件傳回 true 的任何資料行、漂移或定義。

Screenshot shows the Derived column's settings tab.

上述資料行模式會比對類型為雙精度浮點數的每一個資料行,並為每個相符項目建立一個衍生資料行。 藉由指出 $$ 作為資料行名稱欄位,都會以相同的名稱更新每個相符的資料行。 每個資料行的值是將現有的值四捨五入為兩個小數點。

若要確認比對條件正確,您可以在 [檢查] 索引標籤中驗證已定義資料行的輸出結構描述,或在 [資料預覽] 索引標籤中取得資料的快照集。

Screenshot shows the Output schema tab.

階層式模式比對

您也可以在複雜的階層式結構內建置模式比對。 展開區段 Each MoviesStruct that matches,其中系統會提示您輸入資料流中的每個階層。 然後,您可以為所選階層內的屬性建置比對模式。

Screenshot shows hierarchical column pattern.

壓平合併結構

當資料的結構較複雜,例如陣列、階層式結構和對應時,您可以使用壓平合併轉換來展開陣列,並將資料反正規化。 對於結構和對應,請使用具有資料行模式的衍生資料行轉換,從階層形成壓平合併的關聯式資料表。 您可以使用類似此樣本的資料行模式,將地理階層壓平合併為關聯式資料表形式:

Screenshot shows the Derived column's flatten structure.

選取和接收中以規則為基礎的對應

在來源中對應資料行並選取轉換時,您可以新增固定對應或以規則為基礎的對應。 根據資料行的 nametypestreamoriginposition 進行比對。 您可以結合固定和以規則為基礎的對應。 根據預設,所有大於 50 個資料行的投影都將預設為規則型對應,在每個資料行上進行比對並輸出輸入的名稱。

若要新增規則型對應,請按一下 [新增對應],然後選取 [規則型對應]

Screenshot shows Rule-based mapping selected from Add mapping.

每個規則型對應都需要兩個輸入:要比對的條件,以及每個對應資料行的名稱。 這兩個值都是透過運算式產生器輸入。 在左側運算式方塊中,輸入布林比對條件。 在右運算式方塊中,指定相符資料行將對應至哪些項目。

Screenshot shows a mapping.

使用 $$ 語法來參考相符資料行的輸入名稱。 以上圖為例,假設使用者想要比對名稱少於六個字元的所有字串資料行。 如果有一個傳入資料行的名稱為 test,運算式 $$ + '_short' 會將該資料行重新命名為 test_short。 如果這是唯一存在的對應,則不符合條件的所有資料行都將從輸出的資料中卸除。

模式會比對漂移和已定義的資料行。 若要查看規則所對應的定義資料行,請按一下規則旁的眼鏡圖示。 使用資料預覽來確認輸出。

Regex 對應

如果您按一下向下>形箭號圖示,您可以指定 RegEx 對應條件。 RegEx 對應條件會比對所有符合指定 RegEx 條件的資料行名稱。 這可以與標準規則型對應合併使用。

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

上述範例會比對 RegEx 模式 (r) 或任何包含小寫 r 的資料行名稱。 與標準以規則為基礎的對應類似,所有相符的資料行都會由右側的條件使用 $$ 語法來改變。

以規則為基礎的階層

如果您定義的投影具有階層,您可以使用規則型對應來對應階層子資料行。 指定要對應之子資料行的比對條件和複雜資料行。 每個相符的子資料行都會使用右側指定的 'Name as' 規則來輸出。

Screenshot shows a rule-based mapping using for a hierarchy.

上述範例會比對複雜資料行 a 的所有子資料行。 a 包含兩個子資料行 bc。 由於 'Name as' 條件是 $$,所以輸出結構描述將包括兩個資料行 bc

模式比對運算式值

  • $$ 會轉譯為執行階段每個相符項目的名稱或值。 將 $$ 視為與 this 相當的值
  • $0 會轉譯為在執行階段比對純量類型的目前資料行名稱。 針對階層式類型,$0 表示目前的相符資料行階層路徑。
  • name 代表每個內送資料行的名稱
  • type 代表每個內送資料行的資料類型。 您可以在這裡找到資料流程類型系統中的資料類型清單。
  • stream 代表與流程中每個資料流程或轉換相關聯的名稱
  • position 是資料流程中資料行的序數位置
  • origin 是產生或上次更新之資料行的轉換