Compartir vía


Depuración de Lenguaje de consulta Kusto Python insertado mediante Visual Studio Code

Se aplica a: ✅Microsoft FabricAzure Data Explorer

Puede insertar código de Python en Lenguaje de consulta Kusto consultas mediante el complemento python(). El entorno de ejecución del complemento se hospeda en un espacio aislado, un entorno de Python aislado y seguro. La funcionalidad del complemento python() amplía Lenguaje de consulta Kusto funcionalidades nativas con el enorme archivo de paquetes de Python del sistema operativo. Esta extensión permite ejecutar algoritmos avanzados —tales como aprendizaje automático, inteligencia artificial, estadística y serie temporal— como parte de la consulta.

Lenguaje de consulta Kusto herramientas no son cómodas para desarrollar y depurar algoritmos de Python. Por lo tanto, desarrolle el algoritmo en su entorno de desarrollo integrado de Python favorito, como Jupyter, PyCharm, Visual Studio o Visual Studio Code. Una vez completado el algoritmo, lo copia y lo pega en KQL. Para mejorar y simplificar este flujo de trabajo, los clientes de Kusto Explorer o interfaz de usuario web se pueden integrar con Visual Studio Code para crear y depurar código de Python insertado de KQL.

Nota:

Este flujo de trabajo solo se puede usar para depurar tablas de entrada relativamente pequeñas (unos pocos MB). Por lo tanto, puede que necesite limitar la entrada para la depuración. Si necesita procesar una tabla grande, limítela para depuración mediante | take, | sample o where rand() < 0.x.

Requisitos previos

Habilitación de la depuración de Python en Visual Studio Code

  1. En la aplicación cliente, incluya set query_python_debug; como prefijo en las consultas que contengan Python insertado.

  2. Ejecute la consulta.

    • Explorador de Kusto: Visual Studio Code se inicia automáticamente con el script debug_python.py .
    • Interfaz de usuario web de Kusto:
      1. Descargue y guarde debug_python.py, df.txt y kargs.txt. En la ventana, seleccione Permitir. Guarde los archivos en el directorio seleccionado.
      2. Haga clic con el botón derecho en debug_python.py y abra con Visual Studio Code. El script debug_python.py contiene el código de Python insertado, procedente de la consulta de KQL, con el prefijo del código de plantilla para inicializar el dataframe de entrada de df.txt y el diccionario de parámetros de kargs.txt.
  3. En Visual Studio Code, inicie el depurador de Visual Studio Code: Ejecutar depuración>inicial (F5) y seleccione Configuración de Python. El depurador inicia y establece automáticamente un punto de interrupción para depurar el código insertado.

  1. En la aplicación cliente, incluya set query_python_debug; como prefijo en las consultas que contengan Python insertado.

  2. Ejecute la consulta.

    • Explorador de Kusto: Visual Studio Code se inicia automáticamente con el script debug_python.py .
    • Conjunto de consultas KQL:
      1. Descargue y guarde debug_python.py, df.txt y kargs.txt. En la ventana, seleccione Permitir. Guarde los archivos en el directorio seleccionado.
      2. Haga clic con el botón derecho en debug_python.py y abra con Visual Studio Code. El script debug_python.py contiene el código de Python insertado, procedente de la consulta de KQL, con el prefijo del código de plantilla para inicializar el dataframe de entrada de df.txt y el diccionario de parámetros de kargs.txt.
  3. En Visual Studio Code, inicie el depurador de Visual Studio Code: Ejecutar depuración>inicial (F5) y seleccione Configuración de Python. El depurador inicia y establece automáticamente un punto de interrupción para depurar el código insertado.

¿Cómo funciona la depuración insertada de Python en Visual Studio Code?

  1. La consulta se analiza y se ejecuta en el servidor hasta que se alcanza la cláusula | evaluate python() requerida.
  2. Se invoca el espacio aislado de Python pero, en lugar de ejecutar el código, se serializa la tabla de entrada, el diccionario de parámetros y el código, y se devuelven al cliente.
  3. Estos tres objetos se guardan en tres archivos: df.txt, kargs.txt y debug_python.py en el directorio seleccionado (interfaz de usuario web) o en el directorio % TEMP% del cliente (Kusto Explorer).
  4. Visual Studio Code se inicia, precargado con el archivo debug_python.py que contiene un código de prefijo para inicializar df y kargs de sus respectivos archivos, seguido del script de Python incrustado en la consulta KQL.

Ejemplo de consulta

  1. Ejecute la siguiente consulta de KQL en la aplicación 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))
    

    Vea la tabla resultante:

    x x4
    1 1
    2 16
    3 81
    4 256
  2. Ejecute la misma consulta de KQL en la aplicación cliente con 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. Visual Studio Code se inicia:

    inicie Visual Studio Code.

  4. Visual Studio Code depura e imprime la trama de datos "result" en la consola de depuración:

    Depuración en VS Code.

Nota:

Puede haber diferencias entre la imagen del espacio aislado de Python y la instalación local. Compruebe la imagen del espacio aislado de paquetes específicos consultando el complemento.

Nota:

En caso de que haya errores al iniciar la sesión de depuración de Visual Studio Code, pruebe a establecer el perfil de terminal predeterminado en el símbolo del sistema:

  • Presione CTRL + MAYÚS + P para abrir la paleta de comandos.
  • Busque "Terminal: Seleccionar perfil predeterminado" y seleccione "Símbolo del sistema"