我正在尝试从位于 Azure Blob 存储 中的 DLL 创建数据湖分析数据库程序集。
根据 USQL 语言引用指南,这是可能的,尽管没有给出任何关于需要进入 FROM 引用的示例... https://msdn.microsoft.com/en-us/library/azure/mt763293.aspx
这是我的 USQL 代码片段。
CREATE ASSEMBLY IF NOT EXISTS [dbo].[PurpleFrog.DataLakeHelperFunctions]
FROM "https://RemovedActual.net/datafactorysupportingfiles/PurpleFrog.DataLakeHelperFunctions.dll";
如果我在 Data Lake Storage 的上下文中引用 DLL,我就可以成功创建程序集。像这样:
CREATE ASSEMBLY IF NOT EXISTS [dbo].[PurpleFrog.DataLakeHelperFunctions]
FROM "Assemblies/PurpleFrog.DataLakeHelperFunctions.dll";
这可行,可能是因为 Visual Studio 知道我的 Data Lake 本地根目录所在的位置等。但是我不希望 DLL 存储在此处。
所以...
我尝试更改 Blob 存储容器的访问权限以允许公共(public)读取访问。在本地峰会期间出现以下错误:
E_CSC_USER_CANNOTREADASSEMBLY: Cannot create assembly 'dbo.[PurpleFrog.DataLakeHelperFunctions]' because file 'https://RemovedActual.net/datafactorysupportingfiles/PurpleFrog.DataLakeHelperFunctions.dll' could not be read.
我还尝试为该文件创建共享访问签名 URI。在本地峰会期间出现此错误:
E_CSC_USER_INVALIDFILENAME: Invalid file name: 'https://RemovedActual.net/datafactorysupportingfiles/PurpleFrog.DataLakeHelperFunctions.dll?st=2016-11-28T09%3A52%3A00Z&se=2016-11-29T09%3A52%3A00Z&sp=r&sv=2015-12-11&sr=c&sig=RemovedActual'. Illegal characters in path.
我不确定我还能在这里做什么来引用该 DLL。语言指南有误吗?这实际上可能吗?我错过了什么?
非常感谢您的时间和帮助。
最佳答案
U-SQL 目前仅理解 wasb
和 adl
URI 方案,而不理解 http(s)
。
您可以使用指向您的 blob 存储容器和 dll 的 wasb
方案吗?
例如,
CREATE ASSEMBLY IF NOT EXISTS [dbo].[PurpleFrog.DataLakeHelperFunctions]
FROM "wasb://container@account/helperfunctions/DataLakeHelperFunctions.dll";
请注意,您必须使用 ADL 帐户注册 Blob 商店帐户(可以通过门户进行注册)。
关于azure - 从 Azure Blob 存储中的 DLL 创建 USQL 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842170/