次の方法で共有


Visual Studio Code を使用してインライン Python Kusto 照会言語デバッグする

適用対象: ✅Microsoft FabricAzure データ エクスプローラー

python() プラグインを使用して、Kusto 照会言語 クエリに Python コードを埋め込むことができます。 プラグイン ランタイムは、分離された安全な Python 環境であるサンドボックスでホストされます。 python() プラグイン機能は、OSS Python パッケージの膨大なアーカイブKusto 照会言語ネイティブ機能を拡張します。 この拡張機能を使用すると、機械学習、人工知能、統計、時系列などの高度なアルゴリズムをクエリの一部として実行できます。

Kusto 照会言語 ツールは、Python アルゴリズムの開発とデバッグには適していません。 そのため、Jupyter、PyCharm、Visual Studio、Visual Studio Code など、お気に入りの Python 統合開発環境でアルゴリズムを開発します。 アルゴリズムが完了したら、KQL にコピーして貼り付けます。 このワークフローを改善および合理化するために、Kusto Explorer または Web UI クライアントは、KQL インライン Python コードを作成およびデバッグするために Visual Studio Code と統合できます。

Note

このワークフローは、比較的小さな入力テーブル (最大数 MB) のデバッグにのみ使用できます。 そのため、デバッグのために入力を制限する必要がある場合があります。 大きなテーブルを処理する必要がある場合は、| take| sample、または where rand() < 0.x を使用してデバッグできるように制限します。

前提条件

Visual Studio Code で Python デバッグを有効にする

  1. クライアント アプリケーションで、インライン Python を含むクエリにプレフィックス set query_python_debug; を付けます。

  2. クエリを実行します。

    • Kusto Explorer: Visual Studio Code は、 debug_python.py スクリプトを使用して自動的に起動されます。
    • Kusto Web UI:
      1. debug_python.pydf.txt、および kargs.txt をダウンロードして保存します。 ウィンドウで、[許可] を選択します。 選択したディレクトリにファイルを [保存] します。
      2. debug_python.pyを右クリックし、Visual Studio Code で開きます。 debug_python.py スクリプトには、KQL クエリからのインライン Python コードが含まれ、データフレームを df.txt から初期化し、パラメーターの辞書を kargs.txt から初期化するためにプリフィックスとしてテンプレート コードが付けられています。
  3. Visual Studio Code で、Visual Studio Code デバッガー ( Run>Start Debugging (F5)を起動し、 Python 構成を選択します。 デバッガーが起動し、インライン コードをデバッグするためのブレークポイントが自動的に設定されます。

  1. クライアント アプリケーションで、インライン Python を含むクエリにプレフィックス set query_python_debug; を付けます。

  2. クエリを実行します。

    • Kusto Explorer: Visual Studio Code は、 debug_python.py スクリプトを使用して自動的に起動されます。
    • KQL クエリセット:
      1. debug_python.pydf.txt、および kargs.txt をダウンロードして保存します。 ウィンドウで、[許可] を選択します。 選択したディレクトリにファイルを [保存] します。
      2. debug_python.pyを右クリックし、Visual Studio Code で開きます。 debug_python.py スクリプトには、KQL クエリからのインライン Python コードが含まれ、データフレームを df.txt から初期化し、パラメーターの辞書を kargs.txt から初期化するためにプリフィックスとしてテンプレート コードが付けられています。
  3. Visual Studio Code で、Visual Studio Code デバッガー ( Run>Start Debugging (F5)を起動し、 Python 構成を選択します。 デバッガーが起動し、インライン コードをデバッグするためのブレークポイントが自動的に設定されます。

Visual Studio Code でのインライン Python デバッグのしくみ

  1. クエリは、必要な | evaluate python() 句に到達するまで、サーバーで解析および実行されます。
  2. Python サンドボックスは呼び出されますが、コードを実行する代わりに、入力テーブル、パラメーターのディクショナリ、およびコードをシリアル化して、クライアントに送り返します。
  3. これら 3 つのオブジェクトは、選択したディレクトリ (Web UI) またはクライアントの %TEMP% ディレクトリ (Kusto Explorer) の 3 つのファイル df.txtkargs.txt、および debug_python.py に保存されます。
  4. Visual Studio Code が起動され、それぞれのファイルから df と kargs を初期化するプレフィックス コードを含む debug_python.py ファイルがプリロードされ、その後、KQL クエリに埋め込まれた Python スクリプトが続きます。

クエリの例

  1. クライアント アプリケーションで次の KQL クエリを実行します。

    range x from 1 to 4 step 1
    | evaluate python(typeof(*, x4:int), 
    'exp = kargs["exp"]\n'
    'result = df\n'
    'result["x4"] = df["x"].pow(exp)\n'
    , bag_pack('exp', 4))
    

    結果のテーブルを参照してください。

    x x4
    1 1
    2 16
    3 81
    4 256
  2. set query_python_debug; を使用して、クライアント アプリケーションで同じ KQL クエリを実行します。

    set query_python_debug;
    range x from 1 to 4 step 1
    | evaluate python(typeof(*, x4:int), 
    'exp = kargs["exp"]\n'
    'result = df\n'
    'result["x4"] = df["x"].pow(exp)\n'
    , bag_pack('exp', 4))
    
  3. Visual Studio Code が起動されます。

    Visual Studio Code を起動します。

  4. Visual Studio Code は、デバッグ コンソールで 'result' データフレームをデバッグして出力します。

    VS Code のデバッグ。

Note

Python サンドボックス イメージとローカル インストールに違いがある場合があります。 プラグインに対してクエリを実行し、特定のパッケージのサンドボックスイメージを確認します。

Note

Visual Studio Code デバッグ セッションの起動時にエラーが発生した場合は、既定のターミナル プロファイルをコマンド プロンプトに設定してみてください。

  • Ctrl + Shift + P キーを押してコマンド パレットを開きます。
  • 「ターミナル:デフォルトプロファイルを選択する」を検索し、「コマンド プロンプト」を選択します