【问题标题】:Check if the input file names with the file names in the config table检查输入文件名是否与配置表中的文件名
【发布时间】:2022-01-12 02:06:42
【问题描述】:

我有一个包含许多文件的文件夹,我在 sql 数据库中有一个配置表,其中包含我需要加载到 Azure Blob 存储的文件名列表。

我尝试使用“获取元数据”活动从源文件夹中获取文件名,然后使用过滤器活动过滤文件名,但这样我必须在过滤器中硬编码文件名。

有人可以告诉我一种方法吗?

【问题讨论】:

  • 有点混乱,这个文件夹在哪里?,你说的 load 是什么意思?是否要使用配置表作为文件列表的参考从一个容器复制到 Azure Blob 存储中的另一个容器。请分享您当前设置的一些屏幕截图以及到目前为止您已配置的内容
  • 很抱歉给您带来了困惑。我在共享文件夹中有源文件。要加载到 blob 存储位置的文件名列表位于 sql 表中,我只需将 sqltable 中列出的这些名称的文件复制到 Azure blob 存储。
  • 如果回答对您有帮助,可以Accept it as an Answer,(点击回答旁边的复选标记将其从灰色切换为已填充。)以便遇到相同问题的其他人可以找到这个解决方案并解决他们的问题

标签: filter azure-data-factory lookup


【解决方案1】:

这里是一个例子:

我的文件夹中有以下文件。

sql 配置表

中的以下内容

这就是示例管道的样子。

1. 查找来自 sql 配置表并使用 foreach actvity 的文件列表 附加到数组变量。在我的示例中,它位于config_files。

2. 使用 GetMetadata,列出文件夹中的 childItems,并将文件名追加到另一个多变的。在我的例子中是files

3. 使用 SetVariable 活动存储结果,即与配置表中的条目匹配的文件。

表达式:@intersection(variables('files'),variables('config_files'))

【讨论】:

  • 感谢 KarthikBhyresh-MT 的帮助。我遵循了您的方法,但遇到了错误。对不起,我是 ADF 的新手。在第二个 for-each 循环中,错误消息是错误详细信息错误代码 InvalidTemplate 失败类型用户配置问题详细信息函数“长度”期望其参数是数组或字符串。提供的值是“对象”类型。
  • 我能够解决错误,但附加变量没有返回任何输出。谢谢
  • 好的,你在从Childitems 数组中追加file names 时出错了?
  • 所以 ForEachActivity 设置应该将此作为其 Items 属性值 @activity('Get Metadata1').output.childItems i.stack.imgur.com/vRDbv.png 和内部 foreach 是我回答的第 7 个屏幕截图
  • 如果它仍然是空的,这意味着我猜容器或文件夹中没有文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 2012-04-18
  • 1970-01-01
  • 2018-03-12
  • 2011-11-13
  • 2022-10-21
  • 2017-07-29
相关资源
最近更新 更多