azure-data-factory - 使用 7zip 在 Azure Functions App 中解压缩文件
问题描述
是否可以使用 Azure 数据工厂或 Functions App 从 .tar.gz 中提取文件以供 ADF 中的 ETL 进程摄取?
我尝试在 Functions Apps 中使用 7zip,它可以很好地提取上传到 Functions App 本身的测试 .tar.gz 文件,但对于存储在 Blob 容器中的文件会引发错误。
这是我在函数 run.ps1 中的命令
.\7za.exe x 1.tar.gz
#below,该文件是 Blob Container 中的一个 blob - 不起作用
.\7za.exe x $InputBlob
我收到的上述命令的错误
2020-09-11T16:06:42.721 [错误] 错误:程序“7za.exe”无法运行:仅在重定向标准输出时支持标准输出编码。在 D:\home\site\wwwroot\tools\run.ps1: 9 char:1+ .\7za.exe e $InputBlob+ ~~~~~~~~~~~~~~~~~~~~~~.Exception :Type : System.Management.Automation.ApplicationFailedExceptionErrorRecord :Exception :类型:System.Management.Automation.ParentContainsErrorRecordExceptionMessage:程序“7za.exe”无法运行:仅在重定向标准输出时支持 StandardOutputEncoding。在 D:\home\site\wwwroot\tools\run.ps1:9 char:1 + .\7za.exe e $InputBlob+ ~~~~~~~~~~~~~~~~~~~~~~.HResult : -2146233087CategoryInfo : ResourceUnavailable: (:) [], ParentContainsErrorRecordExceptionFullyQualifiedErrorId : NativeCommandFailedInvocationInfo :ScriptLineNumber :9OffsetInLine:1HistoryId:-1ScriptName:D:\home\site\wwwroot\tools\run.ps1Line : .\7za.exe e $InputBlobPositionMessage : 在 D:\home\site\wwwroot\tools\run.ps1:9 char:1+ .\7za.exe e $InputBlob+ ~~~~~~~~~~~~~~~~~~~~~~PSScriptRoot : D:\home\site\wwwroot\toolsPSCommandPath
解决方案
不幸的是,Azure 数据工厂中没有现成的功能来从 TAR 文件中提取内容。
这是一个现有的用户语音功能请求线程,我鼓励您对功能请求建议进行投票和/或评论,以提高功能实施的优先级。
但作为一种解决方法,您可以尝试使用 Azure 数据工厂的可扩展性功能来转换不受支持的文件。两个选项包括 Azure Functions 和使用 Azure Batch 的自定义任务(ADF 中的自定义活动)。
您的问题已经在微软问答平台上得到解答。
推荐阅读
- celery - Celery 任务代码是否需要存在于多台机器上?
- arrays - 我是否将传入数据列为复选框?
- android - 是否可以使用相同模型的 JSONObject 和 RealmObject 进行解析?
- javascript - 使用 jasmine marbles 时在 rxjs 订阅中测试代码
- spring-security - 使用standaloneSetup的MockMvc进行单元测试时如何启用GlobalMethodsSecurity
- c++ - 字符串替换后如何获取有效的迭代器
- java - 以下方法何时返回 2
- octave - 如何将向量转换为数组?
- javascript - 如何在 javascript 代码中使用 struts 标签
- reactjs - FlatList 未使用 React Hooks 和 Realm 更新