SHOW SEMANTIC DIMENSIONS FOR METRIC
SHOW SEMANTIC DIMENSIONS FOR METRIC
시맨틱 뷰(semantic view)에서 특정 메트릭(metric)을 쿼리할 때 반환할 수 있는 차원(dimension)을 나열하는 명령이에요.
출처: 문서
본문
시맨틱 뷰에서 특정 메트릭을 쿼리할 때 반환할 수 있는 차원을 나열해요.
시맨틱 뷰 쿼리에서 차원과 메트릭을 지정하면, 차원의 논리 테이블이 메트릭의 논리 테이블과 관련되어야 해요. 또한 차원의 논리 테이블은 메트릭의 논리 테이블보다 같거나 더 낮은 수준의 세분성(granularity)을 가져야 해요. 이 기준을 충족하는 차원을 판별하려면 이 명령을 실행할 수 있어요. 자세한 내용은 특정 메트릭에 반환할 수 있는 차원 선택(Choosing the dimensions that you can return for a given metric)을 참고해요.
구문
SHOW SEMANTIC DIMENSIONS [ LIKE '<pattern>' ]
IN <semantic_view_name>
FOR METRIC <metric_name>
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> ]
매개변수
LIKE 'pattern'
선택적으로 객체 이름으로 명령 출력을 필터링해요. 필터는 SQL 와일드카드 문자(%와 _)를 지원하며 대소문자를 구분하지 않는 패턴 매칭을 사용해요. 예를 들어 다음 패턴들은 같은 결과를 반환해요:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
기본값: 값 없음(출력에 필터링이 적용되지 않음).
IN semantic_view_name
차원과 메트릭을 포함하는 시맨틱 뷰의 이름을 지정해요.
FOR METRIC metric_name
연결된 차원을 표시할 메트릭의 이름을 지정해요.
STARTS WITH 'name_string'
선택적으로 객체 이름의 시작 부분에 나타나는 문자를 기준으로 명령 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하고 대소문자를 구분해요. 예를 들어 다음 문자열들은 다른 결과를 반환해요:
... STARTS WITH 'B' ...
... STARTS WITH 'b' ...
기본값: 값 없음(출력에 필터링이 적용되지 않음).
LIMIT
선택적으로 반환되는 최대 행 수를 제한해요. 반환되는 실제 행 수는 지정된 제한보다 적을 수 있어요. 기본값: 값 없음(출력에 제한이 적용되지 않음).
출력
명령 출력은 객체의 속성과 메타데이터를 설명하는 다음 컬럼을 포함해요:
| 컬럼 | 설명 |
|---|---|
| table_name | 차원의 논리 테이블 이름이에요. |
| name | 차원의 이름이에요. |
| data_type | 차원의 데이터 타입이에요. |
| required | 차원이 메트릭에 필수인지 여부를 나타내요. |
| synonyms | 차원의 대체 이름 또는 동의어예요. |
| comment | 차원에 대한 주석이에요. |
액세스 제어 요구 사항
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요:
| 권한 | 객체 | 참고 |
|---|---|---|
| Any | Semantic view |
스키마의 객체를 운영하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기(Creating custom roles)를 참고해요. 보안 객체에 대한 SQL 작업 수행을 위한 역할·권한 부여에 대한 일반 정보는 액세스 제어 개요(Overview of Access Control)를 참고해요.
사용 메모
- 이 명령은 실행에 웨어하우스가 필요하지 않아요.
- 이 명령은 현재 사용자의 현재 역할에 액세스 권한이 하나 이상 부여된 객체만 반환해요.
MANAGE GRANTS액세스 권한은 보유자에게 계정의 모든 객체를 볼 수 있는 권한을 암묵적으로 부여해요. 기본적으로 계정 관리자(ACCOUNTADMIN 역할)와 보안 관리자(SECURITYADMIN 역할)만MANAGE GRANTS권한을 가져요.- 이 명령의 출력을 후처리하려면 파이프 연산자(
->>)나RESULT_SCAN함수를 사용할 수 있어요. 두 구성 모두 출력을 쿼리할 수 있는 결과 집합으로 취급해요. 예를 들어 SHOW 명령 출력에서 특정 컬럼을 선택하거나 행을 필터링할 수 있어요. - 출력 컬럼을 참조할 때는 큰따옴표로 묶은 식별자를 사용해요. 예를 들어
type출력 컬럼을 선택하려면SELECT "type"이라고 지정해요. SHOW 명령의 출력 컬럼 이름은 소문자이므로 큰따옴표로 묶은 식별자를 사용해야 해요. LIMIT <rows>의 값은 10000을 초과할 수 없어요. LIMIT rows를 생략하면 결과 집합이 1만 행보다 크면 명령이 오류를 일으켜요. 1만 개를 초과하는 결과를 보려면 LIMIT rows를 포함하거나 Snowflake 정보 스키마의 해당 뷰를 쿼리해요.
예제
다음 예제는 tpch_rev_analysis 시맨틱 뷰에서 order_average_value 메트릭에 대한 쿼리에 지정할 수 있는 차원을 나열해요:
SHOW SEMANTIC DIMENSIONS IN tpch_rev_analysis FOR METRIC order_average_value;
+------------+---------------+-------------+----------+-------------------+--------------------------------+
| table_name | name | data_type | required | synonyms | comment |
|------------+---------------+-------------+----------+-------------------+--------------------------------|
| CUSTOMERS | CUSTOMER_NAME | VARCHAR(25) | false | ["customer name"] | Name of the customer |
| ORDERS | ORDER_DATE | DATE | false | NULL | Date when the order was placed |
| ORDERS | ORDER_YEAR | NUMBER(4,0) | false | NULL | Year when the order was placed |
+------------+---------------+-------------+----------+-------------------+--------------------------------+
다음 예제는 창 함수 메트릭(window function metric)을 쿼리할 때 필수인 차원을 나열해요. 이 예제는 윈도우 함수 메트릭 정의(Defining window function metrics)에서 정의한 시맨틱 뷰를 사용해요. avg_7_days_sales_quantity 메트릭에 대한 쿼리에 지정할 수 있는 차원을 반환해요.
SHOW SEMANTIC DIMENSIONS IN sv_window_function_example FOR METRIC avg_7_days_sales_quantity;
+------------+-----------+--------------+----------+----------+---------+
| table_name | name | data_type | required | synonyms | comment |
|------------+-----------+--------------+----------+----------+---------|
| DATE | DATE | DATE | true | NULL | NULL |
| DATE | D_DATE_SK | NUMBER(38,0) | false | NULL | NULL |
| DATE | YEAR | NUMBER(38,0) | true | NULL | NULL |
+------------+-----------+--------------+----------+----------+---------+
required 컬럼에 date와 year 차원에 대해 true가 포함된 것을 확인할 수 있어요. avg_7_days_sales_quantity 메트릭의 정의가 PARTITION BY EXCLUDING에 date와 year 차원을 지정하기 때문이에요:
CREATE OR REPLACE SEMANTIC VIEW sv_window_function_example
...
METRICS (
...
store_sales.avg_7_days_sales_quantity as AVG(total_sales_quantity)
OVER (PARTITION BY EXCLUDING date.date, date.year ORDER BY date.date
RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW)
WITH SYNONYMS = ('Running 7-day average of total sales quantity'),
따라서 avg_7_days_sales_quantity 메트릭에 대한 모든 쿼리에서 date와 year 차원이 필수예요. 쿼리에서 이 차원들을 지정해야 해요:
SELECT * FROM SEMANTIC_VIEW (
sv_window_function_example
DIMENSIONS date.date, date.year
METRICS store_sales.avg_7_days_sales_quantity
);