Partilhar via


Depurar a Linguagem de Consultas Kusto em Python inline usando Visual Studio Code

Alterne entre serviços usando a lista suspensa Version. Saiba mais sobre navegação.
Aplica-se a: ✅ Microsoft Fabric ✅ Azure Data Explorer

Pode incorporar código Python em consultas da Kusto Query Language usando o plugin python(). O runtime do plugin aloja num sandbox, um ambiente Python isolado e seguro. A capacidade do plugin python() estende as funcionalidades nativas da Kusto Query Language com o enorme arquivo de pacotes OSS Python. Essa extensão permite executar algoritmos avançados, como aprendizado de máquina, inteligência artificial, estatística e séries temporais como parte da consulta.

As ferramentas Kusto Query Language não são convenientes para desenvolver e depurar algoritmos Python. Portanto, desenvolva o algoritmo em seu ambiente de desenvolvimento favorito integrado ao Python, como Jupyter, PyCharm, Visual Studio ou Visual Studio Code. Quando o algoritmo estiver completo, copie e cole no KQL. Para melhorar e simplificar esse fluxo de trabalho, os clientes Kusto Explorer ou Web UI podem se integrar ao Visual Studio Code para criar e depurar código Python inline KQL.

Observação

Esse fluxo de trabalho só pode ser usado para depurar tabelas de entrada relativamente pequenas (até alguns MB). Por isso, pode ser necessário limitar a entrada para depuração. Se precisares de processar uma tabela grande, limita-a para depuração usando | take, | sample, ou where rand() < 0.x.

Pré-requisitos

Habilitar depuração Python no Visual Studio Code

  1. Em seu aplicativo cliente, prefixe uma consulta contendo Python embutido com set query_python_debug;

  2. Executar a consulta.

    • Kusto Explorer: Visual Studio Code é iniciado automaticamente com o script debug_python.py .
    • Kusto Web UI:
      1. Transfira e guarde debug_python.py, df.txte kargs.txt. Na janela, selecione Permitir. Salve os arquivos no diretório selecionado.
      2. Clique com o botão direito do mouse em debug_python.py e abra com o Visual Studio Code. O script debug_python.py contém o código Python embutido, da consulta KQL, prefixado pelo código do modelo para inicializar o dataframe de entrada do df.txt e o dicionário de parâmetros do kargs.txt.
  3. No Visual Studio Code, inicie o depurador de código do Visual Studio: Run>Start Debugging (F5), selecione Configuração do Python . O depurador é iniciado e define automaticamente um ponto de interrupção para depurar o código embutido.

  1. Em seu aplicativo cliente, prefixe uma consulta contendo Python embutido com set query_python_debug;

  2. Executar a consulta.

    • Kusto Explorer: Visual Studio Code é iniciado automaticamente com o script debug_python.py .
    • Conjunto de consultas KQL:
      1. Transfira e guarde debug_python.py, df.txte kargs.txt. Na janela, selecione Permitir. Salve os arquivos no diretório selecionado.
      2. Clique com o botão direito do mouse em debug_python.py e abra com o Visual Studio Code. O script debug_python.py contém o código Python embutido, da consulta KQL, prefixado pelo código do modelo para inicializar o dataframe de entrada do df.txt e o dicionário de parâmetros do kargs.txt.
  3. No Visual Studio Code, inicie o depurador de código do Visual Studio: Run>Start Debugging (F5), selecione Configuração do Python . O depurador é iniciado e define automaticamente um ponto de interrupção para depurar o código embutido.

Como funciona a depuração embutida do Python no Visual Studio Code?

  1. A consulta é analisada e executada no servidor até que a cláusula necessária | evaluate python() seja atingida.
  2. A sandbox Python é invocada, mas em vez de executar o código, serializa a tabela de entrada, o dicionário de parâmetros e o código e os envia de volta para o cliente.
  3. Esses três objetos são salvos em três arquivos: df.txt, kargs.txte debug_python.py no diretório selecionado (Web UI) ou no diretório %TEMP% cliente (Kusto Explorer).
  4. O Visual Studio Code é iniciado, pré-carregado com o arquivo debug_python.py que contém um código de prefixo para inicializar df e kargs de seus respetivos arquivos, seguido pelo script Python incorporado na consulta KQL.

Exemplo de consulta

  1. Execute a seguinte consulta KQL em seu aplicativo cliente:

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

    Veja a tabela resultante:

    x x4
    1 1
    2 16
    3 81
    4 256
  2. Execute a mesma consulta KQL em seu aplicativo cliente usando set query_python_debug;:

    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. O Visual Studio Code é iniciado:

    inicie o Visual Studio Code.

  4. O Visual Studio Code depura e imprime o dataframe 'result' no console de depuração:

    Depuração do VS Code.

Observação

Pode haver diferenças entre a imagem de sandbox do Python e sua instalação local. Verifique a imagem da sandbox para pacotes específicos consultando o plugin.

Observação

Caso haja erros ao iniciar a sessão de depuração do Visual Studio Code, tente definir o perfil de terminal padrão para o prompt de comando:

  • Pressione CTRL + SHIFT + P para abrir a Paleta de comandos.
  • Pesquise por "Terminal: Selecionar Perfil Padrão" e selecione "Prompt de Comando"