我正在 Visual Studio 中的 Azure 数据湖分析中运行 USQL 作业,并出现以下脚本错误。我工作的目的是使用 Azure blob REST api 从 Azure blob 读取 xml 文件并提取数据,然后在 azure 数据湖存储中生成 csv 文件。我没有看到任何错误帮助。谁能帮助我理解这个问题?
诊断代码:223412289
严重性:错误
组件:JobManager_User
来源:用户
ERRORID: VertexRetriedTooMany
消息:顶点重试次数过多
描述:顶点 SV1_Extract[0][0] 重试了 24 次。
分辨率:不适用
帮助链接:不适用
详细信息:顶点 SV1_Extract[0][0].v23 {B0AF5C27-21A5-4011-8044-09A4AB0642C4} 失败错误:函数不正确。
更新 - 有关我的用例的更多信息:
我正在尝试在我的 USQL 作业中使用“自定义用户定义的运算符”,因为我认为使用此功能可以轻松解决我的用例。
我的输入 CSV 文件放置在数据湖存储中,其中包含放置在 Azure blob 上的 XML 文件的一些值和路径。
在 USQL 作业中,我正在从 CSV 读取 XML 文件路径(使用 USQL),然后从 Azure blob 存储读取这些 XML 文件并提取值(使用 c# 后面的代码)并将我的输入文件与 XML 值合并并在 Azure 中生成新的 CSV 文件数据湖存储(再次使用 USQL)。
更新 2
我还尝试使用安装了 REST API 的 Windows Azure 存储 sdk 来访问后面代码中的 blob,并在运行作业时出现以下错误:
"errorId": "E_RUNTIME_USER_UNHANDLED_EXCEPTION_FROM_USER_CODE",
"message": "An unhandled exception from user code has been reported",
"description": "Unhandled exception from user code: \"The remote name could not be resolved: 'xxxxx.blob.core.windows.net'\"\nThe details includes more information including any inner exceptions and the stack trace where the exception was raised.",
"resolution": "Make sure the bug in the user code is fixed.",
"helpLink": "",
"details": "==== Caught exception Microsoft.WindowsAzure.Storage.StorageException\n\n at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext)\r\n\n at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.DownloadRangeToStream(Stream target, Nullable`1 offset, Nullable`1 length, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)\r\n\n at USQLAppForLogs.LogTable.GetValuesFromBlob(String bloburi)\r\n\n at USQLAppForLogs.LogTable.Process(IRow input, IUpdatableRow output)\r\n\n at ScopeEngine.SqlIpProcessor<Extract_0_Data0,SV1_Extract_out0>.GetNextRow(SqlIpProcessor<Extract_0_Data0\\,SV1_Extract_out0>* , SV1_Extract_out0* output) in d:\\data\\ccs\\jobs\\f030ffdf-fc4a-4780-aec5-9067dde49e85_v0\\sqlmanaged.h:line 1821\r\n\n at RunAndHandleClrExceptions(function<void __cdecl(void)>* code)\n\n==== Inner exception System.Net.WebException\n\nThe remote name could not be resolved: 'xxxxx.blob.core.windows.net'\n\n at System.Net.HttpWebRequest.GetResponse()\r\n\n at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext)"
请注意,相同的代码在本地运行良好,所以我认为我访问 blob 的代码没有任何问题。