- 카테고리:
SEMANTIC_VIEW¶
쿼리 에 대한 시맨틱 뷰 를 지정합니다. SELECT 문의 FROM 절에서 SEMANTIC_VIEW (…)를 지정합니다.
참고
비공개 팩트 또는 메트릭 을 쿼리하거나 WHERE 조건에서 사용할 수 없습니다.
- 참고 항목:
구문¶
SEMANTIC_VIEW(
[<namespace>.]<semantic_view_name>
[
{
METRICS <metric> [ , ... ] |
FACTS <fact_expr> [ , ... ]
}
]
[ DIMENSIONS <dimension_expr> [ , ... ] ]
[ WHERE <predicate> ]
)
매개 변수¶
[namespace.]semantic_view_name
쿼리할 시맨틱 뷰의 식별자를 지정합니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
METRICS metric [ , ... ]
결과에서 반환할 메트릭을 지정합니다.
참고
메트릭을 사용하는 식을 지정할 수 없습니다. 예를 들어,
t1.metric_1 + 1
을 지정할 수 없습니다.비공개 메트릭 을 지정할 수 없습니다.
메트릭 이름:
메트릭의 이름을 한정할 수 있습니다(예:
my_logical_table.my_metric
).정규화되지 않은 이름을 사용하면 시맨틱 뷰에 동일한 정규화되지 않은 이름을 가진 다른 식별자가 없는 경우에만 작동합니다. 예를 들어, 메트릭과 차원이 동일한 정규화되지 않은 이름을 사용하는 경우 쿼리에서 메트릭의 이름을 정규화해야 합니다.
논리 테이블의 모든 메트릭을 지정하려면 논리 테이블 이름으로 정규화된 별표를 와일드카드로 사용합니다(예:
my_logical_table.*
).테이블 이름으로 정규화하지 않고는 별표를 지정할 수 없습니다.
결과에 표시할 메트릭을 순서대로 지정합니다.
FACTS fact_expr [ , ... ]
결과에 반환할 팩트를 지정합니다. 의미 체계 뷰에서 팩트 또는 차원을 참조하는 스칼라 식을 지정할 수도 있습니다. 스칼라 식을 지정하는 경우 해당 식의 차원과 팩트는 동일한 논리 테이블에 속해야 합니다.
참고
비공개 팩트 를 지정할 수 없습니다.
DIMENSIONS 절에 지정된 차원과 달리, 쿼리는 FACTS 절에 지정된 팩트를 그룹화하지 않습니다. 다른 행은 팩트에 대해 동일한 값을 포함할 수 있습니다.
결과에 표시되어야 하는 순서대로 팩트를 지정합니다.
DIMENSIONS dimension_expr [ , ... ]
결과에 반환할 차원을 지정합니다. 의미 체계 뷰에서 차원 또는 팩트를 참조하는 스칼라 식을 지정할 수도 있습니다. 스칼라 식을 지정하는 경우 해당 식의 차원과 팩트는 동일한 논리 테이블에 속해야 합니다.
쿼리는 여기에 지정하는 차원을 기준으로 결과를 그룹화합니다. 예를 들어, 논리 테이블에 차원에 대한 5개의 고유 값이 포함된 경우 DIMENSIONS 절에 해당 차원을 지정하면 5개의 행이 반환됩니다.
차원 이름:
차원의 이름을 한정할 수 있습니다(예:
my_logical_table.my_dimension
). 정규화되지 않은 이름을 사용하면 시맨틱 뷰에 동일한 정규화되지 않은 이름을 가진 다른 식별자가 없는 경우에만 작동합니다. 예를 들어, 메트릭과 차원이 동일한 정규화되지 않은 이름을 사용하는 경우 쿼리에서 차원의 이름을 정규화해야 합니다.논리 테이블의 모든 차원을 지정하려면 논리 테이블 이름으로 정규화된 별표를 와일드카드로 사용합니다(예:
my_logical_table.*
).테이블 이름으로 정규화하지 않고는 별표를 지정할 수 없습니다.
스칼라 식을 지정하면 다른 의미 체계 뷰 또는 메트릭에서 차원을 참조할 수 없습니다.
결과에 표시할 차원을 순서대로 지정합니다.
참고
윈도우 함수 메트릭을 반환하는 경우 해당 의미 체계 뷰에 대한 CREATE SEMANTIC VIEW 문의 PARTITION BY
dimension
, PARTITION BY EXCLUDINGdimension
및 ORDER BYdimension
절에 지정된 차원도 반환해야 합니다.윈도우 함수 메트릭 정의 및 쿼리 섹션을 참조하십시오.
WHERE predicate
부울 식입니다. 식에는 논리 연산자, 기본 제공 함수, 사용자 정의 함수(UDF) 가 포함될 수 있습니다.
조건에서는 차원, 팩트, 차원과 팩트를 사용하는 식만 참조할 수 있습니다.
다른 엔터티의 팩트를 지정하는 경우 의미 체계 뷰 정의의 RELATIONSHIPS 절에서 이러한 엔터티 간의 관계를 정의해야 합니다.
이 필터 조건은 메트릭이 계산되기 전에 적용됩니다.
사용법 노트¶
SEMANTIC_VIEW 절에서 다음 절 중 하나 이상을 지정해야 합니다.
METRICS
DIMENSIONS
FACTS
SEMANTIC_VIEW 절에서 이러한 모든 절을 생략할 수는 없습니다.
이러한 절의 조합을 지정할 때 다음 사항에 유의합니다.
동일한 SEMANTIC_VIEW 절에 FACTS 및 METRICS를 지정할 수 없습니다.
쿼리에서 FACTS 및 DIMENSIONS를 둘 다 지정할 수 있지만 차원이 팩트를 고유하게 결정할 수 있는 경우에만 그렇게 해야 합니다.
쿼리는 결과를 차원별로 그룹화합니다. 팩트가 차원에 의존하지 않는 경우, 결과는 비결정적일 수 있습니다.
FACTS 및 DIMENSIONS를 둘 다 지정하는 경우 쿼리에 사용된 모든 팩트 및 차원(WHERE 절에 지정된 항목 포함)은 동일한 논리 테이블에 정의되어야 합니다.
차원과 메트릭을 지정하는 경우 차원의 논리 테이블은 메트릭의 논리 테이블과 관련되어야 합니다.
또한 차원의 논리 테이블 세분성은 메트릭의 논리 테이블과 같거나 더 낮아야 합니다.
이 기준을 충족하는 차원을 확인하려면 SHOW SEMANTIC DIMENSIONS FOR METRIC 명령을 실행할 수 있습니다.
자세한 내용은 지정된 메트릭에 대해 반환할 수 있는 차원 선택 섹션을 참조하십시오.
DIMENSIONS 절에서 팩트를 참조하는 식을 지정할 수 있습니다. 마찬가지로, FACTS 절에서 차원을 참조하는 식을 지정할 수 있습니다. 예:
-- Dimension expression that refers to a fact DIMENSIONS my_table.my_fact -- Fact expression that refers to a dimension FACTS my_table.my_dimension
DIMENSIONS 및 FACTS를 사용할 때의 주요 차이점 중 하나는 쿼리가 DIMENSIONS 절에 지정된 차원과 식을 기준으로 결과를 그룹화한다는 것입니다.
결과에 표시하려는 순서대로 METRICS, DIMENSIONS 및 FACTS 절을 지정합니다.
결과에서 차원을 먼저 표시하려면 METRICS 앞에 DIMENSIONS 을 지정합니다. 그렇지 않으면 METRICS 을 먼저 지정하십시오.
예를 들어, METRICS 절을 먼저 지정한다고 가정해 보겠습니다.
SELECT * FROM SEMANTIC_VIEW( tpch_analysis METRICS customer.customer_order_count DIMENSIONS customer.customer_name ) ORDER BY customer_name LIMIT 5;
출력에서 첫 번째 열은 메트릭 열(
customer_order_count
)이고 두 번째 열은 차원 열(customer_name
)입니다.+----------------------+--------------------+ | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME | |----------------------+--------------------| | 6 | Customer#000000001 | | 7 | Customer#000000002 | | 0 | Customer#000000003 | | 20 | Customer#000000004 | | 4 | Customer#000000005 | +----------------------+--------------------+
대신 DIMENSIONS 절을 먼저 지정하는 경우:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_name METRICS customer.customer_order_count ) ORDER BY customer_name LIMIT 5;
출력에서 첫 번째 열은 차원 열(
customer_name
)이고 두 번째 열은 메트릭 열(customer_order_count
)입니다.+--------------------+----------------------+ | CUSTOMER_NAME | CUSTOMER_ORDER_COUNT | |--------------------+----------------------| | Customer#000000001 | 6 | | Customer#000000002 | 7 | | Customer#000000003 | 0 | | Customer#000000004 | 20 | | Customer#000000005 | 4 | +--------------------+----------------------+
SEMANTIC_VIEW 절로 정의된 관계를 JOIN, PIVOT, UNPIVOT, GROUP BY, 공통 테이블 식(CTEs) 등 다른 SQL 구조에서 사용할 수 있습니다.
출력 열 헤더는 메트릭 및 차원의 정규화되지 않은 이름을 사용합니다.
이름이 같은 메트릭 및 차원이 여러 개 있는 경우 테이블 별칭을 사용하여 열 헤더에 다른 이름을 할당합니다. 출력에서 중복된 열 이름 처리하기 섹션을 참조하십시오.
예¶
의미 체계 뷰 쿼리 섹션을 참조하십시오.