Azure 数据工厂 V2 - 无法将通配符文件名与动态内容文件路径结合使用。是否有数据块 (ADB) 解决方案或其他 ADF 解决方案?
Azure Data Factory V2 - Cannot combine wildcard filenames with dynamic content filepath. Is there a databricks (ADB) solution or another ADF solution?
我目前有一个上游进程将近乎随机数量的 .zip 文件转储到 Azure Data Lake Storage,每个文件夹的名称类似于 FILES/PROCESSING/2019/04/19。
我创建了一个 Azure 数据工厂 V2 (ADF) 复制数据进程来动态抓取 "todays" 文件路径中的任何文件,但是组合动态内容文件路径和通配符文件名存在支持问题,如下所示。
在 ADF 中是否有解决此问题的方法?
谢谢!
这是我的链接服务的带有通配符文件名的动态文件路径:
FILES/PROCESSING/@formatDateTime(utcnow(),'yyyy')/@formatDateTime(utcnow(),'mm')/@formatDateTime(utcnow(),'dd')
通配符是:
/*.zip
我希望进程 运行,但收到此错误消息:
Activity CopyNewFiles failed: Failure happened on 'Source' side. ErrorCode=UserErrorFileNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Cannot find the 'Azure Data Lake Store' file. . Service request id: c0266e28-d841-40b7-b177-e67d5e5388a1 Response details: {"RemoteException":{"exception":"FileNotFoundException","message":"File/Folder does not exist: /FILES/PROCESSING/2019/04/30 [c0266e28-d841-40b7-b177-e67d5e5388a1][2019-04-30T12:08:55.0353825-07:00]","javaClassName":"java.io.FileNotFoundException"}},Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (404) Not Found.,Source=System,'
只有文件路径存在。如果我 运行 手动过程直接指向没有动态内容的文件,它 运行 就好了。
我查看了 ADF 文档,试图查看这是否是一个已知错误,但我没有看到任何符合要求的内容。
这应该适用于您的路径:
@Concat('FILES/PROCESSING/',utcnow('yyyy/MM/dd'))
和*.zip
在文件位中。
开头只有一个@。
您可以像现在这样在公式中嵌入函数,但是您需要像下面这样在每个管道位周围放置花括号,然后直接将值替换到代码中而无需连接:
FILES/PROCESSING/@{formatDateTime(utcnow(),'yyyy')}/@{formatDateTime(utcnow(),'MM')}/@{formatDateTime(utcnow(),'dd')}/*.zip
还要注意月份的大写 MM,mm 是分钟 :)
我目前有一个上游进程将近乎随机数量的 .zip 文件转储到 Azure Data Lake Storage,每个文件夹的名称类似于 FILES/PROCESSING/2019/04/19。
我创建了一个 Azure 数据工厂 V2 (ADF) 复制数据进程来动态抓取 "todays" 文件路径中的任何文件,但是组合动态内容文件路径和通配符文件名存在支持问题,如下所示。
在 ADF 中是否有解决此问题的方法?
谢谢!
这是我的链接服务的带有通配符文件名的动态文件路径:
FILES/PROCESSING/@formatDateTime(utcnow(),'yyyy')/@formatDateTime(utcnow(),'mm')/@formatDateTime(utcnow(),'dd')
通配符是:
/*.zip
我希望进程 运行,但收到此错误消息:
Activity CopyNewFiles failed: Failure happened on 'Source' side. ErrorCode=UserErrorFileNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Cannot find the 'Azure Data Lake Store' file. . Service request id: c0266e28-d841-40b7-b177-e67d5e5388a1 Response details: {"RemoteException":{"exception":"FileNotFoundException","message":"File/Folder does not exist: /FILES/PROCESSING/2019/04/30 [c0266e28-d841-40b7-b177-e67d5e5388a1][2019-04-30T12:08:55.0353825-07:00]","javaClassName":"java.io.FileNotFoundException"}},Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (404) Not Found.,Source=System,'
只有文件路径存在。如果我 运行 手动过程直接指向没有动态内容的文件,它 运行 就好了。
我查看了 ADF 文档,试图查看这是否是一个已知错误,但我没有看到任何符合要求的内容。
这应该适用于您的路径:
@Concat('FILES/PROCESSING/',utcnow('yyyy/MM/dd'))
和*.zip
在文件位中。
开头只有一个@。
您可以像现在这样在公式中嵌入函数,但是您需要像下面这样在每个管道位周围放置花括号,然后直接将值替换到代码中而无需连接:
FILES/PROCESSING/@{formatDateTime(utcnow(),'yyyy')}/@{formatDateTime(utcnow(),'MM')}/@{formatDateTime(utcnow(),'dd')}/*.zip
还要注意月份的大写 MM,mm 是分钟 :)