繁体   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