SHOW SEMANTIC VIEWS

SHOW SEMANTIC VIEWS

액세스 권한이 있는 시맨틱 뷰(semantic view)를 나열하는 명령이에요. 현재 또는 지정한 스키마의 뷰를 나열할 수 있어요.

출처: 문서

본문

액세스 권한이 있는 시맨틱 뷰를 나열해요. 현재 또는 지정한 스키마의 뷰를 나열할 수 있어요. 출력은 뷰 메타데이터와 속성을 데이터베이스, 스키마, 시맨틱 뷰 이름 기준 사전순으로 반환해요. 제공된 필터로 결과를 필터링하려면 이 점을 유의해야 해요.

구문

SHOW [ TERSE ] SEMANTIC VIEWS [ 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 컬럼 값은 항상 SEMANTIC_VIEW), database_name, schema_name. 기본값: 값 없음(모든 컬럼이 출력에 포함됨).

LIKE 'pattern'

선택적으로 객체 이름으로 명령 출력을 필터링해요. 필터는 SQL 와일드카드 문자(%_)를 지원하며 대소문자를 구분하지 않는 패턴 매칭을 사용해요. 예를 들어 다음 패턴들은 같은 결과를 반환해요:

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

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

[ IN ... ]

선택적으로 명령의 범위를 지정해요. 다음 중 하나를 지정해요:

  • ACCOUNT: 전체 계정에 대한 레코드를 반환해요.
  • DATABASE, DATABASE db_name: 현재 사용 중인 데이터베이스 또는 지정한 데이터베이스(db_name)에 대한 레코드를 반환해요. DATABASE를 db_name 없이 지정했는데 사용 중인 데이터베이스가 없으면 이 키워드는 출력에 영향을 주지 않아요.
  • SCHEMA, SCHEMA schema_name: 현재 사용 중인 스키마 또는 지정한 스키마(schema_name)에 대한 레코드를 반환해요. SCHEMA는 데이터베이스를 사용 중이거나 정규화된 schema_name(예: db.schema)을 지정한 경우 선택 사항이에요. 사용 중인 데이터베이스가 없으면 SCHEMA를 지정해도 출력에 영향을 주지 않아요.

IN ... 을 생략하면 명령의 범위는 세션이 현재 사용 중인 데이터베이스가 있는지에 따라 달라져요:

  • 데이터베이스를 현재 사용 중이면, 명령은 데이터베이스에서 볼 권한이 있는 객체를 반환해요. 이는 IN DATABASE를 지정한 것과 같은 효과예요.
  • 사용 중인 데이터베이스가 없으면, 명령은 계정에서 볼 권한이 있는 객체를 반환해요. 이는 IN ACCOUNT를 지정한 것과 같은 효과예요.

참고: 데이터베이스 컨텍스트에서 IN 절 없이 SHOW 명령을 사용하면 예상보다 적은 결과가 나올 수 있어요. IN 절을 사용하지 않으면 같은 이름의 객체는 한 번만 표시돼요.

STARTS WITH 'name_string'

선택적으로 객체 이름의 시작 부분에 나타나는 문자를 기준으로 명령 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하고 대소문자를 구분해요. 예를 들어 다음 문자열들은 다른 결과를 반환해요:

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

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

