[英]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.