의미 체계 뷰의 YAML 사양¶
의미 체계 뷰는 데이터에 대한 비즈니스 개념을 정의하는 스키마 수준 오브젝트로, 사용자가 비즈니스 용어를 사용하여 데이터를 더 쉽게 쿼리하고 분석할 수 있도록 합니다. YAML 사양을 사용하여 Cortex Analyst 에서 의미 체계 뷰를 생성하거나 SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML 저장 프로시저를 사용하여 YAML 사양에서 의미 체계 뷰를 생성합니다.
개요¶
**의미 체계 뷰는 Snowflake에서 비즈니스 의미 체계를 정의하기 위한 권장 접근 방식**입니다. Snowflake의 권한 시스템, 공유 메커니즘, 메타데이터 카탈로그와 통합되는 스키마 수준 오브젝트입니다.
참고
레거시 의미 체계 모델 YAML 파일(스테이지에 저장됨)은 이전 버전과의 호환성을 위해 Cortex Analyst 와 함께 계속 사용할 수 있지만, 새로운 구현에는 의미 체계 뷰를 사용하는 것이 좋습니다.
레거시 의미 체계 모델에 대한 의미 체계 뷰의 이점은 다음과 같습니다.
네이티브 Snowflake 통합: 전체 RBAC, 공유 및 카탈로그 지원이 있는 스키마 수준 오브젝트
고급 기능: 파생 메트릭 및 액세스 한정자 지원(공개/비공개)
더 나은 거버넌스: Snowflake의 권한 및 공유 시스템과 통합
단순화된 관리: 스테이지에서 YAML 파일을 관리할 필요 없음
YAML 형식¶
의미 체계 뷰는 YAML 사양을 통해 동작을 정의하여 읽기 가능한 일반 텍스트 정의를 허용합니다.
의미 체계 뷰 YAML 사양의 일반 구문은 다음과 같습니다.
중요
join_type 또는 레거시 의미 체계 모델에 사용된 relationship_type 필드는 의미 체계 뷰에 필요하지 않습니다. 관계 유형은 데이터에서 자동으로 유추됩니다.
핵심 개념¶
테이블¶
논리 테이블은 비즈니스 엔터티(예: 고객, 주문 또는 제품)를 나타내며 물리적 데이터베이스 테이블에 매핑됩니다. 각 논리 테이블은 다음을 정의할 수 있습니다.
기본 테이블: 물리적 테이블의 정규화된 이름
기본 키: 행을 고유하게 식별하는 열
동의어: 테이블의 대체 이름
설명: 테이블이 나타내는 내용에 대한 비즈니스 친화적인 설명
Dimensions¶
차원은 분석을 위한 컨텍스트를 제공하는 범주형 특성을 나타냅니다. “누가”, “무엇을”, “어디서”, “언제”라는 질문에 답변합니다. 차원은 다음과 같을 수 있습니다.
일반 차원: 텍스트, 숫자 또는 기타 범주형 값
시간 차원: 특수한 시간 기반 처리가 포함된 날짜 또는 타임스탬프 열
차원의 속성¶
expr: 차원 값을 계산하는 SQL 식synonyms: 사용자가 사용할 수 있는 대체 용어unique: 값이 행 전체에서 고유한지 여부is_enum: 차원에 고정 값 세트가 있는지 여부cortex_search_service: 의미 체계 검색을 위한 선택적 Cortex Search Service
물리적 차원의 선택적 속성¶
이러한 필드는 선택 사항이지만, 의미 체계 뷰 검색에서 고품질의 결과를 생성하는 데 권장됩니다.
synonyms이 차원을 지칭하는 데 사용되는 다른 용어/구문 목록입니다. 이 의미 체계 모델의 모든 동의어에서 고유해야 합니다.
description이 차원에 대한 간략한 설명입니다. 이 차원이 나타내는 데이터와 같이 유용한 컨텍스트를 제공하는 정보를 포함합니다.
unique이 차원이 고유한 값을 가지고 있음을 나타내는 부울 값입니다.
sample_values이 열의 샘플 값(있는 경우)입니다. 사용자 질문에 참조될 가능성이 있는 모든 값을 추가합니다.
is_enum부울 값입니다.
True인 경우sample_values필드의 값은 가능한 값의 전체 목록으로 간주되며 모델은 해당 열에서 필터링할 때 해당 값 중에서만 선택합니다.cortex_search_service이 차원에 사용할 Cortex Search Service를 지정합니다. 다음과 같은 필드가 있습니다.
service: Cortex Search Service의 이름입니다.literal_column: (선택 사항) Cortex Search Service의 리터럴 값을 포함하는 열입니다.database: (선택 사항) Cortex Search Service가 위치한 데이터베이스입니다. 기본값은base_table의 데이터베이스입니다.schema: (선택 사항) Cortex Search Service가 위치한 스키마입니다. 기본값은base_table의 스키마입니다.
cortex_search_service``는 이름만 지정할 수 있는 ``cortex_search_service_name필드를 대체합니다. ``cortex_search_service_name``은 더 이상 사용되지 않습니다.
시간 차원의 선택적 속성¶
이러한 필드는 선택 사항이지만, 의미 체계 뷰 검색에서 고품질의 결과를 생성하는 데 권장됩니다.
synonyms이 시간 차원을 지칭하는 데 사용되는 다른 용어/구문 목록입니다. 이 의미 체계 모델의 모든 동의어에서 고유해야 합니다.
description이 차원에 대한 간략한 설명입니다. 이 차원이 참조 지점으로 사용하는 타임존과 같이 유용한 컨텍스트를 제공하는 정보를 포함합니다.
unique:이 열에 고유한 값이 있음을 나타내는 부울 값입니다.
sample_values:이 열의 샘플 값(있는 경우)입니다. 사용자 질문에서 참조될 가능성이 있는 모든 값을 추가합니다.
팩트¶
팩트는 특정 비즈니스 이벤트 또는 트랜잭션을 나타내는 행 수준의 정량적 특성입니다. 팩트는 개별 판매 금액, 구매 수량 또는 비용과 같이 가장 세분화된 수준에서 “얼마” 또는 “얼마나 많은지”를 캡처합니다.
팩트는 일반적으로 차원과 메트릭을 구성하는 데 도움이 되는 의미 체계 뷰 내에서 “헬퍼” 개념으로 작동합니다.
팩트의 속성은 다음과 같습니다.
expr: 팩트 값을 계산하는 SQL 식access_modifier: ``private_access``로 설정하여 쿼리에서 숨기기(중간 계산에 유용함)data_type: 팩트의 데이터 타입
메트릭¶
메트릭은 SUM, AVG, COUNT와 같은 함수를 통해 팩트 또는 기타 열을 집계하여 계산된 비즈니스 성과의 정량화 가능한 측정값입니다.
두 가지 유형의 메트릭:
테이블 수준 메트릭: 특정 논리 테이블로 범위 지정, 해당 테이블 내의 데이터 집계
파생 메트릭: 여러 테이블의 메트릭을 결합하는 뷰 수준 메트릭
메트릭 속성:¶
expr: 집계 함수가 있는 SQL 식access_modifier: ``private_access``로 설정하여 쿼리에서 숨기기(중간 계산에 유용함)synonyms: 메트릭의 대체 용어
메트릭의 선택적 속성¶
:ref:`메트릭에 대해 비가산이어야 하는 차원을 지정 <label-semantic_views_metrics_semi_additive>`하려는 경우 다음 필드를 사용합니다.
non_additive_dimensions메트릭이 집계되지 않아야 하는 차원을 지정합니다.
table차원이 포함된 논리 테이블의 이름입니다.
dimension차원 이름입니다.
sort_direction:ref:`비가산 차원의 정렬 순서 <label-semantic_views_metrics_semi_additive_order>`입니다. 다음 값 중 하나를 지정할 수 있습니다.
ascending: 차원 값을 오름차순으로 정렬합니다.descending: 차원 값을 내림차순으로 정렬합니다.
기본값:
ascendingnull_orderNULLs를 NULL이 아닌 값 앞에 정렬할지 아니면 뒤에 정렬할지 여부를 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
first: NULLs가 NULL이 아닌 값 앞에 정렬됩니다.last: NULLs가 NULL이 아닌 값 뒤에 정렬됩니다.
기본값:
sort_direction필드(ascending또는descending)의 값에 따라 다릅니다. :ref:`ORDER BY 설명서의 사용법 노트 <label-order_by_nulls>`를 참조하세요.
참고
행은 비가산 차원을 기준으로 정렬되므로 차원을 지정하는 순서가 중요합니다. 이는 ORDER BY 절에서 열을 지정하는 순서와 유사합니다.
다음 예제에서는
m_account_balance메트릭을year_dim및month_dim차원으로 집계할 수 없음을 지정합니다.의미 체계 뷰에서 두 특정 논리 테이블 간에 여러 관계 경로가 있는 경우, 다음 필드를 사용하여 :ref:`사용할 관계 경로를 지정 <label-semantic_views_create_logical_tables_relations>`합니다.
using_relationships-
메트릭을 계산할 때 논리 테이블을 조인하는 데 사용할 관계의 이름을 지정합니다.
파생 메트릭¶
파생 메트릭은 특정 테이블에 연결되지 않은 뷰 수준 메트릭입니다. 여러 테이블의 메트릭을 결합하거나 전체 뷰에서 계산을 수행할 수 있습니다.
파생 메트릭의 예:
관계¶
관계는 논리 테이블이 함께 조인되는 방식을 정의합니다. 각 관계는 다음을 지정합니다.
left_table: 외래 키가 포함된 테이블right_table: 참조되는 테이블relationship_columns:left_column및 ``right_column``처럼 조인할 열 쌍
관계 유형(일대일, 다대일)은 데이터 및 기본 키 정의에서 자동으로 유추됩니다.
참고
레거시 의미 체계 모델과 달리 의미 체계 뷰에는 명시적 join_type 또는 relationship_type 사양이 필요하지 않습니다. 이는 자동으로 결정됩니다.
필터¶
필터는 이름으로 참조할 수 있는 일반적으로 사용되는 필터링 조건을 정의합니다. 이는 쿼리 전체에서 일관된 필터링 논리를 보장하는 데 도움이 됩니다.
예:
유효성 검사된 쿼리¶
검증된 쿼리는 해당 SQL 쿼리가 포함된 질문 예제입니다. Cortex Analyst 가 유사한 질문에 답변하는 방법을 이해하고 사용자를 위한 설명서 역할을 하는 데 도움을 줍니다.
속성:
question: 자연어 질문sql: 질문에 답변하는 SQL 쿼리verified_by: 쿼리가 올바른지 확인한 사람(선택 사항)verified_at: 확인된 경우의 타임스탬프(선택 사항)use_as_onboarding_question: 이를 사용자에게 제안으로 표시하는 플래그(선택 사항)
액세스 한정자¶
의미 체계 뷰는 팩트 및 메트릭에 대한 액세스 한정자를 지원하므로 가시성을 제어할 수 있습니다.
``public_access``(기본값): 사용자가 표시 및 쿼리 가능
private_access: 쿼리에서 숨겨지며, 중간 계산에만 사용됨
예:
Cortex Analyst의 사용자 지정 지침¶
SQL 명령을 사용하여 의미 체계 뷰 정의에서 사용자 지정 지침을 제공합니다. 이러한 지침은 쿼리가 생성되는 방법과 질문을 분류하는 방법을 안내합니다. 이러한 지침은 YAML 사양의 일부가 아니지만 CREATE SEMANTIC VIEW 명령을 사용하여 설정됩니다.
자세한 내용은 |cortex-analyst|용 사용자 지정 지침 제공하기 섹션을 참조하십시오.
의미 체계 뷰 YAML 예제¶
다음은 의미 체계 뷰 YAML 사양의 전체 예제입니다.
YAML에서 의미 체계 뷰 생성¶
YAML 사양에서 의미 체계 뷰를 생성하려면 SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML 저장 프로시저를 사용합니다.
자세한 내용은 YAML 사양에서 의미 체계 뷰 만들기 섹션을 참조하십시오.
의미 체계 뷰에서 YAML 가져오기¶
의미 체계 뷰를 YAML 형식으로 내보내려면 SYSTEM$READ_YAML_FROM_SEMANTIC_VIEW 함수를 사용합니다.
자세한 내용은 의미 체계 뷰의 YAML 사양 가져오기 섹션을 참조하십시오.
레거시 의미 체계 모델과의 차이점¶
레거시 의미 체계 모델 YAML 파일에서 의미 체계 뷰로 마이그레이션하는 경우 다음과 같은 주요 차이점에 유의합니다.
특징 |
레거시 의미 체계 모델 |
의미 체계 뷰 |
|---|---|---|
저장 |
스테이지의 YAML 파일 |
데이터베이스의 스키마 수준 오브젝트 |
권한 |
역할 기반 액세스 제어 |
전체 Snowflake RBAC 통합 |
공유 |
수동 파일 공유 |
네이티브 Snowflake 공유 |
조인 유형 |
|
자동으로 추론됨 |
파생 메트릭 |
지원되지 않음 |
완전히 지원됨 |
액세스 한정자 |
지원되지 않음 |
|
사용자 지정 지침 |
YAML 파일에서 |
SQL 명령을 통해 설정 |
레거시 의미 체계 모델에서 의미 체계 뷰로 변환하는 경우 다음을 수행합니다.
관계에서
join_type및relationship_type제거뷰 수준 계산에 파생 메트릭 사용 고려하기
비공개로 설정하려는 팩트/메트릭에 대한
access_modifier추가사용자 지정 지침을 SQL CREATE SEMANTIC VIEW 명령으로 이동