LIMIT [ 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'는 결과를 반환할 수 있어요.

출력

명령 출력은 시맨틱 뷰 속성과 메타데이터를 다음 컬럼으로 제공해요:

컬럼 설명
created_on 시맨틱 뷰가 생성된 날짜와 시각이에요.
name 시맨틱 뷰의 이름이에요.
kind 뷰 유형이에요. 항상 SEMANTIC_VIEW예요. 이 컬럼은 TERSE를 지정한 경우에만 출력에 나타나요.
database_name 시맨틱 뷰가 저장된 데이터베이스예요.
schema_name 시맨틱 뷰가 저장된 스키마예요.
comment 시맨틱 뷰에 대한 주석이에요.
owner 시맨틱 뷰를 소유하는 역할이에요.
owner_role_type 객체를 소유하는 역할의 유형으로, 예를 들어 ROLE이에요. Snowflake Native App이 객체를 소유하면 값은 APPLICATION이에요. 객체를 삭제하면 삭제된 객체에는 소유 역할이 없으므로 Snowflake는 NULL을 반환해요.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요:

권한 객체 참고
Any Semantic view

스키마의 객체를 운영하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기(Creating custom roles)를 참고해요. 보안 객체에 대한 SQL 작업 수행을 위한 역할·권한 부여에 대한 일반 정보는 액세스 제어 개요(Overview of Access Control)를 참고해요.

사용 메모

  • 이 명령은 명령을 실행하는 역할의 액세스 권한에 따라 지정한 객체 유형에 대해 최대 1만 개의 레코드를 반환해요. 1만 개 제한을 초과하는 레코드는 필터가 적용돼도 반환되지 않아요. 1만 개를 초과하는 결과를 보려면 Snowflake 정보 스키마의 해당 뷰(존재하는 경우)를 쿼리해요.

예제

다음 예제는 현재 사용 중인 데이터베이스의 시맨틱 뷰를 나열해요:

SHOW SEMANTIC VIEWS;
+-------------------------------+----------------------+---------------+-------------+---------+---------+-----------------+-----------+
| created_on                    | name                 | database_name | schema_name | comment | owner   | owner_role_type | extension |
|-------------------------------+----------------------+---------------+-------------+---------+---------+-----------------+-----------|
| 2025-04-10 08:29:02.732 -0700 | MY_SEMANTIC_VIEW_1   | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:29:21.117 -0700 | MY_SEMANTIC_VIEW_2   | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:29:38.040 -0700 | MY_SEMANTIC_VIEW_3   | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:33.161 -0700 | MY_SEMANTIC_VIEW_4   | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:46.294 -0700 | MY_SEMANTIC_VIEW_5   | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:58.480 -0700 | MY_SEMANTIC_VIEW_6   | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-02-28 16:16:04.002 -0800 | O_TPCH_SEMANTIC_VIEW | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-03-21 07:03:54.120 -0700 | TPCH_REV_ANALYSIS    | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
+-------------------------------+----------------------+---------------+-------------+---------+---------+-----------------+-----------+

다음 예제는 출력 컬럼의 부분집합만 포함해요:

SHOW TERSE SEMANTIC VIEWS;
+-------------------------------+-----------------------+---------------+---------------+-------------------+
| created_on                    | name                  | kind          | database_name | schema_name       |
|-------------------------------+-----------------------+---------------+---------------+-------------------|
| 2025-04-10 08:29:02.732 -0700 | MY_SEMANTIC_VIEW_1    | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-04-10 08:29:21.117 -0700 | MY_SEMANTIC_VIEW_2    | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-04-10 08:29:38.040 -0700 | MY_SEMANTIC_VIEW_3    | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-04-10 08:47:33.161 -0700 | MY_SEMANTIC_VIEW_4    | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-04-10 08:47:46.294 -0700 | MY_SEMANTIC_VIEW_5    | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-04-10 08:47:58.480 -0700 | MY_SEMANTIC_VIEW_6    | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-02-28 16:16:04.002 -0800 | O_TPCH_SEMANTIC_VIEW  | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
| 2025-03-21 07:03:54.120 -0700 | TPCH_REV_ANALYSIS     | SEMANTIC_VIEW | MY_DB         | MY_SCHEMA         |
+-------------------------------+-----------------------+---------------+---------------+-------------------+

다음 예제는 이름에 tpch 문자열이 있는 시맨틱 뷰를 표시해요:

SHOW SEMANTIC VIEWS LIKE '%tpch%';
+-------------------------------+----------------------+---------------+-------------+---------+---------+-----------------+-----------+
| created_on                    | name                 | database_name | schema_name | comment | owner   | owner_role_type | extension |
|-------------------------------+----------------------+---------------+-------------+---------+---------+-----------------+-----------|
| 2025-02-28 16:16:04.002 -0800 | O_TPCH_SEMANTIC_VIEW | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-03-21 07:03:54.120 -0700 | TPCH_REV_ANALYSIS    | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
+-------------------------------+----------------------+---------------+-------------+---------+---------+-----------------+-----------+

다음 예제는 MY_SEMANTIC_VIEW로 시작하는 이름을 가진 시맨틱 뷰를 표시해요:

SHOW SEMANTIC VIEWS STARTS WITH 'MY_SEMANTIC_VIEW';
+-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------+
| created_on                    | name               | database_name | schema_name | comment | owner   | owner_role_type | extension |
|-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------|
| 2025-04-10 08:29:02.732 -0700 | MY_SEMANTIC_VIEW_1 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:29:21.117 -0700 | MY_SEMANTIC_VIEW_2 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:29:38.040 -0700 | MY_SEMANTIC_VIEW_3 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:33.161 -0700 | MY_SEMANTIC_VIEW_4 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:46.294 -0700 | MY_SEMANTIC_VIEW_5 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:58.480 -0700 | MY_SEMANTIC_VIEW_6 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
+-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------+

다음 예제는 MY_SEMANTIC_VIEW로 시작하는 이름을 가진 처음 세 개의 시맨틱 뷰를 표시해요:

SHOW SEMANTIC VIEWS STARTS WITH 'MY_SEMANTIC_VIEW' LIMIT 3;
+-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------+
| created_on                    | name               | database_name | schema_name | comment | owner   | owner_role_type | extension |
|-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------|
| 2025-04-10 08:29:02.732 -0700 | MY_SEMANTIC_VIEW_1 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:29:21.117 -0700 | MY_SEMANTIC_VIEW_2 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:29:38.040 -0700 | MY_SEMANTIC_VIEW_3 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
+-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------+

다음 예제는 MY_SEMANTIC_VIEW_3이라는 뷰 이후에 MY_SEMANTIC_VIEW로 시작하는 이름을 가진 세 개의 시맨틱 뷰를 표시해요:

SHOW SEMANTIC VIEWS STARTS WITH 'MY_SEMANTIC_VIEW' LIMIT 3 FROM 'MY_SEMANTIC_VIEW_3';
+-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------+
| created_on                    | name               | database_name | schema_name | comment | owner   | owner_role_type | extension |
|-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------|
| 2025-04-10 08:47:33.161 -0700 | MY_SEMANTIC_VIEW_4 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:46.294 -0700 | MY_SEMANTIC_VIEW_5 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
| 2025-04-10 08:47:58.480 -0700 | MY_SEMANTIC_VIEW_6 | MY_DB         | MY_SCHEMA   |         | MY_ROLE | ROLE            | NULL      |
+-------------------------------+--------------------+---------------+-------------+---------+---------+-----------------+-----------+

더 알아보기 (Learn more)