영어로 읽기

다음을 통해 공유


Visual Studio Code를 사용하여 Kusto 쿼리 언어 인라인 Python 디버그

적용 대상: ✅Microsoft Fabric✅Azure Data Explorer

python() 플러그 인을 사용하여 Kusto 쿼리 언어 쿼리에 Python 코드를 포함할 수 있습니다. 플러그 인 런타임은 격리되고 안전한 Python 환경인 샌드박스에서 호스트됩니다. python() 플러그 인 기능은 OSS Python 패키지의 방대한 보관을 사용하여 Kusto 쿼리 언어 네이티브 기능을 확장합니다. 이 확장을 사용하면 기계 학습, AI, 통계 및 시계열과 같은 고급 알고리즘을 쿼리의 일부로 실행할 수 있습니다.

Kusto 쿼리 언어 도구는 Python 알고리즘을 개발하고 디버깅하는 데 편리하지 않습니다. 따라서 Jupyter, PyCharm, Visual Studio 또는 Visual Studio Code와 같은 선호하는 Python 통합 개발 환경에서 알고리즘을 개발합니다. 알고리즘이 완료되면 복사하여 KQL에 붙여넣습니다. 이 워크플로를 개선하고 간소화하기 위해 Kusto Explorer 또는 웹 UI 클라이언트는 KQL 인라인 Python 코드를 작성하고 디버깅하기 위해 Visual Studio Code와 통합할 수 있습니다.

참고

이 워크플로는 비교적 작은 입력 테이블(최대 몇 MB)을 디버그하는 데만 사용할 수 있습니다. 따라서 디버깅을 위해 입력을 제한해야 할 수 있습니다. 큰 테이블을 처리해야 하는 경우 | take, | sample 또는 where rand() < 0.x를 사용하여 디버그하도록 제한합니다.

필수 구성 요소

Visual Studio Code에서 Python 디버깅 사용

  1. 클라이언트 애플리케이션에서 set query_python_debug;를 인라인 Python이 포함된 쿼리의 접두사로 사용합니다.

  2. 쿼리를 실행합니다.

    • Kusto Explorer: Visual Studio Code는 debug_python.py 스크립트를 사용하여 자동으로 시작됩니다.
    • Kusto 웹 UI:
      1. debug_python.py, df.txtkargs.txt를 다운로드하여 저장합니다. 창에서 허용을 선택합니다. 파일을 선택한 디렉터리에 저장합니다.
      2. debug_python.py 마우스 오른쪽 단추로 클릭하고 Visual Studio Code를 사용하여 엽니다. debug_python.py 스크립트에는 df.txt의 입력 데이터 프레임과 kargs.txt의 매개 변수 사전을 초기화하는 템플릿 코드에서 접두사로 사용하는 KQL 쿼리의 인라인 Python 코드가 포함되어 있습니다.
  3. Visual Studio Code에서 Visual Studio Code 디버거: 시작 디버깅 실행(F5)을 시작하고>Python 구성을 선택합니다. 디버거는 인라인 코드를 디버그하는 중단점을 시작하고 자동으로 설정합니다.

  1. 클라이언트 애플리케이션에서 set query_python_debug;를 인라인 Python이 포함된 쿼리의 접두사로 사용합니다.

  2. 쿼리를 실행합니다.

    • Kusto Explorer: Visual Studio Code는 debug_python.py 스크립트를 사용하여 자동으로 시작됩니다.
    • KQL 쿼리 세트:
      1. debug_python.py, df.txtkargs.txt를 다운로드하여 저장합니다. 창에서 허용을 선택합니다. 파일을 선택한 디렉터리에 저장합니다.
      2. debug_python.py 마우스 오른쪽 단추로 클릭하고 Visual Studio Code를 사용하여 엽니다. debug_python.py 스크립트에는 df.txt의 입력 데이터 프레임과 kargs.txt의 매개 변수 사전을 초기화하는 템플릿 코드에서 접두사로 사용하는 KQL 쿼리의 인라인 Python 코드가 포함되어 있습니다.
  3. Visual Studio Code에서 Visual Studio Code 디버거: 시작 디버깅 실행(F5)을 시작하고>Python 구성을 선택합니다. 디버거는 인라인 코드를 디버그하는 중단점을 시작하고 자동으로 설정합니다.

Visual Studio Code의 인라인 Python 디버깅은 어떻게 작동하나요?

  1. 쿼리는 필요한 | evaluate python() 절에 도달할 때까지 서버에서 구문 분석되고 실행됩니다.
  2. Python 샌드박스가 호출되지만, 코드를 실행하는 대신 입력 테이블, 매개 변수 사전 및 코드를 직렬화하고 클라이언트에 다시 보냅니다.
  3. 이러한 세 개체는 선택한 디렉터리(웹 UI) 또는 클라이언트 %TEMP% 디렉터리(Kusto Explorer)의 세 파일(df.txt, kargs.txtdebug_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 6
    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는 디버그 콘솔에서 '결과' 데이터 프레임을 디버그하고 출력합니다.

    VS Code 디버그.

참고

Python 샌드박스 이미지와 로컬 설치 간에 차이가 있을 수 있습니다. 플러그 인을 쿼리하여 특정 패키지에 대한 샌드박스 이미지를 확인하세요.

참고

Visual Studio Code 디버깅 세션을 시작할 때 오류가 발생하는 경우 기본 터미널 프로필을 명령 프롬프트로 설정해 보세요.

  • Ctrl + Shift + P를 눌러 명령 팔레트를 엽니다.
  • "터미널: 기본 프로필 선택"을 검색하고 "명령 프롬프트"를 선택합니다.