azure 数据工厂 - 从另一个表和多个条件创建新列

问题描述 投票:0回答:1

使用 Azure 数据工厂,我希望从 blob 存储引入 csv 文件,稍微转换数据,然后保存到 azure sql。从我正在查看的教程来看,这看起来非常简单。复杂的情况出现在我希望完成的下一步中......

源文件:20,000行,100列

目标sql:20,000行,101列

我想添加一个新列。我以前的做法是使用 c# 编写的 azure 函数,但现在我想在数据工厂中完成此操作。

看起来“派生列”可以在数据工厂中添加列,但我的过程有点复杂。当使用 3 列查看源代码中的特定行时,我需要从另一个返回大约 5 个字段的 SQL 表中查找。然后将这些字段与原始行中的其他字段一起使用,我需要做的事情包括多个 if/then、一些 switch 语句等等。

有更好的方法吗?我试图远离存储过程。我的目标是使用像这样的流程的天蓝色方法。

如有任何建议,我们将不胜感激。

我认为这应该在管道的“复制数据”部分完成,但如果之后需要在不同的天蓝色功能中完成,我也同意。无论是最佳实践。

azure-data-factory
1个回答
0
投票

您可以根据您的逻辑使用数据流转换。

当查看源代码中的特定行时,使用 3 列,我需要从另一个返回大约 5 个字段的 sql 表中查找

数据流中的

加入转换可能适用于这种情况。将原始表和查找表作为两个源,并将 3 列作为连接列。您可以根据您的要求给出连接类型。

enter image description here

join后,对于多个条件,可以使用条件分割变换。在这里给出你的条件,数据就会分裂。

enter image description here

或者,您可以直接在数据流表达式中使用

iif()
case()
函数。进行派生列转换并在表达式生成器中使用它们。

enter image description here

通过此文档了解数据流表达式中的其他函数。

© www.soinside.com 2019 - 2024. All rights reserved.