Azure 数据工厂:如何在转换数据流中实现嵌套 sql 查询

Posted

技术标签:

【中文标题】Azure 数据工厂:如何在转换数据流中实现嵌套 sql 查询【英文标题】:Azure Datafactory: How to implement nested sql query in transformation data flow 【发布时间】:2022-01-10 21:06:21 【问题描述】:

[![在此处输入图像描述][1]][1] 我有两个流 customercustomercontact。我是天蓝色数据工厂的新手。我只想知道数据流转换中的哪个活动会达到下面的sql查询结果。

(选择 * FROM客户联系方式 客户在哪里 (选择客户ID 来自客户) ORDER BY 时间戳 DESC 限制 1)

我可以利用 Exist 转换进行内部查询,但我需要一些帮助,了解如何在对客户联系数据进行排序后获取第一行。所以,基本上我正在寻找一种在数据流中添加 limit/Top/Offset 子句的方法.

【问题讨论】:

您的查询只会返回最近客户的联系方式..,您打算如何处理返回的联系记录? 是的,它将返回最近的客户联系方式。我已经加入了另一张桌子。我需要对上述查询进行数据流转换。 【参考方案1】:

您可以通过不同的转换实现数据流中给定查询的转换。

对于排序,您可以使用排序转换。在这里您可以选择升序或降序。

对于前几条记录,您可以使用排名转换。

对于“IN”子句,您可以使用 Exists 转换。

参考 - https://docs.microsoft.com/en-us/azure/data-factory/data-flow-rank

这是我在 SQL 中作为源的示例数据

我使用了等级转换。

在排名转换后,又添加了一列,即 RankColumn。

现在只选择我使用过滤器行修饰符的前 1 条记录。我使用equals(RankColumn,1) 表达式来选择Top 1 记录。

现在终于使用 Sink 活动并运行管道。

【讨论】:

以上是关于Azure 数据工厂:如何在转换数据流中实现嵌套 sql 查询的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?

Azure 数据工厂:如何从数据流转换中的流中获取第一行

访问元数据会导致 Azure 数据工厂的嵌套管道

如何强制 Azure 数据工厂数据流使用 Databricks

在 Azure 数据工厂管道中处理 Null 值

如何通过在 swift 中实现观察者从 Firebase 实时数据库中获取嵌套数据