對應資料流程中的查閱轉換
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
Azure Data Factory 和 Azure Synapse Pipelines 中均可使用資料流。 本文適用於對應資料流。 如果您不熟悉轉換作業,請參閱簡介文章使用對應資料流轉換資料。
使用查閱轉換在資料流程串流中參考另一個來源的資料。 查閱轉換會將相符資料的資料行附加到您的來源資料。
查閱轉換類似於左方外部聯結。 主要串流中的所有資料列將會存在於輸出串流中,並具有來自查閱串流的其他資料行。
組態
主要資料流: 資料的傳入資料。 此串流相當於聯結的左側。
查閱串流: 附加至主要串流的資料。 要新增的資料會由查閱條件決定。 這個串流相當於聯結的右側。
比對多個資料列: 如果啟用,在主要串流中具有多個相符項目的資料列就會傳回多個資料列。 否則,只會根據「相符」條件傳回單一資料列。
相符:只有在未選取 [符合多個資料列] 時才會顯示。 選擇要符合任何資料列、最初相符還是最後相符。 建議使用任何資料列,因為其執行速度最快。 如果選取了第一個資料列或最後一個資料列,您就必須指定排序條件。
查閱條件: 選擇要比對的資料行。 如果符合相等條件,則會將資料列視為相符。 暫留游標並選取 [計算資料行],以使用資料流程運算式語言來擷取值。
這兩個串流中的所有資料行都會包含在輸出資料中。 若要捨棄重複或不必要的資料行,請在查閱轉換之後新增選取轉換。 您也可以在接收轉換中捨棄或重新命名資料行。
不相等聯結
若要在查閱條件中使用條件運算子,例如不相等 (!=) 或大於 (>),請變更兩個資料行之間的運算子下拉式清單。 不相等聯結需要至少廣播兩個串流的其中一個,方法為使用 [最佳化] 索引標籤中的 [固定] 廣播。
分析符合的資料列
在查閱轉換之後,可使用函式 isMatch()
來查看查閱是否符合個別資料列。
此模式的範例是使用條件式分割轉換來分割 isMatch()
函式。 在上述範例中,相符資料列會通過最上方的串流,而不符合的資料列則會流經 NoMatch
串流。
測試查閱條件
在偵錯模式中使用資料預覽來測試查閱轉換時,請使用小型的已知資料集。 從大型資料集中取樣資料列時,您無法預測將讀取哪些資料列和索引鍵進行測試。 結果是不具確定性的,這表示您的聯結條件可能不會傳回任何相符項。
廣播最佳化
在聯結、查閱和存在轉換中,如果其中一個或兩個資料流納入背景工作角色節點記憶體中,您可以藉由啟用 [廣播] 來最佳化效能。 根據預設,Spark 引擎會自動決定是否要廣播一邊。 若要手動選擇廣播哪一邊,請選取 [固定]。
除非您的聯結遇到逾時錯誤,否則不建議透過 [關閉] 選項停用廣播。
快取的查閱
如果您是在相同的來源上執行多個較小的查閱,快取的接收和查閱可能是比查閱轉換更好的使用案例。 快取接收可能比較好的常見範例是在資料存放區上查閱最大值,並將錯誤碼與錯誤訊息資料庫比對。 如需詳細資訊,請了解快取接收和快取查閱。
資料流程指令碼
語法
<leftStream>, <rightStream>
lookup(
<lookupConditionExpression>,
multiple: { true | false },
pickup: { 'first' | 'last' | 'any' }, ## Only required if false is selected for multiple
{ desc | asc }( <sortColumn>, { true | false }), ## Only required if 'first' or 'last' is selected. true/false determines whether to put nulls first
broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
) ~> <lookupTransformationName>
範例
上述查閱設定的資料流程指令碼位於下列程式碼片段中。
SQLProducts, DimProd lookup(ProductID == ProductKey,
multiple: false,
pickup: 'first',
asc(ProductKey, true),
broadcast: 'auto')~> LookupKeys