Python Snowpark 저장 프로시저 및 UDF: 이벤트 테이블의 개선 사항 추적(보류 중)¶
이제 사용자는 Python 저장 프로시저가 다른 Python 저장 프로시저를 호출하거나 Python 저장 프로시저가 Python UDF를 호출할 때 연결된 호출의 쿼리가 연결되는 방식을 확인할 수 있습니다. 이 기능을 사용하려면 Event 테이블을 구성하고 추적을 활성화해야 합니다. Event 테이블의 TRACE:"trace_id"
및 RECORD:"parent_span_id"
열에 표시되는 값은 다음과 같습니다.
- 변경 전:
연결된 Python 저장 프로시저 또는 UDF에 의해 생성된 각 범위의
trace_id
는 고유합니다. Event 테이블의 RECORD 열에parent_span_id
필드가 없습니다. Native Apps 공급자와 컨슈머는 공유 이벤트에 대해 서로 다른trace_ids
를 봅니다. 공급자는 해시된 버전을 봅니다.- 변경 후:
연결된 Python 저장 프로시저 또는 UDF에 의해 생성된 범위의
trace_id
는 동일합니다.연결된 Python 저장 프로시저 또는 UDF에 의해 생성된 범위는
span_id
와parent_span_id
사이에 상위-하위 관계를 갖습니다. Python 저장 프로시저는 길이에 관계없이 체인의 다른 저장 프로시저를 호출할 수 있지만, UDF는 SQL 문을 실행할 수 없으므로 UDF를 호출하면 체인이 종료됩니다. 그러나 추적 정보는 여전히 UDF의 범위에 전파됩니다.사용자가 Python 저장 프로시저 또는 UDF를 직접 호출한 경우(루트)
trace_id
는 임의의 ID가 되고parent_span_id
는 없습니다. 저장 프로시저에 대한 추적이 비활성화되고 다른 저장 프로시저 또는 UDF를 호출하는 경우 하위 범위의trace_id
는 임의의 ID가 되며parent_span_id
가 없습니다. 즉, 하위 항목에서 추적이 다시 시작됩니다.Native Apps 공급자와 컨슈머는 공유 Python 저장 프로시저 또는 UDF 이벤트에 대해 동일한
trace_id
를 확인하므로 더 쉽게 디버깅할 수 있습니다.
다른 Python 저장 프로시저 또는 UDF를 호출하는 Python 저장 프로시저가 포함된 애플리케이션을 공유하는 Native App 공급자는 호출 스택 및 저장 프로시저의 상위-하위 관계를 컨슈머에게 노출합니다. 이를 방지하려면 추적을 비활성화하십시오.
참조: 1520