DYNAMIC_TABLE_GRAPH_HISTORY

DYNAMIC_TABLE_GRAPH_HISTORY

DYNAMIC_TABLE_GRAPH_HISTORY는 현재 계정의 모든 다이내믹 테이블(dynamic table)에 대한 정보를 반환하는 표(table) 함수예요. 이 정보에는 다이내믹 테이블 간 및 기본 테이블에 대한 의존성이 포함돼요. 파이프라인의 일부인 모든 다이내믹 테이블을 식별하는 데 흔히 사용돼요.

출처: Snowflake SQL Reference

본문

카테고리: 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" |                 |                | }                                           |                  |
|                    |  }                                                |                 |                |                                             |                  |
|                    | ]                                                 |                 |                |                                             |                  |
+--------------------+---------------------------------------------------+-----------------+----------------+---------------------------------------------+------------------+

더 알아보기