GetMetadata 获取 Azure 数据工厂中的完整文件目录
GetMetadata to get the full file directory in Azure Data Factory
我正在处理一个用例,我想将加载到 Azure 数据库中的所有文件夹名称加载到不同的 "control" table,但在使用 GetMetadata activity正确。
此用例的目的是跳过所有旧文件夹(已加载),仅关注新文件夹并获取“.gz”文件并将其加载到 Azure 数据库中。哦,高级别我想我会使用 GetMetadata activity 将所有文件夹名称发送到存储过程。然后,该存储过程将加载状态为“1”(表示成功)的文件夹名称。
然后 table 将在一个单独的管道中使用,该管道用于将文件加载到数据库中。我会使用 Lookup activity 来与已加载的文件夹进行比较,如果其中一个不匹配,那么它将是从中获取文件的文件夹(源是 S3 存储桶)。
文件夹结构以 YYYY/MM/DD 格式嵌套(例如:2019/12/27,每天都会创建一个新文件夹并在其中放置一个 "gz" 文件)。
我使用 "GetMetadata" activity 指向已将文件夹加载到其中的 blob 存储创建了一个 ADF 管道。
但是,当我 运行 这个管道时,我只得到前三个文件夹名称:2019、2018、2017。
是否可以不仅获取顶级文件夹名称,而且可以一直向下到日级别?因此,输出不是“2019”,而是“2019/12/26”,然后下一个将是“2019/12/27”加上 2017 年和 2018 年的所有月份和日期。
如果有人遇到此问题,将不胜感激。
谢谢
根据 Get-Metadata Activity 文档中的陈述,childItems
只有来自特定路径的 returns 个元素,不会包括子文件夹中的项目。
我假设你必须使用ForEach Activity to loop the childItems
array layer by layer to flatten all structure. At the same time,use Set Variable Activity to concat the complete folder path. Then use IfCondition Activity,当你检测到元素类型是file
,而不是folder
,你可以调用你在问题中提到的SP。
在这种情况下,如果您有一个已定义且不变的文件夹结构,您也可以使用通配符占位符。
用作目录:storageroot / * / * / * / 文件名
例如我使用了csvFiles / * / * / * / * / * / * / *.csv
获取具有此结构的所有文件:
csvFiles/主题/副主题/国家/年/月/日
然后您将在此文件夹结构中获得 所有 个文件。
我正在处理一个用例,我想将加载到 Azure 数据库中的所有文件夹名称加载到不同的 "control" table,但在使用 GetMetadata activity正确。
此用例的目的是跳过所有旧文件夹(已加载),仅关注新文件夹并获取“.gz”文件并将其加载到 Azure 数据库中。哦,高级别我想我会使用 GetMetadata activity 将所有文件夹名称发送到存储过程。然后,该存储过程将加载状态为“1”(表示成功)的文件夹名称。
然后 table 将在一个单独的管道中使用,该管道用于将文件加载到数据库中。我会使用 Lookup activity 来与已加载的文件夹进行比较,如果其中一个不匹配,那么它将是从中获取文件的文件夹(源是 S3 存储桶)。
文件夹结构以 YYYY/MM/DD 格式嵌套(例如:2019/12/27,每天都会创建一个新文件夹并在其中放置一个 "gz" 文件)。
我使用 "GetMetadata" activity 指向已将文件夹加载到其中的 blob 存储创建了一个 ADF 管道。
但是,当我 运行 这个管道时,我只得到前三个文件夹名称:2019、2018、2017。
是否可以不仅获取顶级文件夹名称,而且可以一直向下到日级别?因此,输出不是“2019”,而是“2019/12/26”,然后下一个将是“2019/12/27”加上 2017 年和 2018 年的所有月份和日期。
如果有人遇到此问题,将不胜感激。
谢谢
根据 Get-Metadata Activity 文档中的陈述,childItems
只有来自特定路径的 returns 个元素,不会包括子文件夹中的项目。
我假设你必须使用ForEach Activity to loop the childItems
array layer by layer to flatten all structure. At the same time,use Set Variable Activity to concat the complete folder path. Then use IfCondition Activity,当你检测到元素类型是file
,而不是folder
,你可以调用你在问题中提到的SP。
在这种情况下,如果您有一个已定义且不变的文件夹结构,您也可以使用通配符占位符。
用作目录:storageroot / * / * / * / 文件名
例如我使用了csvFiles / * / * / * / * / * / * / *.csv 获取具有此结构的所有文件:
csvFiles/主题/副主题/国家/年/月/日
然后您将在此文件夹结构中获得 所有 个文件。