DYNAMIC_TABLE_GRAPH_HISTORY
DYNAMIC_TABLE_GRAPH_HISTORY
DYNAMIC_TABLE_GRAPH_HISTORY는 현재 계정의 모든 다이내믹 테이블(dynamic table)에 대한 정보를 반환하는 표(table) 함수예요. 이 정보에는 다이내믹 테이블 간 및 기본 테이블에 대한 의존성이 포함돼요. 파이프라인의 일부인 모든 다이내믹 테이블을 식별하는 데 흔히 사용돼요.
본문
카테고리: Information Schema , Table 함수
이 함수의 출력에서 각 행은 다이내믹 테이블 하나를 나타내요. VALID_FROM과 VALID_TO 열은 다이내믹 테이블의 설명이 유효했던(즉 다이내믹 테이블을 정확히 설명했던) 시간 범위를 지정해요.
TARGET_LAG를 변경하는 것 같은 다이내믹 테이블 변경은 새 항목의 생성을 초래해요.
이 표 함수는 VALID_TO 값이 현재 시각의 7일 이내인 설명만 제공해요.
구문 (Syntax)
DYNAMIC_TABLE_GRAPH_HISTORY(
[ AS_OF => <constant_expr> ]
[ , HISTORY_START => <constant_expr> [ , HISTORY_END => <constant_expr> ] ]
)
인자 (Arguments)
모든 인자는 선택적이에요. 인자를 제공하지 않으면 기존 다이내믹 테이블의 가장 최근 설명만 반환돼요. constant_expr은 TIMESTAMP_LTZ 형식으로 지정해요.
AS_OF => <constant_expr> — 그래프 상태를 반환할 시각이에요. DYNAMIC_TABLE_REFRESH_HISTORY 함수 출력의 REFRESH_VERSION 열 값에 해당하는 시각을 지정할 수 있어요.
HISTORY_START => <constant_expr>, HISTORY_END => <constant_expr> — 다이내믹 테이블 새로고침 히스토리의 날짜/시간 범위예요. HISTORY_START는 데이터를 반환할 가장 이른 날짜/시간(포함)을 지정해요. HISTORY_END는 HISTORY_START와 함께 지정해야 하며, 데이터를 반환할 종료 날짜/시간을 지정해요.
출력 (Output)
이 함수는 다음 열을 반환해요. 이 열을 보려면 MONITOR 권한을 가진 역할을 사용해야 해요. 그렇지 않으면 함수는 NAME, SCHEMA_NAME, DATABASE_NAME, QUALIFIED_NAME에 대한 값만 반환해요. 다이내믹 테이블 권한에 대한 자세한 내용은 MONITOR 부여로 메타데이터 보기를 참고해요.
| 열 이름 | 데이터 타입 | 설명 |
|---|---|---|
| NAME | TEXT | 다이내믹 테이블의 이름. |
| SCHEMA_NAME | TEXT | 다이내믹 테이블을 포함하는 스키마의 이름. |
| DATABASE_NAME | TEXT | 다이내믹 테이블을 포함하는 데이터베이스의 이름. |
| QUALIFIED_NAME | TEXT | 다이내믹 테이블 그래프에 나타나는 대로의 다이내믹 테이블 정규화된 이름. DYNAMIC_TABLE_REFRESH_HISTORY 함수의 출력과 조인하는 데 사용할 수 있음. |
| INPUTS | ARRAY of OBJECTs | 각 OBJECT는 이 다이내믹 테이블의 입력으로 사용되는 테이블·뷰·다이내믹 테이블을 나타내며, 다음으로 구성돼요: name(TEXT): 정규화된 이름. kind(TEXT): 입력 타입(TABLE, VIEW, 또는 DYNAMIC TABLE). insideRefreshBoundary(BOOLEAN): 값이 TRUE일 때 VIEW와 DYNAMIC TABLE 입력에만 존재하며, 입력이 DYNAMIC_TABLE_REFRESH_BOUNDARY()로 감싸져 있음을 나타냄. 새로고침 경계 안의 입력은 이 다이내믹 테이블과 함께 새로고침되지 않음. |
| TARGET_LAG_TYPE | TEXT | 다음 중 하나: USER_DEFINED(다이내믹 테이블에 지정된 TARGET_LAG 파라미터로 결정), DOWNSTREAM(DOWNSTREAM TARGET_LAG를 가진 다이내믹 테이블을 나타냄. 자세한 내용은 참고). |
| TARGET_LAG_SEC | NUMBER | 이 다이내믹 테이블의 목표 지연 시간(초). 다이내믹 테이블의 TARGET_LAG 파라미터에 지정된 값. |
| QUERY_TEXT | TEXT | 이 다이내믹 테이블의 SELECT 문장. |
| VALID_FROM | TIMESTAMP_LTZ | 다이내믹 테이블의 설명이 이 시각 이후로 유효. |
| VALID_TO | TIMESTAMP_LTZ | 있으면 다이내믹 테이블의 설명이 이 시각까지 유효. null이면 설명이 여전히 정확. |
| SCHEDULING_STATE | OBJECT | 다음으로 구성된 OBJECT: state(TEXT): 스케줄링 상태(ACTIVE 또는 SUSPENDED). reason_code(TEXT): 상태가 ACTIVE가 아닐 때 이유에 대한 선택적 코드. reason_message(TEXT): 다이내믹 테이블이 활성 상태가 아닌 이유에 대한 텍스트 설명. 상태가 활성이 아닐 때만 적용. suspended_on(TIMESTAMP_LTZ): 다이내믹 테이블이 중단된 선택적 타임스탬프. resumed_on(TIMESTAMP_LTZ): 다이내믹 테이블이 ACTIVE일 때 마지막으로 재개된 선택적 타임스탬프. |
| ALTER_TRIGGER | ARRAY | DYNAMIC_TABLE_GRAPH_HISTORY 함수에 새 항목이 생성된 이유를 설명. 다음 중 하나: NONE(하위 호환), CREATE_DYNAMIC_TABLE, ALTER_TARGET_LAG, SUSPEND, RESUME, REPLICATION_REFRESH, ALTER_WAREHOUSE. |
사용 시 유의사항 (Usage notes)
- Information Schema 표 함수를 호출할 때 세션은 INFORMATION_SCHEMA 스키마를 사용 중이거나 함수 이름이 완전히 정규화되어야 해요. 자세한 내용은 Snowflake Information Schema을 참고해요.
예시 (Examples)
계정의 각 다이내믹 테이블의 그래프 히스토리, 속성, 그리고 다른 테이블·다이내믹 테이블에 대한 의존성을 가져와요:
SELECT
name,
inputs,
target_lag_type,
target_lag_sec,
scheduling_state,
alter_trigger
FROM
TABLE (
INFORMATION_SCHEMA.DYNAMIC_TABLE_GRAPH_HISTORY ()
)
ORDER BY
name;
+--------------------+---------------------------------------------------+-----------------+----------------+---------------------------------------------+------------------+
| NAME |[] INPUTS | TARGET_LAG_TYPE | TARGET_LAG_SEC | [] SCHEDULING_STATE | [] ALTER_TRIGGER |
|--------------------+---------------------------------------------------+-----------------+----------------+---------------------------------------------|------------------|
| MY_DYNAMIC_TABLE_1 | [ | USER_DEFINED | 300 | { | [ |
| | { | | | "resumed_on": "2024-03-01 10:29:02.066 Z",| "RESUME" |
| | "kind": "DYNAMIC_TABLE", | | | "state": "ACTIVE" | ] |
| | "name": "MY_QUALIFIED_NAME.MY_DYNAMIC_TABLE_2" | | | } | |
| | } | | | | |
| | ] | | | | |
+--------------------+---------------------------------------------------+-----------------+----------------+---------------------------------------------+------------------+