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를 사용하여 디버그하도록 제한합니다.
클라이언트 애플리케이션에서 set query_python_debug;를 인라인 Python이 포함된 쿼리의 접두사로 사용합니다.
쿼리를 실행합니다.
Kusto Explorer: Visual Studio Code는 debug_python.py 스크립트를 사용하여 자동으로 시작됩니다.
Kusto 웹 UI:
debug_python.py, df.txt 및 kargs.txt를 다운로드하여 저장합니다. 창에서 허용을 선택합니다. 파일을 선택한 디렉터리에 저장합니다.
debug_python.py 마우스 오른쪽 단추로 클릭하고 Visual Studio Code를 사용하여 엽니다.
debug_python.py 스크립트에는 df.txt의 입력 데이터 프레임과 kargs.txt의 매개 변수 사전을 초기화하는 템플릿 코드에서 접두사로 사용하는 KQL 쿼리의 인라인 Python 코드가 포함되어 있습니다.
Visual Studio Code에서 Visual Studio Code 디버거: 시작 디버깅 실행(F5)을 시작하고>Python 구성을 선택합니다. 디버거는 인라인 코드를 디버그하는 중단점을 시작하고 자동으로 설정합니다.
클라이언트 애플리케이션에서 set query_python_debug;를 인라인 Python이 포함된 쿼리의 접두사로 사용합니다.
쿼리를 실행합니다.
Kusto Explorer: Visual Studio Code는 debug_python.py 스크립트를 사용하여 자동으로 시작됩니다.
KQL 쿼리 세트:
debug_python.py, df.txt 및 kargs.txt를 다운로드하여 저장합니다. 창에서 허용을 선택합니다. 파일을 선택한 디렉터리에 저장합니다.
debug_python.py 마우스 오른쪽 단추로 클릭하고 Visual Studio Code를 사용하여 엽니다.
debug_python.py 스크립트에는 df.txt의 입력 데이터 프레임과 kargs.txt의 매개 변수 사전을 초기화하는 템플릿 코드에서 접두사로 사용하는 KQL 쿼리의 인라인 Python 코드가 포함되어 있습니다.
Visual Studio Code에서 Visual Studio Code 디버거: 시작 디버깅 실행(F5)을 시작하고>Python 구성을 선택합니다. 디버거는 인라인 코드를 디버그하는 중단점을 시작하고 자동으로 설정합니다.
Visual Studio Code의 인라인 Python 디버깅은 어떻게 작동하나요?
쿼리는 필요한 | evaluate python() 절에 도달할 때까지 서버에서 구문 분석되고 실행됩니다.
Python 샌드박스가 호출되지만, 코드를 실행하는 대신 입력 테이블, 매개 변수 사전 및 코드를 직렬화하고 클라이언트에 다시 보냅니다.
이러한 세 개체는 선택한 디렉터리(웹 UI) 또는 클라이언트 %TEMP% 디렉터리(Kusto Explorer)의 세 파일(df.txt, kargs.txt 및 debug_python.py)에 저장됩니다.
Visual Studio Code가 시작되고 해당 파일에서 df 및 kargs를 초기화하는 접두사 코드가 포함된 debug_python.py 파일과 KQL 쿼리에 포함된 Python 스크립트가 미리 로드됩니다.
쿼리 예
클라이언트 애플리케이션에서 다음 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
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))
Visual Studio Code가 시작됩니다.
Visual Studio Code는 디버그 콘솔에서 '결과' 데이터 프레임을 디버그하고 출력합니다.