簡體   English   中英

Azure 數據工廠數據流:如何篩選具有多個值的輸入列

[英]Azure Data Factory Data Flow: how to filter input column with multiple values

我想做的基本上是在數據流中模擬 SQL WHERE IN CLAUSE 的東西。 我想將逗號分隔的字符串值傳遞到我的數據流中,即 ptf_proc_link_id = "A, B, C"。

在此處輸入圖像描述

在數據流內部,我想使用這些值來過濾我的輸入列之一:

在此處輸入圖像描述

這等同於在 SQL 中編寫 SELECT * FROM my_delta_table where ptf_proc_link_id in (A, B, C)。

然而,數據流文檔只提示我可以過濾單個值,即 ptf_proc_link_id = A。我嘗試使用相交,但兩個參數都需要是數組,在我的例子中,其中一個是一列。 我可以做類似 ptf_proc_link_id = A OR ptf_proc_link_id = B OR ptf_proc_link_id = C 的事情,但我不知道我會有多少輸入值,所以我不能硬編碼。

這似乎是一個非常簡單的數據流用例,所以如果有人能向我解釋正確的方法是什么,我將非常感激。

謝謝!

您可以在 ADF 數據流中使用in()函數來過濾多個值。

語法: in(array of items,item to find)

  • 我試圖用示例輸入數據重現這一點。
鑰匙 班級 姓名 標記 出生日期
1個 1個 阿周那 50 2015 年 1 月 2 日
2個 1個 巴桑塔 47 5/1/2015
3個 1個 蘇巴拉 54 5/6/2015
4個 2個 干闥婆 60 2014 年 1 月 2 日
5個 2個 烏伊瓦拉 55 9/2/2014
6個 2個 薩那達那 64 2014 年 1 月 12 日
7 3個 斯里達瑪 75 2013 年 1 月 2 日
8個 3個 須玉 80 13/12/2013
9 3個 瓦蘇 81 2013 年 1 月 12 日

在此處輸入圖像描述 img:1 源數據預覽。

  • 我嘗試使用 key=2,4,6 過濾記錄

  • 過濾條件可以指定為in(['2','4','6'], key)in(array('2','4','6'), key)在此處輸入圖像描述 img:2 過濾條件設置

  • 過濾器轉換的輸出數據:

在此處輸入圖像描述 img:3 Filter Transformation數據預覽

  • 您也可以創建一個數組類型的數據流參數,並在過濾轉換的過濾條件中賦予該參數。在此處輸入圖像描述 img:4個數據流參數

  • 使用參數時的過濾條件為in($parameter1,key)

參考資料:關於data flow expression - in Microsoft 文檔- 在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM