次の方法で共有


ランタイムの変更による U-SQL ランタイムエラーのトラブルシューティング方法について説明します

重要

Azure Data Lake Analytics は 2024 年 2 月 29 日に廃止されました。 詳細については 、このお知らせを参照してください

データ分析の場合、組織は Azure Synapse Analytics または Microsoft Fabric を使用できます。

コンパイラ、オプティマイザー、ジョブ マネージャーを含む Azure Data Lake U-SQL ランタイムは、U-SQL コードを処理するものです。

U-SQL ランタイム バージョンの選択

Visual Studio、ADL SDK、または Azure Data Lake Analytics ポータルから U-SQL ジョブを送信すると、ジョブは現在使用可能な既定のランタイムを使用します。 U-SQL ランタイムの新しいバージョンは定期的にリリースされ、マイナー更新プログラムとセキュリティ修正プログラムの両方が含まれます。

カスタム ランタイム バージョンを選択することもできます。新しい更新プログラムを試す場合、古いバージョンのランタイムを使用する必要がある、または報告された問題の修正プログラムが提供されていたため、通常の新しい更新プログラムを待つ必要がないためです。

注意事項

既定とは異なるランタイムを選択すると、U-SQL ジョブが中断される可能性があります。 これらの他のバージョンは、テストにのみ使用してください。

まれに、Microsoft サポートは別のバージョンのランタイムをアカウントの既定値としてピン留めできます。 できるだけ早くこのピンを元に戻してください。 そのバージョンにピン留めされたままの場合は、後日有効期限が切れます。

ジョブの実行を監視し、U-SQL ランタイム バージョンを確認する

過去のジョブがアカウントのジョブ履歴で使用したランタイム バージョンの履歴は、Visual Studio のジョブ ブラウザーまたは Azure portal のジョブ履歴を使用して確認できます。

  1. Azure portal で、Data Lake Analytics アカウントに移動します。
  2. [ すべてのジョブの表示] を選択します。 アカウント内のすべてのアクティブなジョブと最近完了したジョブの一覧が表示されます。
  3. 必要に応じて、[ フィルター] を選択して、 時間範囲ジョブ名、および 作成者 の値でジョブを検索できます。
  4. 完了したジョブで使用されているランタイムを確認できます。

過去のジョブのランタイム バージョンの表示

使用可能なランタイム バージョンは、時間の経過と同時に変化します。 既定のランタイムは常に "default" と呼ばれ、以前のランタイムは少なくともしばらくの間使用でき、さまざまな理由で特別なランタイムを使用できるようにします。 明示的な名前付きランタイムは、通常、次の形式に従います (斜体は可変部分に使用され、[] は省略可能な部分を示します)。

release_YYYYMMDD_adl_buildno[_modifier]

たとえば、release_20190318_adl_3394512_2は、2019 年 3 月 18 日のランタイム リリースのビルド 3394512の 2 番目のバージョンを意味し、release_20190318_adl_3394512_privateは同じリリースのプライベート ビルドを意味します。 注: この日付は、そのリリースに対して最終チェックインが行われた日時に関連しており、必ずしも公式のリリース日とは限りません。

U-SQL ランタイムのバージョンに関する問題のトラブルシューティング

次の 2 つのランタイム バージョンの問題が発生する可能性があります。

  1. スクリプトまたは一部のユーザー コードは、あるリリースから次のリリースに動作を変更しています。 このような破壊的変更は、通常、リリース ノートの公開に先立って伝達されます。 このような破壊的変更が発生した場合は、Microsoft サポートに連絡してこの破壊的動作を報告し (まだ文書化されていない場合)、以前のランタイム バージョンに対してジョブを送信してください。

  2. 既定以外のランタイムを明示的または暗黙的に使用していて、そのランタイムがしばらく経ってあなたのアカウントに固定されてから削除されました。 ランタイムが見つからない場合は、現在の既定のランタイムで実行するようにスクリプトをアップグレードします。 時間が必要な場合は、Microsoft サポートにお問い合わせください

既知の問題

  1. USQL スクリプトで Newtonsoft.Json ファイル バージョン 12.0.3 以降を参照すると、次のコンパイル エラーが発生します。

    「申し訳ございません。Data Lake Analytics アカウントで実行されているジョブの実行速度が遅くなったり、完了に失敗したりする可能性があります。 予期しない問題により、この機能が Azure Data Lake Analytics アカウントに自動的に復元されなくなります。 Azure Data Lake のエンジニアに調査を依頼されました。"

    呼び出し履歴に含まれる内容:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    解決策: Newtonsoft.Json ファイル v12.0.2 以下を使用します。

  2. ストアに一時ファイルとフォルダーが表示される場合があります。 これらは通常のジョブ実行の一部として生成されますが、通常は顧客に表示される前に削除されます。 まれでランダムな特定の状況では、表示されたままになる可能性があります。 最終的に削除され、ユーザー ストレージの一部としてカウントされたり、いかなる形式の料金も生成されたりすることはありません。 顧客のジョブ ロジックによっては、問題が発生する可能性があります。 たとえば、ジョブがフォルダー内のすべてのファイルを列挙し、ファイル 一覧を比較すると、予期しない一時ファイルが存在するため失敗する可能性があります。 同様に、ダウンストリーム ジョブが特定のフォルダーのすべてのファイルを列挙して処理を進める場合は、一時ファイルを列挙することもできます。

    解決策: 修正は、一時ファイルが現在の出力フォルダーではなくアカウント レベルの一時フォルダーに格納されるランタイムで識別されます。 一時ファイルはこの新しい一時フォルダーに書き込まれ、ジョブの実行時に削除されます。
    この修正は顧客データを処理するため、リリース前に MSFT 内でこの修正プログラムを適切に検証することが重要です。 この修正プログラムは、2021 年半ばにベータ ランタイムとして、2021 年後半に既定のランタイムとして利用できるようになる予定です。

こちらも参照ください