在對應資料流程中使用資料行模式
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費啟動新的試用版!
數個對應資料流程轉換可讓您根據模式 (而不是硬式編碼的資料行名稱) 參考範本資料行。 此比對稱為資料行模式。 您可以定義模式,根據名稱、資料類型、串流、原點或位置來比對資料行,而不需要確切的欄位名稱。 資料行模式很有用的情節有兩種:
- 內送的來源欄位經常變更時非常實用,特別是在變更文字檔或 NoSQL 資料庫中的資料行時。 此情節稱為結構描述漂移。
- 如果您想要對大型資料行群組執行一般作業。 例如,想要將資料行名稱中有「總計」的每個資料行轉換成雙精度浮點數。
衍生資料行和彙總中的資料行模式
若要在衍生資料行、彙總或視窗轉換中新增資料行模式,請按一下資料行清單上方的 [新增] 或現有衍生資料行旁邊的加號圖示。 選擇 [新增資料行模式]。
使用 [運算式建立器] 來輸入比對條件。 建立布林運算式,以根據資料行的 name
、type
、stream
、origin
和 position
來比對資料行。 此模式會影響條件傳回 true 的任何資料行、漂移或定義。
上述資料行模式會比對類型為雙精度浮點數的每一個資料行,並為每個相符項目建立一個衍生資料行。 藉由指出 $$
作為資料行名稱欄位,都會以相同的名稱更新每個相符的資料行。 每個資料行的值是將現有的值四捨五入為兩個小數點。
若要確認比對條件正確,您可以在 [檢查] 索引標籤中驗證已定義資料行的輸出結構描述,或在 [資料預覽] 索引標籤中取得資料的快照集。
階層式模式比對
您也可以在複雜的階層式結構內建置模式比對。 展開區段 Each MoviesStruct that matches
,其中系統會提示您輸入資料流中的每個階層。 然後,您可以為所選階層內的屬性建置比對模式。
壓平合併結構
當資料的結構較複雜,例如陣列、階層式結構和對應時,您可以使用壓平合併轉換來展開陣列,並將資料反正規化。 對於結構和對應,請使用具有資料行模式的衍生資料行轉換,從階層形成壓平合併的關聯式資料表。 您可以使用類似此樣本的資料行模式,將地理階層壓平合併為關聯式資料表形式:
選取和接收中以規則為基礎的對應
在來源中對應資料行並選取轉換時,您可以新增固定對應或以規則為基礎的對應。 根據資料行的 name
、type
、stream
、origin
和 position
進行比對。 您可以結合固定和以規則為基礎的對應。 根據預設,所有大於 50 個資料行的投影都將預設為規則型對應,在每個資料行上進行比對並輸出輸入的名稱。
若要新增規則型對應,請按一下 [新增對應],然後選取 [規則型對應]。
每個規則型對應都需要兩個輸入:要比對的條件,以及每個對應資料行的名稱。 這兩個值都是透過運算式產生器輸入。 在左側運算式方塊中,輸入布林比對條件。 在右運算式方塊中,指定相符資料行將對應至哪些項目。
使用 $$
語法來參考相符資料行的輸入名稱。 以上圖為例,假設使用者想要比對名稱少於六個字元的所有字串資料行。 如果有一個傳入資料行的名稱為 test
,運算式 $$ + '_short'
會將該資料行重新命名為 test_short
。 如果這是唯一存在的對應,則不符合條件的所有資料行都將從輸出的資料中卸除。
模式會比對漂移和已定義的資料行。 若要查看規則所對應的定義資料行,請按一下規則旁的眼鏡圖示。 使用資料預覽來確認輸出。
Regex 對應
如果您按一下向下>形箭號圖示,您可以指定 RegEx 對應條件。 RegEx 對應條件會比對所有符合指定 RegEx 條件的資料行名稱。 這可以與標準規則型對應合併使用。
上述範例會比對 RegEx 模式 (r)
或任何包含小寫 r 的資料行名稱。 與標準以規則為基礎的對應類似,所有相符的資料行都會由右側的條件使用 $$
語法來改變。
以規則為基礎的階層
如果您定義的投影具有階層,您可以使用規則型對應來對應階層子資料行。 指定要對應之子資料行的比對條件和複雜資料行。 每個相符的子資料行都會使用右側指定的 'Name as' 規則來輸出。
上述範例會比對複雜資料行 a
的所有子資料行。 a
包含兩個子資料行 b
和 c
。 由於 'Name as' 條件是 $$
,所以輸出結構描述將包括兩個資料行 b
和 c
。
模式比對運算式值
$$
會轉譯為執行階段每個相符項目的名稱或值。 將$$
視為與this
相當的值$0
會轉譯為在執行階段比對純量類型的目前資料行名稱。 針對階層式類型,$0
表示目前的相符資料行階層路徑。name
代表每個內送資料行的名稱type
代表每個內送資料行的資料類型。 您可以在這裡找到資料流程類型系統中的資料類型清單。stream
代表與流程中每個資料流程或轉換相關聯的名稱position
是資料流程中資料行的序數位置origin
是產生或上次更新之資料行的轉換