修改 Azure 数据工厂中活动的输出

Modify output of an acitivity in Azure Data Factory

我想对 Azure 数据工厂中 activity 的输出进行简单的字符串转换。我当然可以为此使用 Databricks 笔记本,但我想要一个更简单、更轻便的解决方案。 Azure 数据工厂中是否有专门用于此目的的内置 activity?

无法直接修改或更改活动的输出。

在Data Factory中,如果你想实现那个,它会很复杂。没有更简单、更轻便的解决方案。此外,Azure 数据工厂中没有专门为此目的而内置的 activity。

数据工厂的解决方法如下:

  1. 将活动输出存储到JSON文件中,然后通过数据流修改JSON文件。其他人有post同样的问题,你可以搜索找到。步骤也有点复杂。

  2. 通过设置变量将输出传递给参数或变量。然后使用表达式 language/function 修改输出。表达式可能也很复杂。

Azure 数据工厂提供数量有限的 string functions 用于在管道中操作字符串。 concatreplacesplitsubstring 是一些主要的,可以让您做这样的事情

  • 从完整文件路径获取文件名(使用 lastIndexOf with '\'
  • 从完整文件路径获取扩展名(使用 lastIndexOf with '.'
  • 基本的查找和替换操作(使用replace
  • 字符串连接(使用concat

在这个例子中,我有一个名为 varName 的变量,其值为 'MetallicPriest'。我使用 Set Variable activity 来 transform 该变量到另一个字符串。如果你能告诉我那个字符串是什么,加分:

@replace(concat(substring(variables('varName'), 3, 2 ), substring(variables('varName'), 7, 3 ), substring(variables('varName'), 0, 1 ), replace(substring(variables('varName'), 10, 4 ),'e','') ), 'Pr', 'He')

还有collection functions like split, join and union which allows you to treat your strings like arrays and do some .

我认为它缺少一些基本的字符串函数,如 reversestuff、任何类型的正则表达式,您应该注意子字符串是基于 0 的(与 SQL 服务器不同) , 但也许你可以想出一些 黄金 .

Mapping Data Flows 提供了更广泛的字符串函数,但如果您的管道已经有计算可用,例如 SQL 数据库、Databricks、Azure Synapse Notebooks 等,请使用它们,因为它们提供更强大的字符串操作.