CREATE SEMANTIC VIEW

현재/지정된 스키마에 새 시맨틱 뷰 를 만듭니다.

참고 항목:

DESCRIBE SEMANTIC VIEW , DROP SEMANTIC VIEW , SHOW SEMANTIC VIEWS

구문

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 ]
Copy

여기서,

logicalTable ::=
  [ <table_alias> AS ] <table_name>
  [ PRIMARY KEY ( <primary_key_column_name> [ , ... ] ) ]
  [
    UNIQUE ( <unique_column_name> [ , ... ] )
    [ ... ]
  ]
  [ WITH SYNONYMS [ = ] ( '<synonym>' [ , ... ] ) ]
  [ COMMENT = '<comment_about_table>' ]
Copy
relationshipDef ::=
  [ <relationship_identifier> AS ]
  <table_alias> ( <column_name> [ , ... ] )
  REFERENCES
  <ref_table_alias> [ ( <ref_column_name> [ , ... ] ) ]
Copy
semanticExpression ::=
  <table_alias>.<dim_fact_or_metric> AS <sql_expr>
  [ WITH SYNONYMS [ = ] ( '<synonym>' [ , ... ] ) ]
  [ COMMENT = '<comment_about_dim_fact_or_metric>' ]
Copy

참고

절의 순서가 중요합니다. 예를 들어 DIMENSIONS 절 앞에 FACTS 절을 지정해야 합니다.

이후 절에서 정의된 시맨틱 식을 참조할 수 있습니다. 예를 들어 fact_1 뒤에 fact_2 가 정의되어 있더라도 fact_2fact_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)
Copy

product_area_idproduct_id 열의 값 조합이 고유한 경우 지정합니다.

TABLES(
  ...
  product_table UNIQUE (product_area_id, product_id)
  ...
Copy

주어진 논리 테이블에서 여러 열과 여러 열의 조합을 고유한 것으로 식별할 수 있습니다.

TABLES(
  ...
  product_table UNIQUE (product_area_id, product_id) UNIQUE (service_id)
  ...
Copy

참고

(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 <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

의미 체계 뷰 생성하기 섹션을 참조하십시오.