CREATE SEMANTIC VIEW¶
현재/지정된 스키마에 새 시맨틱 뷰 를 만듭니다.
구문¶
CREATE [ OR REPLACE ] SEMANTIC VIEW [ IF NOT EXISTS ] <name>
TABLES ( logicalTable [ , ... ] )
[ RELATIONSHIPS ( relationshipDef [ , ... ] ) ]
[ FACTS ( semanticExpression [ , ... ] ) ]
[ DIMENSIONS ( semanticExpression [ , ... ] ) ]
[ METRICS ( semanticExpression [ , ... ] ) ]
[ COMMENT = '<comment_about_semantic_view>' ]
[ COPY GRANTS ]
여기서,
logicalTable ::=
[ <table_alias> AS ] <table_name>
[ PRIMARY KEY ( <primary_key_column_name> [ , ... ] ) ]
[
UNIQUE ( <unique_column_name> [ , ... ] )
[ ... ]
]
[ WITH SYNONYMS [ = ] ( '<synonym>' [ , ... ] ) ]
[ COMMENT = '<comment_about_table>' ]
relationshipDef ::=
[ <relationship_identifier> AS ]
<table_alias> ( <column_name> [ , ... ] )
REFERENCES
<ref_table_alias> [ ( <ref_column_name> [ , ... ] ) ]
semanticExpression ::=
<table_alias>.<dim_fact_or_metric> AS <sql_expr>
[ WITH SYNONYMS [ = ] ( '<synonym>' [ , ... ] ) ]
[ COMMENT = '<comment_about_dim_fact_or_metric>' ]
참고
절의 순서가 중요합니다. 예를 들어 DIMENSIONS 절 앞에 FACTS 절을 지정해야 합니다.
이후 절에서 정의된 시맨틱 식을 참조할 수 있습니다. 예를 들어 fact_1
뒤에 fact_2
가 정의되어 있더라도 fact_2
를 fact_1
의 정의에 사용할 수 있습니다.
필수 매개 변수¶
name
시맨틱 뷰의 이름을 지정합니다. 이 이름은 테이블이 생성되는 스키마에 대해 고유해야 합니다.
또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
선택적 매개 변수¶
COMMENT = 'comment_about_semantic_view'
시맨틱 뷰에 대한 설명을 지정합니다.
COPY GRANTS
OR REPLACE 를 지정하여 기존 시맨틱 뷰를 새 시맨틱 뷰로 바꾸는 경우 이 매개 변수를 설정하여 기존 시맨틱 뷰에 부여된 모든 권한을 새 시맨틱 뷰에 복사할 수 있습니다.
이 명령은 OWNERSHIP 을 제외한 모든 권한 부여를 기존 시맨틱 뷰에서 새 시맨틱 뷰로 복사합니다. CREATE SEMANTIC VIEW 문을 실행하는 역할은 새 뷰를 소유합니다.
새 시맨틱 뷰는 스키마의 오브젝트 유형에 대해 정의된 향후 모든 권한 부여를 상속하지는 않습니다.
권한 부여 복사 작업은 CREATE SEMANTIC VIEW 문에서 원자적으로(즉, 같은 트랜잭션 내에서) 발생합니다.
COPY GRANTS 를 생략하는 경우 새 시맨틱 뷰는 기존 시맨틱 뷰에 부여된 명시적 액세스 권한을 상속하지 않지만 스키마에서 오브젝트 유형에 대해 정의된 향후 부여는 상속합니다.
논리 테이블의 매개 변수(logicalTable
)¶
table_alias AS
논리 테이블의 선택적 별칭을 지정합니다.
별칭을 지정하는 경우 관계, 팩트, 차원 및 메트릭에서 논리 테이블을 참조할 때 이 별칭을 사용해야 합니다.
별칭을 지정하지 않으면 정규화되지 않은 논리적 테이블 이름을 사용하여 테이블을 참조합니다.
table_name
논리 테이블의 이름을 지정합니다.
PRIMARY KEY ( primary_key_column_name [ , ... ] )
테이블의 기본 키 역할을 하는 논리 테이블에서 하나 이상의 열 이름을 지정합니다.
UNIQUE ( unique_column_name [ , ... ] )
고유 값을 포함하는 열의 이름 또는 고유한 값 조합을 포함하는 열의 이름을 지정합니다.
예를 들어
service_id
열에 고유 값이 포함된 경우 지정합니다.TABLES( ... product_table UNIQUE (service_id)
product_area_id
및product_id
열의 값 조합이 고유한 경우 지정합니다.TABLES( ... product_table UNIQUE (product_area_id, product_id) ...
주어진 논리 테이블에서 여러 열과 여러 열의 조합을 고유한 것으로 식별할 수 있습니다.
TABLES( ... product_table UNIQUE (product_area_id, product_id) UNIQUE (service_id) ...
참고
(PRIMARY KEY 를 사용하여) 열을 이미 기본 키 열로 식별한 경우에는 해당 열에 UNIQUE 절을 추가하지 마십시오.
WITH SYNONYMS [ = ] ( 'synonym' [ , ... ] )
논리 테이블의 동의어를 하나 이상 지정합니다. 별칭과 달리 동의어는 정보 제공 목적으로만 사용됩니다. 관계, 차원, 메트릭 및 팩트에서 논리적 테이블을 참조할 때 동의어를 사용하지 않습니다.
COMMENT = 'comment_about_table'
논리 테이블에 대한 설명을 지정합니다.
관계 매개 변수(relationshipDef
)¶
relationship_identifier AS
관계에 대한 선택적 식별자를 지정합니다.
table_alias ( column_name [ , ... ] )
논리 테이블 중 하나와 다른 논리 테이블의 열을 참조하는 하나 이상의 열을 지정합니다.
ref_table_alias [ ( ref_column_name [ , ... ] ) ]
첫 번째 논리 테이블에서 참조하는 다른 논리 테이블과 그 열을 하나 이상 지정합니다.
열은 논리적 테이블 정의 에서 PRIMARY KEY 또는 UNIQUE 로 식별되어야 합니다.
팩트, 차원 및 메트릭의 매개 변수(semanticExpression
)¶
시맨틱 뷰에서는 하나 이상의 차원 또는 메트릭을 정의해야 하므로 DIMENSIONS 또는 METRICS 절을 하나 이상 지정해야 합니다.
다음 매개 변수를 사용하여 팩트, 차원 또는 메트릭을 정의합니다.
table_alias.semantic_expression_name AS sql_expr
차원, 팩트 또는 메트릭의 이름과 해당 차원, 팩트 또는 메트릭을 계산하기 위한 SQL 식을 지정합니다.
WITH SYNONYMS [ = ] ( 'synonym' [ , ... ] )
차원, 팩트 또는 메트릭에 대한 하나 이상의 선택적 동의어를 지정합니다. 동의어는 정보 제공 목적으로만 사용된다는 점에 유의하십시오. 동의어를 사용하여 다른 차원, 팩트 또는 메트릭에서 차원, 팩트 또는 메트릭을 참조할 수 없습니다.
COMMENT = 'comment_about_dim_fact_or_metric'
차원, 팩트 또는 메트릭에 대한 선택적 설명을 지정합니다.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
CREATE SEMANTIC VIEW |
스키마 |
새 시맨틱 뷰를 만드는 데 필요합니다. |
SELECT |
테이블, 뷰 |
시맨틱 뷰 정의에 사용되는 모든 테이블 및/또는 뷰에 필요합니다. |
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.
예¶
의미 체계 뷰 생성하기 섹션을 참조하십시오.