ACCESS_HISTORY 뷰: 새 parent_query_id
및 root_query_id
열¶
Account Usage ACCESS_HISTORY 뷰는 다음과 같이 동작합니다.
- 변경 전
뷰에 대한 쿼리에는
parent_query_id
열과root_query_id
열이 포함되지 않습니다.- 변경 후
뷰의 쿼리에 다음과 같이 정의된
parent_query_id
열과root_query_id
열이 포함됩니다.열 이름
데이터 타입
설명
parent_query_id
TEXT
상위 작업의 쿼리 ID이거나 작업에 상위 작업이 없는 경우에는 NULL입니다.
root_query_id
TEXT
체인에서 최상위 작업의 쿼리 ID이거나 작업에 상위 작업이 없는 경우에는 NULL입니다.
2023_08 번들이 활성화될 때 데이터가 기록되기 시작하는 이러한 열은 뷰의 마지막 두 열입니다. 쿼리 ID는 Account Usage ACCESS_HISTORY 뷰의
query_id
열에 있는 쿼리에 해당합니다. 열에는 다음과 같은 종류의 쿼리에 대한 쿼리 ID가 기록됩니다.쿼리는 다른 오브젝트에 대해 읽기 또는 쓰기 작업을 수행합니다.
읽기 또는 쓰기 작업 은 ACCESS_HISTORY 뷰에서 현재 지원하는 작업이어야 합니다.
쿼리는 저장 프로시저를 호출하는 오브젝트에 대해 읽기 또는 쓰기 작업을 수행합니다. 중첩된 저장 프로시저 호출도 지원됩니다.
예를 들어, 다음 문이 순서대로 실행되는 경우
CREATE OR REPLACE PROCEDURE myproc_child() RETURNS INTEGER LANGUAGE SQL AS $$ BEGIN SELECT * FROM mydb.mysch.mytable; RETURN 1; END $$; CREATE OR REPLACE PROCEDURE myproc_parent() RETURNS INTEGER LANGUAGE SQL AS $$ BEGIN CALL myproc_child(); RETURN 1; END $$; CALL myproc_parent();
ACCESS_HISTORY 뷰에 대한 쿼리를 실행하면 다음과 같은 정보가 기록됩니다.
USE ROLE GOVERNANCE_VIEWER; SELECT query_id, parent_query_id, root_query_id, direct_objects_accessed FROM SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY;
+----------+-----------------+---------------+-----------------------------------+ | QUERY_ID | PARENT_QUERY_ID | ROOT_QUERY_ID | DIRECT_OBJECTS_ACCESSED | +----------+-----------------+---------------+-----------------------------------+ | 1 | NULL | NULL | [{"objectName": "myproc_parent"}] | | 2 | 1 | 1 | [{"objectName": "myproc_child"}] | | 3 | 2 | 1 | [{"objectName": "mytable"}] | +----------+-----------------+---------------+-----------------------------------+
첫 번째 행은
direct_objects_accessed
열에 표시된 대로myproc_parent
라는 두 번째 프로시저 호출에 해당합니다.이 저장 프로시저를 직접 호출했으므로
parent_query_id
및root_query_id
열은 NULL을 반환합니다.두 번째 행은
direct_objects_accessed
열에 표시된 대로myproc_child
라는 첫 번째 프로시저를 호출하는 쿼리에 해당합니다.myproc_child
를 호출하는 쿼리는 사용자가 직접 호출한myproc_parent
를 호출하는 쿼리를 통해 시작되었으므로,parent_query_id
열과root_query_id
열은 동일한 쿼리 ID를 반환합니다.세 번째 행은
direct_objects_accessed
열에 표시된 대로myproc_child
프로시저에서mytable
이라는 테이블에 액세스한 쿼리에 해당합니다.parent_query_id
열은myproc_child
호출에 해당하는mytable
에 액세스한 쿼리의 쿼리 ID를 반환합니다. 해당 저장 프로시저는root_query_id
열에 표시된myproc_parent
를 호출하는 쿼리로 시작되었습니다.
참조: 1265