SHOW DYNAMIC TABLES

액세스 권한이 있는 동적 테이블 을 나열합니다. 이 명령을 사용해 현재/지정된 데이터베이스 또는 스키마 또는 전체 계정에 대한 동적 테이블을 나열할 수 있습니다.

참고 항목:

CREATE DYNAMIC TABLE, ALTER DYNAMIC TABLE, DESCRIBE DYNAMIC TABLE, DROP DYNAMIC TABLE, SHOW OBJECTS, TABLES 뷰 (Information Schema)

구문

SHOW DYNAMIC TABLES [ LIKE '<pattern>' ]
                    [ IN
                      {
                           ACCOUNT              |

                           DATABASE             |
                           DATABASE <db_name>   |

                           SCHEMA               |
                           SCHEMA <schema_name> |
                           <schema_name>
                      }
                    ]
                    [ STARTS WITH '<name_string>' ]
                    [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

매개 변수

LIKE 'pattern'

오브젝트 이름으로 명령 출력을 선택적으로 필터링합니다. 이 필터는 SQL 와일드카드 문자(%_) 지원과 함께 대/소문자를 구분하지 않는 패턴 일치를 사용합니다.

예를 들어, 다음 패턴은 같은 결과를 반환합니다.

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. 기본값: 값 없음(출력에 필터링이 적용되지 않음).

[ IN ... ]

선택적으로 명령의 범위를 지정합니다. 다음 중 하나를 지정합니다.

ACCOUNT

전체 계정의 레코드를 반환합니다.

DATABASE, . DATABASE db_name

현재 사용 중인 데이터베이스 또는 지정된 데이터베이스(db_name)의 레코드를 반환합니다.

db_name 없이 DATABASE 를 지정하고 사용 중인 데이터베이스가 없는 경우 키워드는 출력에 아무런 영향도 주지 않습니다.

참고

데이터베이스 컨텍스트에서 IN 절 없이 SHOW 명령을 사용하면 예상보다 적은 결과를 얻을 수 있습니다.

IN 절이 사용되지 않는 경우 같은 이름을 가진 오브젝트는 한 번만 표시됩니다. 예를 들어, schema1t1 테이블, schema2t1 테이블이 있고 두 테이블이 모두 지정한 데이터베이스 컨텍스트의 범위에 있는 경우(즉, 선택한 데이터베이스가 schema1schema2 의 부모인 경우), SHOW TABLES 는 t1 테이블 중 하나만 표시합니다.

SCHEMA, . SCHEMA schema_name

현재 사용 중인 스키마 또는 지정된 스키마(schema_name)의 레코드를 반환합니다.

데이터베이스가 사용 중이거나 정규화된 schema_name (예: db.schema)을 지정하는 경우 SCHEMA 는 선택 사항입니다.

사용 중인 데이터베이스가 없으면 SCHEMA 를 지정해도 출력에 아무런 영향도 주지 않습니다.

기본값: 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.

  • 데이터베이스: DATABASE 가 기본값입니다(즉, 이 명령은 데이터베이스에서 볼 권한이 있는 오브젝트를 반환함).

  • 데이터베이스 없음: ACCOUNT 가 기본값입니다(즉, 이 명령은 계정에서 볼 권한이 있는 오브젝트를 반환함).

STARTS WITH 'name_string'

오브젝트 이름의 시작 부분에 나타나는 문자를 기반으로 명령 출력을 선택적으로 필터링합니다. 문자열은 작은따옴표로 묶어야 하며 대/소문자를 구분 합니다.

예를 들어, 다음 문자열은 서로 다른 결과를 반환합니다.

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. 기본값: 값 없음(출력에 필터링이 적용되지 않음)

LIMIT rows [ FROM 'name_string' ]

반환되는 최대 행 수를 선택적으로 제한하는 동시에, 결과의 “페이지 매김”도 활성화합니다. 반환되는 실제 행 수는 지정된 제한보다 적을 수 있습니다. 예를 들어 기존 오브젝트 수가 지정된 제한보다 적습니다.

선택적 FROM 'name_string' 하위 절은 사실상 결과에 대한 “커서” 역할을 합니다. 그 덕분에 오브젝트 이름이 지정된 문자열과 일치하는 첫 번째 행 다음에 오는 행을 지정된 개수만큼 가져올 수 있습니다.

  • 문자열은 작은따옴표로 묶어야 하며 대/소문자를 구분 합니다.

  • 부분 이름이 지원되므로, 문자열이 전체 오브젝트 이름을 포함할 필요는 없습니다.

기본값: 값 없음(출력에 제한이 적용되지 않음)

참고

FROM 'name_string'STARTS WITH 'name_string' 절을 모두 지원하는 SHOW 명령의 경우 동일한 문에서 이러한 절을 모두 결합할 수 있습니다. 하지만 두 가지 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 아무런 결과도 반환되지 않습니다.

또한, 오브젝트는 이름을 기준으로 사전순으로 반환되므로, FROM 'name_string'STARTS WITH 'name_string' 에서 반환된 행보다 사전 값이 더 높은 행만 반환합니다.

예:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' 는 아무런 결과도 반환하지 않습니다.

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' 는 아무런 결과도 반환하지 않습니다.

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' 는 결과를 반환합니다(입력 문자열과 일치하는 행이 있는 경우).

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

SELECT

목록에 추가하려는 동적 테이블입니다.

MONITOR 권한이 없는 경우 일부 메타데이터가 숨겨집니다. 자세한 내용은 동적 테이블의 메타데이터 보기 권한 섹션을 참조하십시오.

스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 동적 테이블을 SHOW하려면 테이블에 대한 MONITOR 권한을 가진 역할을 사용해야 합니다.

  • 이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.

  • 이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.

  • MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.

  • 이 명령의 출력을 사후 처리하려면 출력을 쿼리할 수 있는 테이블로 처리하는 RESULT_SCAN 함수를 사용하면 됩니다. 파이프 연산자 를 사용하여 이 명령의 출력을 쿼리할 수도 있습니다.

  • LIMIT rows 의 값은 10000 을 초과할 수 없습니다. LIMIT rows 가 생략된 경우 결과 세트의 행 수가 10,000개를 넘는 경우 이 명령을 실행하면 오류가 발생합니다.

    10,000개 이상의 레코드가 있는 결과를 보려면 LIMIT rows 를 포함하거나 Snowflake Information Schema 에서 해당 뷰를 쿼리하십시오.

출력

명령 출력은 다음 열에 테이블 속성 및 메타데이터를 제공합니다.

설명

created_on

동적 테이블이 만들어진 날짜 및 시간입니다.

name

동적 테이블의 이름입니다.

database_name

동적 테이블이 저장된 데이터베이스입니다.

schema_name

동적 테이블이 저장된 스키마입니다.

cluster_by

동적 테이블의 클러스터링 키입니다.

rows

테이블의 행 수입니다.

bytes

쿼리에서 전체 동적 테이블을 스캔하는 경우 스캔할 바이트 수입니다. . . 이 수는 테이블의 실제 물리적 바이트 수(즉, 디스크상에 저장된 바이트 수)와 다를 수 있습니다.

owner

동적 테이블을 소유한 역할입니다.

target_lag

동적 테이블의 콘텐츠가 실시간보다 지연되어야 하는 최대 기간입니다.

refresh_mode

동적 테이블이 증분 새로 고침을 사용하는 경우 INCREMENTAL 이거나 새로 고칠 때마다 전체 테이블을 다시 계산하는 경우 FULL 입니다.

refresh_mode_reason

새로 고침 모드가 선택된 이유에 대한 설명입니다. INCREMENTAL 이 지원될 때 Snowflake가 FULL 을 선택한 경우 출력에 전체 새로 고침이 더 성능이 향상되었다고 생각하는 이유가 표시됩니다. 관련 정보가 없는 경우 NULL입니다.

warehouse

증분 새로 고침을 수행하는 데 필요한 리소스를 제공하는 웨어하우스입니다.

comment

동적 테이블에 대한 설명입니다.

text

이 동적 테이블을 만든 명령의 텍스트입니다(예: CREATE DYNAMIC TABLE ...).

automatic_clustering

동적 테이블에서 자동 클러스터링이 활성화되었는지 여부입니다. 현재 동적 테이블에는 지원되지 않습니다.

scheduling_state

새로 고침을 능동적으로 예약하는 동적 테이블의 경우 RUNNING을 표시하고 일시 중단된 동적 테이블의 경우 SUSPENDED를 표시합니다.

last_suspended_on

마지막 일시 중단의 타임스탬프입니다.

is_clone

동적 테이블이 복제본인 경우 TRUE, 그렇지 않으면 FALSE 입니다.

is_replica

동적 테이블이 복제본인 경우 TRUE, 그렇지 않으면 FALSE 입니다.

is_iceberg

동적 테이블이 동적 Apache Iceberg™ 테이블인 경우 TRUE, 그렇지 않으면 FALSE 입니다.

data_timestamp

동적 테이블에 포함된 기본 오브젝트에 있는 데이터의 타임스탬프입니다.

owner_role_type

예를 들어 ROLE 과 같은 오브젝트를 소유하는 역할의 유형입니다. . . 예를 들어, DATABASE_ROLE 과 같은 데이터베이스 수준 역할은 소유자가 될 수 없습니다. 동적 테이블의 소유자는 웨어하우스에 대한 USAGE 권한이 있어야 합니다. 웨어하우스는 계정 수준 오브젝트이므로, 데이터베이스 수준에서 작동하는 데이터베이스 역할에는 웨어하우스에 대한 액세스 권한을 부여할 수 없습니다. . . Snowflake Native App이 오브젝트를 소유하는 경우 값은 APPLICATION 입니다. . 삭제된 오브젝트에는 소유자 역할이 없으므로 오브젝트를 삭제하면 Snowflake가 NULL을 반환합니다.

mydb.myschema 스키마에서 product_ 로 시작하는 이름을 가진 동적 테이블을 전부 표시합니다.

SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
Copy