Azure数据工厂数据流:如何筛选具有多个值输入列

8fsztsew  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(123)

我所要做的基本上是在数据流中模拟SQL WHERE IN CLAUSE。我想将逗号分隔的值串传递到我的数据流中,即ptf_proc_link_id ="A,B,C"。

在数据流内部,我想使用这些值来过滤我的一个输入列:

这相当于在SQL SELECT * FROM my_delta_table中写入ptf_proc_link_id位于(A,B,C)中的内容。
然而,数据流文档只提示我可以过滤单个值,即ptf_proc_link_id = A。我尝试过使用intersect,但两个参数都需要是数组,在我的情况下,其中一个是列。我可以做一些类似ptf_proc_link_id = A或ptf_proc_link_id = B或ptf_proc_link_id = C的事情,但我永远不知道我会有多少个输入值,所以我不能硬编码。
对于数据流来说,这似乎是一个非常简单的用例,所以如果有人能告诉我正确的方法是什么,我将非常感激。
谢谢大家!

wgeznvg7

wgeznvg71#

您可以在ADF数据流中使用in()函数来过滤多个值。
语法:in(array of items,item to find)

  • 我试图用输入数据样本重现这个过程。

| 钥匙|类|姓名|标记|出生日期|
| - ------|- ------|- ------|- ------|- ------|
| 1个|1个|阿朱纳|五十|2015年1月2日|
| 第二章|1个|巴桑塔|四十七|2015年5月1日|
| 三个|1个|苏巴拉|五十四|2015年5月6日|
| 四个|第二章|甘达尔瓦|六十|2014年1月2日|
| 五个|第二章|乌伊瓦拉|五十五|2014年9月2日|
| 六个|第二章|萨纳达纳|六十四|2014年1月12日|
| 七|三个|斯里达马|七十五|二〇一三年二月一日|
| 八个|三个|须玉|八十|二〇一三年十二月十三日|
| 九|三个|瓦苏|八十一|二〇一三年十二月一日|
x1c 0d1x img:1源数据预览。

  • 我尝试使用key= 2,4,6筛选记录
  • 过滤条件可以in(['2','4','6'], key)in(array('2','4','6'), key)

    img:2过滤条件设置
    *过滤器转换的输出数据:


img:3过滤转换数据预览

  • 您还可以创建数组类型的数据流参数,并在过滤转换的过滤条件中给予该参数。

    img:4个数据流参数
  • 使用参数时的过滤条件为in($parameter1,key)

参考:data flow expression - in上的Microsoft文档

相关问题