我有一个事件驱动的逻辑应用程序(blob事件),它使用路径读取块blob并将内容上载到Azure Data Lake。我注意到逻辑应用程序失败,413(RequestEntityTooLarge)读取一个大文件(~6 GB)。我知道逻辑应用程序有1024 MB的限制 - https://docs.microsoft.com/en-us/connectors/azureblob/但是有没有解决这种情况的工作?我正在处理的替代解决方案是将此步骤移至Azure Function并从blob获取内容。谢谢你的建议!
答案 0 :(得分:1)
为了其他可能正在寻找此类解决方案的人的利益。 我最终在C#中创建了一个Azure函数,因为我的设计动态地解析Blob名称并根据blob名称创建ADL结构。我使用chunked内存流来读取blob并使用多线程将其写入ADL,以便在10分钟内完成Azure Functions的加载。
答案 1 :(得分:0)
您应该考虑使用Azure文件连接器:https://docs.microsoft.com/en-us/connectors/azurefile/
目前处于预览状态,它对Blob的优势在于它没有大小限制。以上链接包含有关它的更多信息。
答案 2 :(得分:0)
如果您想使用Azure功能,我建议您在本文中查看一下:
您可以部署到Azure功能的AdlCopy
工具的独立版本。
因此,您的逻辑应用程序将调用此函数,该函数将运行命令将文件从blob存储区复制到数据湖工厂。我建议你使用powershell函数。
另一种选择是使用Azure Data Factory将文件复制到Data Lake:
您可以创建一个从blob存储中复制文件的作业:
有一个连接器可以触发从逻辑应用程序运行的数据工厂,因此您可能不需要azure功能,但似乎仍有一些限制: