카테고리:

시스템 함수 (시스템 정보)

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING

목록의 컨슈머가 목록의 데이터를 다른 리전으로 재공유하면 Snowflake는 숨겨진 동적 테이블을 생성하여 대상 리전에서 목록 자동 복제를 활성화합니다. 이 시스템 함수는 Snowflake가 리전 간 재공유를 위해 가져온 데이터를 구체화하기 위해 발신 뷰 아래에 생성하는 숨겨진 동적 테이블에 대한 정보를 반환합니다.

이 함수를 사용하여 다음을 수행할 수 있습니다.

  • 지정된 발신 뷰에 대한 지원 동적 테이블이 있는 가져온 오브젝트를 식별합니다.

  • 해당 동적 테이블의 가장 최근 새로 고침 시간을 검사합니다(디버깅 또는 비용/상태 분석을 위해).

참고 항목:

목록 재공유하기

구문

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING( '<view_name>' )

인자

'view_name'

가져온 데이터가 재공유를 위해 숨겨진 동적 테이블로 자동 구체화되는 목록 또는 공유에 연결된 발신 뷰의 이름입니다.

정규화된 뷰 이름을 전달할 수 있습니다. 예를 들면 다음과 같습니다.

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
  'RESHARER_DB.PUBLIC.SHARED_VIEW'
);

반환

오브젝트의 배열이 포함된 JSON 문자열을 반환합니다. 각 오브젝트는 재공유하기 위해 지정된 뷰 아래에 생성된 숨겨진 동적 테이블을 나타냅니다.

필드

타입

설명

dtName

STRING

발신 뷰 아래에 중첩된 숨겨진 동적 테이블의 정규화된 이름(예: _<id>_IMPORTED_DB.SCHEMA.TABLE_DT_FOR_RESHARING)입니다.

dtSourceObject

STRING

재공유하기 위해 이 동적 테이블로 구체화되는 가져온 오브젝트의 정규화된 이름(예: IMPORTED_DB.SCHEMA.TABLE)입니다. 이는 뷰 정의에서 참조하는 원래 가져온 엔터티에 해당합니다.

dtRefreshStartTimeMillis

NUMBER

이 동적 테이블의 가장 최근 새로 고침이 시작된 Epoch 타임스탬프(밀리초)입니다. 새로 고침이 발생하지 않은 경우 Null입니다. ``TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::number, 3)``으로 변환합니다.

dtRefreshEndTimeMillis

NUMBER

이 동적 테이블의 가장 최근 새로 고침이 완료된 시점의 Epoch 타임스탬프(밀리초)입니다. 새로 고침이 발생하지 않은 경우 Null입니다. ``TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::number, 3)``으로 변환합니다.

status

STRING

가장 최근 새로 고침의 상태입니다. 새로 고침이 발생하지 않은 경우 Null입니다. 가능한 값은 SCHEDULED, EXECUTING, SUCCEEDED, FAILED, CANCELLED, ``UPSTREAM_FAILED``입니다. 각 상태에 대한 설명은 DYNAMIC_TABLE_REFRESH_HISTORY 출력을 참조하세요.

사용법 노트

  • 다음 시나리오에서는 동적 테이블이 생성되지 않고 함수가 행을 반환하지 않습니다.

    • 뷰는 가져온 데이터베이스를 참조하지 않습니다.

    • 뷰는 재공유할 수 없는 가져온 데이터를 사용합니다.

    • 이 뷰는 목록 자동 복제로 아직 처리되지 않았습니다.

  • 이 함수는 가시성과 디버깅을 위한 것입니다.

다음 예제에서는 재공유된 뷰에 대해 생성된 동적 테이블을 검색합니다.

SELECT * FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

적절한 타임스탬프가 있는 읽을 수 있는 테이블을 가져오려면 다음을 수행합니다.

SELECT
  value:dtName::STRING AS dt_name,
  value:dtSourceObject::STRING AS dt_source_object,
  TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::NUMBER, 3) AS dt_refresh_start_time,
  TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::NUMBER, 3) AS dt_refresh_end_time,
  value:status::STRING AS status
FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

샘플 출력:

+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| DT_NAME                                                  | DT_SOURCE_OBJECT           | DT_REFRESH_START_TIME         | DT_REFRESH_END_TIME           | STATUS            |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| _12345_IMPORTED_DB.PUBLIC.TABLE_A_DT_FOR_RESHARING       | IMPORTED_DB.PUBLIC.TABLE_A | 2026-03-19 10:00:00.000 -0700 | 2026-03-19 10:00:05.000 -0700 | SUCCEEDED |
| _12345_IMPORTED_DB.PUBLIC.VIEW_B_DT_FOR_RESHARING        | IMPORTED_DB.PUBLIC.VIEW_B  | 2026-03-19 10:00:01.000 -0700 | 2026-03-19 10:00:04.000 -0700 | SUCCEEDED |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+