SHOW ICEBERG TABLES

액세스 권한이 있는 Iceberg 테이블 을 나열합니다.

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

이 명령은 SHOW TABLES 와 다른 출력 열을 반환합니다. 출력은 데이터베이스, 스키마, Iceberg 테이블 이름을 기준으로 사전순으로 정렬된 Iceberg 테이블 메타데이터와 속성을 반환합니다(출력 열에 대한 설명은 이 항목의 출력 참조). 제공된 필터를 사용해 결과를 필터링하려는 경우 이 점에 유의해야 합니다.

이 항목에서는 Iceberg 테이블 이라고 명시하여 혼동을 피하는 경우를 제외하고는 Iceberg 테이블을 단순히 〈테이블’로 지칭한다는 점에 유의하십시오.

참고 항목:

CREATE ICEBERG TABLE , DROP ICEBERG TABLE , DESCRIBE ICEBERG TABLE , ALTER ICEBERG TABLE, SHOW TABLES

구문

SHOW [ TERSE ] [ ICEBERG ] TABLES [ LIKE '<pattern>' ]
                                  [ IN { ACCOUNT | DATABASE [ <db_name> ] | SCHEMA [ <schema_name> ] } ]
                                  [ STARTS WITH '<name_string>' ]
                                  [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

매개 변수

TERSE

출력 열의 서브세트만 선택적으로 반환합니다.

  • created_on

  • name

  • kind

    kind 열 값은 항상 ICEBERG TABLE입니다.

  • database_name

  • schema_name

기본값: 값 없음(모든 열이 출력에 포함됨)

ICEBERG

Iceberg 테이블만 반환합니다.

LIKE 'pattern'

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

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

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

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

IN  ACCOUNT | DATABASE [ db_name ] | SCHEMA [ schema_name ]

명령의 범위를 선택적으로 지정하여 이 명령이 현재/지정된 데이터베이스 또는 스키마의 레코드만 나열할지, 아니면 전체 계정의 레코드를 나열할지 여부를 결정합니다.

키워드 ACCOUNT 를 지정하는 경우 이 명령은 현재 계정의 모든 데이터베이스에 있는 모든 스키마의 레코드를 검색합니다.

키워드 DATABASE 를 지정하면 다음 사항이 적용됩니다.

  • db_name 을 지정하는 경우 이 명령은 지정된 데이터베이스의 모든 스키마의 레코드를 검색합니다.

  • db_name 을 지정하지 않으면 다음 사항이 적용됩니다.

    • 현재 데이터베이스가 있는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 스키마의 레코드를 검색합니다.

키워드 SCHEMA 를 지정하면 다음 사항이 적용됩니다.

  • 정규화된 스키마 이름(예: my_database.my_schema)을 지정하는 경우 이 명령은 지정된 데이터베이스 및 스키마의 레코드를 검색합니다.

  • 정규화되지 않은 schema_name 을 지정하면 다음 사항이 적용됩니다.

    • 현재 데이터베이스가 있는 경우 이 명령은 현재 데이터베이스의 지정된 스키마의 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 SQL compilation error: Object does not exist, or operation cannot be performed 오류 메시지를 표시합니다.

  • schema_name 을 지정하지 않으면 다음 사항이 적용됩니다.

    • 현재 데이터베이스가 있으면 다음 사항이 적용됩니다.

      • 현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마의 레코드를 검색합니다.

      • 현재 스키마가 없는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 모든 스키마의 레코드를 검색합니다.

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

  • 데이터베이스 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' 는 결과를 반환합니다(입력 문자열과 일치하는 행이 있는 경우).

액세스 제어 요구 사항

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

권한

오브젝트

참고

SELECT

Iceberg 테이블

SHOW ICEBERG TABLES의 출력에서 특정 Iceberg 테이블을 보려면 역할에 해당 테이블에 대한 SELECT 권한이 있어야 합니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

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

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

사용법 노트

  • 계정(또는 데이터베이스나 스키마)에 많은 수의 Iceberg 테이블이 있는 경우 전체 계정(또는 데이터베이스나 스키마)을 검색하면 상당한 양의 컴퓨팅 리소스가 사용될 수 있습니다.

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

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

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

  • 이 명령의 출력을 사후 처리하려면 출력을 쿼리할 수 있는 테이블로 처리하는 RESULT_SCAN 함수를 사용하면 됩니다.

출력

참고

다음 출력 스키마는 SHOW ICEBERG TABLES 명령에 대한 것입니다. SHOW TABLES의 출력에 대한 자세한 내용은 이 항목의 SHOW TABLES로 Iceberg 테이블 식별하기 를 참조하십시오.

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

설명

created_on

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

name

테이블의 이름입니다.

database_name

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

schema_name

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

owner

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

external_volume_name

Iceberg 테이블 데이터와 메타데이터가 저장되는 외부 볼륨의 이름입니다.

catalog_name

Snowflake에서 관리하지 않는 Iceberg 테이블과 연결된 카탈로그 통합 오브젝트의 이름입니다. Snowflake에서 관리하는 테이블의 경우 SNOWFLAKE 입니다.

iceberg_table_type

Iceberg 테이블의 유형입니다. Snowflake에서 관리하지 않는 테이블의 경우 UNMANAGED, 그렇지 않으면 NOT ICEBERG 입니다.

catalog_table_name

카탈로그에서 인식되는 테이블의 이름입니다.

catalog_namespace

테이블의 카탈로그 네임스페이스입니다. 테이블 생성 시 정의된 네임스페이스입니다. 그렇지 않으면 테이블에서 사용되는 카탈로그 통합과 연결된 기본 네임스페이스입니다.

file_path

EXTERNAL_VOLUME 위치에서 테이블 메타데이터 및 데이터 파일까지의 상대 경로입니다. 특정 유형의 Iceberg 테이블을 생성할 때 BASE_LOCATION 으로 정의됩니다.

can_write_metadata

Snowflake가 file_path 에서 지정한 위치에 메타데이터를 쓸 수 있는지 여부를 나타냅니다.

comment

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

name_mapping

열 프로젝션 을 사용하는 테이블 열에 대한 정보가 포함된 오브젝트 목록입니다. 자세한 내용은 name_mapping 섹션을 참조하십시오.

owner_role_type

오브젝트를 소유하는 역할 유형(ROLE 또는 DATABASE_ROLE)입니다. . Snowflake Native App 이 오브젝트를 소유한 경우 값은 APPLICATION 입니다. . 삭제된 오브젝트에 소유자 역할이 없으므로 오브젝트를 삭제하는 경우 Snowflake는 NULL을 반환합니다.

name_mapping

name_mapping 출력 열은 열 프로젝션 을 사용하는 테이블 열에 대한 정보를 제공합니다.

테이블에 연결된 이름 매핑이 있는 열이 없는 경우 출력 열의 값은 [NULL] 입니다. 그렇지 않은 경우 값은 오브젝트 목록이며, 여기서 각 오브젝트는 연결된 이름 매핑(때로는 매핑된 필드라고도 함)이 있는 열에 해당합니다. 각 오브젝트에는 다음 세 가지 속성이 포함될 수 있습니다.

  • field-id: Iceberg 필드 ID입니다.

  • names: 필드의 이름 문자열 목록입니다.

  • fields: 구조체, 맵 또는 목록 열의 하위 필드에 대한 필드 매핑 목록입니다.

예:

[
  {
    "field-id": 1,
    "names": [
      "id",
      "record_id"
    ]
  },
  {
    "field-id": 2,
    "names": [
      "data"
    ]
  },
  {
    "field-id": 3,
    "names": [
      "location"
    ],
    "fields": [
      {
        "field-id": 4,
        "names": [
          "latitude",
          "lat"
        ]
      },
      {
        "field-id": 5,
        "names": [
          "longitude",
          "long"
        ]
      }
    ]
  }
]
Copy

참고

열(또는 정형 유형 열의 필드)에 연결된 이름 매핑이 없는 경우 IDs 필드는 연속적이지 않을 수 있습니다.

tpch.public 스키마에서 볼 권한이 있고 이름이 glue 로 시작하는 모든 Iceberg 테이블을 표시합니다.

SHOW ICEBERG TABLES LIKE 'glue%' IN tpch.public;
Copy

SHOW TABLES로 Iceberg 테이블 식별하기

SHOW TABLES 명령 출력에는 테이블이 Iceberg 테이블인지 여부를 나타내는 열이 있습니다. 일반 SHOW TABLES 출력 열 외에 이 열이 나타납니다.

열의 이름과 가능한 값은 다음과 같습니다.

열 이름

is_iceberg

테이블이 Iceberg 테이블인 경우 Y 이고 그렇지 않은 경우 N 입니다.