2

Visual Studio から Azure データ レイク分析で USQL ジョブを実行していますが、以下のスクリプト エラーが発生します。私の仕事の目的は、Azure BLOB REST API を使用して Azure BLOB から xml ファイルを読み取り、データを抽出してから、Azure データ レイク ストアに csv ファイルを生成することです。エラーでヘルプが表示されません。この問題を理解するのを手伝ってくれる人はいますか?

診断コード: 223412289

重大度: エラー

コンポーネント: JobManager_User

ソース: ユーザー

エラー ID: VertexRetriedTooMany

メッセージ: 頂点の再試行回数が多すぎます

説明: 頂点 SV1_Extract[0][0] が 24 回再試行されました。

解決策: 該当なし

ヘルプリンク: 該当なし

詳細: Vertex SV1_Extract[0][0].v23 {B0AF5C27-21A5-4011-8044-09A4AB0642C4} が失敗しました。エラー: 関数が正しくありません。

更新 - 私のユースケースに関する詳細情報:

この機能を使用してユース ケースを簡単に解決できると思うので、USQL ジョブで「カスタム ユーザー定義演算子」を使用しようとしています。

私の入力 CSV ファイルは、Azure BLOB に配置された XML ファイルのいくつかの値とパスを含むデータ レイク ストアに配置されます。

USQL ジョブでは、(USQL を使用して) CSV から XML ファイル パスを読み取り、次に Azure BLOB ストレージからそれらの XML ファイルを読み取り、(コード ビハインド C# を使用して) 値を抽出し、入力ファイルを XML 値とマージして、Azure で新しい CSV ファイルを生成しています。データ レイク ストア (再び USQL を使用)。

更新 2

また、コード ビハインドで BLOB にアクセスするために REST API の代わりに Windows Azure ストレージ SDK を使用しようとしましたが、実行中のジョブで次のエラーが発生しました。

  "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)"

同じコードがローカルで正常に動作することに注意してください。そのため、ブロブにアクセスしているコードに問題はないと思います。

4

2 に答える 2

2

更新された情報に答えます。

コードがローカルで動作する理由は、サービスの YARN レイヤーが現在課している外部呼び出しの制限がローカル実行によって現在課されていないためです。

YARN レイヤーは、コードが http または REST 呼び出しを介して到達することを許可しません。セキュリティ上の理由から、コンテナは外部リソースにアクセスできません。

したがって、私の提案は、次の 2 つのいずれかを実行することです (どちらの場合も、ブロブ ストア アカウントを追加のデータ ソースとして登録する必要があります)。

  1. ブロブ ストア データの wasb: URI で EXTRACT を使用するスクリプト生成スクリプトを (U-SQL、Powershell、Python、または任意のスクリプト生成言語を使用して) 記述します。

  2. ファイルが同じスキーマを持ち、何らかのパス パターンに従って編成されている場合、ファイル セット パターンを使用して、事前に正確なファイル名がわからないファイル セットを参照することもできます。

現在、U-SQL はコンパイル時にすべてのファイル名を解決できると想定していることに注意してください。

ただし、役に立たないエラーメッセージについていくつかのバグを報告します。また、ファイルをより柔軟に読み取る機能をリクエストしたい場合は、http://aka.ms/adlfeedbackにアクセスして、ユース ケース シナリオと共にリクエストを提出することをお勧めします。そうすれば、他の人があなたの提案に投票することができ、計画において機能の優先順位を付けるのに役立ちます.

于 2015-12-30T20:38:01.940 に答える