SHOW TABLES¶
여전히 Time Travel 보존 기간 내에 있어 삭제 취소할 수 있는 삭제된 테이블을 포함하여, 액세스 권한이 있는 테이블을 나열합니다. 이 명령을 사용해 현재/지정된 데이터베이스 또는 스키마 또는 전체 계정에 대한 테이블을 나열할 수 있습니다.
출력은 데이터베이스, 스키마, 테이블 이름을 기준으로 사전순으로 정렬된 테이블 메타데이터와 속성을 반환합니다(출력 열에 대한 설명은 이 항목의 출력 참조). 제공된 필터를 사용해 결과를 필터링하려는 경우 이 점에 유의해야 합니다.
- 참고 항목:
CREATE TABLE , DROP TABLE , UNDROP TABLE , ALTER TABLE , DESCRIBE TABLE
TABLES 뷰 (Information Schema)
구문¶
SHOW [ TERSE ] TABLES [ HISTORY ] [ LIKE '<pattern>' ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
매개 변수¶
TERSE
출력 열의 서브세트만 선택적으로 반환합니다.
created_on
name
kind
kind
열 값은 항상 TABLE입니다.database_name
schema_name
기본값: 값 없음(모든 열이 출력에 포함됨)
HISTORY
아직 제거되지 않은 삭제된 테이블을 선택적으로 포함합니다(즉, 여전히 각각의 Time Travel 보존 기간 내에 있음). 삭제된 테이블의 버전이 여러 개 있는 경우 출력에 각 버전에 대한 행이 표시됩니다. 출력에는 다음을 표시하는
dropped_on
열도 추가로 포함됩니다.날짜 및 타임스탬프(삭제된 테이블의 경우).
NULL
(활성 테이블의 경우).
기본값: 값 없음(삭제된 테이블은 출력에 포함되지 않음)
LIKE 'pattern'
오브젝트 이름으로 명령 출력을 선택적으로 필터링합니다. 이 필터는 SQL 와일드카드 문자(
%
및_
) 지원과 함께 대/소문자를 구분하지 않는 패턴 일치를 사용합니다.예를 들어, 다음 패턴은 같은 결과를 반환합니다.
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. 기본값: 값 없음(출력에 필터링이 적용되지 않음).
[ IN ... ]
선택적으로 명령의 범위를 지정합니다. 다음 중 하나를 지정합니다.
ACCOUNT
전체 계정의 레코드를 반환합니다.
DATABASE
, .DATABASE db_name
현재 사용 중인 데이터베이스 또는 지정된 데이터베이스(
db_name
)의 레코드를 반환합니다.db_name
없이DATABASE
를 지정하고 사용 중인 데이터베이스가 없는 경우 키워드는 출력에 아무런 영향도 주지 않습니다.SCHEMA
, .SCHEMA schema_name
, .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'
는 결과를 반환합니다(입력 문자열과 일치하는 행이 있는 경우).
사용법 노트¶
계정(또는 데이터베이스나 스키마)에 많은 수의 테이블이 있는 경우 전체 계정(또는 테이블이나 스키마)을 검색하면 상당한 양의 컴퓨팅 리소스가 사용될 수 있습니다.
출력에서 결과는 순서대로 데이터베이스 이름, 스키마 이름, 테이블 이름을 기준으로 정렬됩니다. 이는 데이터베이스 결과에 여러 스키마의 테이블이 포함될 수 있으며 페이지 매김이 중단될 수 있음을 의미합니다. 페이지 매김이 예상대로 작동하려면 단일 스키마에 대해 SHOW TABLES 명령을 실행해야 합니다. SHOW TABLES 명령에 IN SCHEMA
schema_name
매개 변수를 사용할 수 있습니다. 또는 SHOW TABLES 명령을 실행하기 전에 USE SCHEMA 문을 실행하여 현재 컨텍스트에서 스키마를 사용할 수 있습니다.
이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.
LIMIT rows
의 값은10000
을 초과할 수 없습니다.LIMIT rows
가 생략된 경우 결과 세트의 행 수가 10,000개를 넘는 경우 이 명령을 실행하면 오류가 발생합니다.10,000개 이상의 레코드가 있는 결과를 보려면
LIMIT rows
를 포함하거나 Snowflake Information Schema 에서 해당 뷰를 쿼리하십시오.
이 명령의 출력을 사후 처리하려면 출력을 쿼리할 수 있는 테이블로 처리하는 RESULT_SCAN 함수를 사용하면 됩니다.
출력¶
명령 출력은 다음 열에 테이블 속성 및 메타데이터를 제공합니다.
열 |
설명 |
---|---|
created_on |
테이블이 만들어진 날짜 및 시간입니다. |
이름 |
테이블의 이름입니다. |
데이터베이스_이름 |
테이블이 저장된 데이터베이스입니다. |
스키마_이름 |
테이블이 저장된 스키마입니다. |
kind |
테이블 유형: TABLE (영구 테이블인 경우), TEMPORARY 또는 TRANSIENT. |
comment |
테이블에 대한 설명입니다. |
cluster_by |
테이블에 대해 클러스터링 키로 정의된 열입니다. |
rows |
테이블의 행 수입니다. 외부 테이블에 대해서는 NULL을 반환합니다. |
bytes |
쿼리에서 전체 테이블을 스캔하는 경우 스캔할 바이트 수입니다. 이 수는 테이블의 실제 물리적 바이트 수(즉, 디스크상에 저장된 바이트 수)와 다를 수 있습니다. |
owner |
테이블을 소유한 역할입니다. |
retention_time |
Time Travel을 위해 수정된 데이터와 삭제된 데이터가 유지되는 일수입니다. |
dropped_on |
테이블이 삭제된 날짜 및 시간입니다. 테이블이 활성 상태인 경우에는 NULL 입니다. 이 열은 명령에 대해 HISTORY 키워드가 지정되어 있을 때만 표시됩니다. |
automatic_clustering |
계정에 대해 자동 클러스터링 을 활성화할 경우, 테이블에 대해 명시적으로 활성화할지( |
change_tracking |
|
search_optimization |
|
search_optimization_progress |
검색에 최적화된 테이블의 백분율입니다. 이 값은 테이블에 최적화를 처음 추가할 때와 검색 최적화 서비스에서 유지 관리가 완료될 때 증가합니다. 새로 최적화된 테이블에서 검색 최적화의 성능 향상을 측정하기 전, 이 값이 테이블이 완전히 최적화되었음을 표시할 때까지 기다리십시오. |
search_optimization_bytes |
검색 최적화 서비스가 이 테이블에 대해 사용하는 저장소의 추가 바이트 수입니다. |
is_external |
외부 테이블이면 |
enable_schema_evolution |
테이블에 스키마 진화 가 활성화된 경우 |
owner_role_type |
오브젝트를 소유하는 역할 유형( |
is_event |
이벤트 테이블이면 |
예산 |
오브젝트가 예산으로 모니터링되는 경우 예산 의 이름입니다. 그렇지 않으면 NULL입니다. |
is_hybrid |
하이브리드 테이블인 경우 |
is_iceberg |
테이블이 Iceberg 테이블 인 경우 |
테이블에 대해 지정할 수 있는 속성에 대한 자세한 내용은 CREATE TABLE 을 참조하십시오.
참고
복제된 테이블과 삭제된 데이터가 있는 테이블의 경우, 테이블에 대해 표시되는 bytes
가 테이블의 물리적 바이트 수와 다를 수 있습니다.
테이블에 새 행이 추가되거나 테이블의 기존 행이 수정 또는 삭제될 때까지 복제된 테이블은 추가 데이터 저장소를 사용하지 않습니다. 테이블에 변경된 내용이 거의 없거나 전혀 없는 경우, 표시되는 바이트 수가 테이블에 대해 저장된 실제 물리적 바이트 수보다 큽니다.
테이블에서 삭제된 데이터는 데이터에 대한 Time Travel 보존 기간(기본값은 1일)과 Fail-safe 기간(7일)이 모두 경과할 때까지 Snowflake에 유지됩니다. 이러한 두 기간에 표시되는 바이트 수는 테이블에 대해 저장된 실제 물리적 바이트 수보다 작습니다.
복제, Time Travel, Fail-safe와 관련될 때의 테이블 크기(바이트)에 대한 자세한 내용은 TABLE_STORAGE_METRICS Information Schema 뷰를 참조하십시오.
예¶
이들 예제에서는 지정된 매개 변수를 기반으로 볼 수 있는 권한이 있는 모든 테이블을 보여줍니다.
샘플 데이터 세트 의 테이블에서 SHOW TABLES를 실행합니다. 예제에서는 TERSE 매개 변수를 사용하여 출력을 제한합니다.
tpch_sf1
스키마에서LINE
으로 시작하는 이름을 가진 테이블을 전부 표시합니다.SHOW TERSE TABLES IN tpch_sf1 STARTS WITH 'LINE';+-------------------------------+----------+-------+-----------------------+-------------+ | created_on | name | kind | database_name | schema_name | |-------------------------------+----------+-------+-----------------------+-------------| | 2016-07-08 13:41:59.960 -0700 | LINEITEM | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | +-------------------------------+----------+-------+-----------------------+-------------+
tpch_sf1
스키마에 하위 문자열PART
를 포함한 이름을 가진 모든 테이블을 표시합니다.SHOW TERSE TABLES LIKE '%PART%' IN tpch_sf1;+-------------------------------+-----------+-------+-----------------------+-------------+ | created_on | name | kind | database_name | schema_name | |-------------------------------+-----------+-------+-----------------------+-------------| | 2016-07-08 13:41:59.960 -0700 | JPART | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | JPARTSUPP | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | PART | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | PARTSUPP | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | +-------------------------------+-----------+-------+-----------------------+-------------+
tpch_sf1
스키마에 테이블을 표시하지만, 출력을 3개 행으로 제한하고J
로 시작하는 테이블 이름으로 시작합니다.SHOW TERSE TABLES IN tpch_sf1 LIMIT 3 FROM 'J';+-------------------------------+-----------+-------+-----------------------+-------------+ | created_on | name | kind | database_name | schema_name | |-------------------------------+-----------+-------+-----------------------+-------------| | 2016-07-08 13:41:59.960 -0700 | JCUSTOMER | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | JLINEITEM | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | | 2016-07-08 13:41:59.960 -0700 | JNATION | TABLE | SNOWFLAKE_SAMPLE_DATA | TPCH_SF1 | +-------------------------------+-----------+-------+-----------------------+-------------+
HISTORY 매개 변수를 사용하여 삭제된 테이블을 표시합니다.
현재 스키마에 테이블을 생성한 후 삭제합니다.
CREATE OR REPLACE TABLE test_show_tables_history(c1 NUMBER); DROP TABLE test_show_tables_history;명령 출력에 삭제된 테이블을 포함하려면 HISTORY 매개 변수를 사용하십시오.
SHOW TABLES HISTORY LIKE 'test_show_tables_history';출력에서
dropped_on
열에는 테이블이 삭제된 날짜와 시간이 표시됩니다.