SQL 명령을 사용하여 의미 체계 뷰 생성하기 및 관리하기

이 항목에서는 다음 SQL 명령을 사용하여 의미 체계 뷰 를 생성하고 관리하는 방법을 설명합니다.

의미 체계 뷰 생성하기

의미 체계 뷰를 생성하려면 CREATE SEMANTIC VIEW 명령을 실행합니다. 다음 권한이 있는 역할을 사용해야 합니다.

  • 의미 체계 뷰를 생성하는 스키마에 CREATE SEMANTIC VIEW 를 추가합니다.

  • 의미 체계 뷰를 생성하는 데이터베이스 및 스키마에 USAGE 를 추가합니다.

  • 의미 체계 뷰에 사용된 테이블과 뷰에 SELECT 를 추가할 수 있습니다.

의미 체계 뷰가 유효해야 합니다. Snowflake가 의미 체계 뷰를 검증하는 방법 섹션을 참조하십시오.

이 예제에서는 Snowflake에서 사용 가능한 TPC -H 샘플 데이터 를 사용합니다. 이 데이터 세트에는 고객, 주문, 품목으로 구성된 단순화된 비즈니스 시나리오를 나타내는 테이블이 포함되어 있습니다.

TPC-H 샘플 데이터에 사용된 테이블의 데이터 모델링

이 예제에서는 TPC-H 데이터 세트의 테이블을 사용하여 tpch_rev_analysis 라는 이름의 의미 체계 뷰를 생성합니다. 의미 체계 뷰는 다음을 정의합니다.

  • 3개의 논리 테이블(orders, customers, line_items).

  • orderscustomers 테이블 간의 관계.

  • line_itemsorders 테이블 간의 관계.

  • 메트릭을 계산하는 데 사용되는 정보.

  • 고객 이름, 주문 날짜 및 주문이 이루어진 연도에 대한 차원.

  • 주문의 평균값 및 주문의 평균 품목 수에 대한 메트릭.

CREATE SEMANTIC VIEW tpch_rev_analysis

  TABLES (
    orders AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
      PRIMARY KEY (o_orderkey)
      WITH SYNONYMS ('sales orders')
      COMMENT = 'All orders table for the sales domain',
    customers AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
      PRIMARY KEY (c_custkey)
      COMMENT = 'Main table for customer data',
    line_items AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.LINEITEM
      PRIMARY KEY (l_orderkey, l_linenumber)
      COMMENT = 'Line items in orders'
  )

  RELATIONSHIPS (
    orders_to_customers AS
      orders (o_custkey) REFERENCES customers,
    line_item_to_orders AS
      line_items (l_orderkey) REFERENCES orders
  )

  FACTS (
    line_items.line_item_id AS CONCAT(l_orderkey, '-', l_linenumber),
    orders.count_line_items AS COUNT(line_items.line_item_id),
    line_items.discounted_price AS l_extendedprice * (1 - l_discount)
      COMMENT = 'Extended price after discount'
  )

  DIMENSIONS (
    customers.customer_name AS customers.c_name
      WITH SYNONYMS = ('customer name')
      COMMENT = 'Name of the customer',
    orders.order_date AS o_orderdate
      COMMENT = 'Date when the order was placed',
    orders.order_year AS YEAR(o_orderdate)
      COMMENT = 'Year when the order was placed'
  )

  METRICS (
    customers.customer_count AS COUNT(c_custkey)
      COMMENT = 'Count of number of customers',
    orders.order_average_value AS AVG(orders.o_totalprice)
      COMMENT = 'Average order value across all orders',
    orders.average_line_items_per_order AS AVG(orders.count_line_items)
      COMMENT = 'Average number of line items per order'
  )

  COMMENT = 'Semantic view for revenue analysis';
Copy

다음 섹션에서는 이 예제에 대해 자세히 설명합니다.

참고

전체 예제는 SQL 을 사용하여 의미 체계 뷰를 생성하는 예제 섹션을 참조하십시오.

논리 테이블 정의하기

CREATE SEMANTIC VIEW 명령에서 TABLES 절을 사용하여 뷰의 논리적 테이블을 정의합니다. 이 절에서는 다음을 할 수 있습니다.

  • 실제 테이블 이름과 선택적 별칭을 지정합니다.

  • 논리 테이블에서 다음 열을 식별합니다.

    • 기본 키 역할을 하는 열입니다.

    • 고유한 값을 포함하는 열(기본 키 열 제외).

    이러한 열을 사용하여 이 의미 체계 뷰에서 관계를 정의할 수 있습니다.

  • 테이블의 동의어 추가(검색 가능성 개선).

  • 설명이 포함된 설명을 입력합니다.

앞서 제공된 예제 에서 TABLES 절은 세 개의 논리 테이블을 정의합니다.

  • TPC-H orders 테이블의 주문 정보가 포함된 orders 테이블.

  • TPC-H customers 테이블의 고객 정보가 포함된 customers 테이블.

  • TPC-H lineitem 테이블의 주문 품목이 포함된 line_item 테이블.

이 예에서는 각 논리적 테이블의 기본 키로 사용할 열을 식별하여 테이블 간의 관계를 식별 할 수 있도록 합니다.

이 예제에서는 논리 테이블을 설명하고 데이터를 더 쉽게 검색할 수 있도록 동의어와 설명도 제공합니다.

TABLES (
  orders AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
    PRIMARY KEY (o_orderkey)
    WITH SYNONYMS ('sales orders')
    COMMENT = 'All orders table for the sales domain',
  customers AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
    PRIMARY KEY (c_custkey)
    COMMENT = 'Main table for customer data',
  line_items AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.LINEITEM
    PRIMARY KEY (l_orderkey, l_linenumber)
    COMMENT = 'Line items in orders'
Copy

논리 테이블 간의 관계 식별하기

CREATE SEMANTIC VIEW 명령에서 RELATIONSHIPS 절을 사용하여 뷰에 있는 테이블 간의 관계를 식별합니다. 각 관계에 대해 지정합니다.

  • 관계의 선택적 이름입니다.

  • 외래 키가 포함된 논리적 테이블의 이름입니다.

  • 해당 테이블에서 외래 키를 정의하는 열입니다.

  • 기본 키 또는 고유 값을 가진 열을 포함하는 논리 테이블의 이름입니다.

  • 해당 테이블에서 기본 키를 정의하거나 고유 값을 포함하는 열입니다.

    • TABLES 절에서 논리적 테이블에 PRIMARY KEY 를 이미 지정한 경우 관계에서 기본 키 열을 지정할 필요가 없습니다.

    • TABLES 절에 논리적 테이블에 대한 단일 UNIQUE 키워드가 있는 경우 관계에서 해당 열을 지정할 필요가 없습니다.

앞서 제공된 예제 에서 RELATIONSHIPS 절은 2개의 관계를 지정합니다.

  • orderscustomers 테이블 간의 관계. orders 테이블에서 o_custkeycustomers 테이블의 기본 키(c_custkey)를 참조하는 외래 키입니다.

  • line_itemsorders 테이블 간의 관계. line_items 테이블에서 l_orderkeyorders 테이블의 기본 키(o_orderkey)를 참조하는 외래 키입니다.

RELATIONSHIPS (
  orders_to_customers AS
    orders (o_custkey) REFERENCES customers (c_custkey),
  line_item_to_orders AS
    line_items (l_orderkey) REFERENCES orders (o_orderkey)
)
Copy

팩트, 차원 및 메트릭 정의하기

CREATE SEMANTIC VIEW 명령에서 FACTS, DIMENSIONS, METRICS 절을 사용하여 의미 체계 뷰에서 팩트, 차원 및 메트릭을 정의합니다.

의미 체계 뷰에서 1개 이상의 차원 또는 메트릭을 정의해야 합니다.

각 팩트, 차원 또는 메트릭에 대해 지정합니다.

  • 그것이 속한 논리 테이블입니다.

  • 팩트, 차원 또는 메트릭의 이름입니다.

  • SQL 식을 사용하여 이를 계산합니다.

  • 선택적 동의어 및 설명.

앞서 제공된 예제 는 몇 가지 정보, 차원 및 메트릭을 정의합니다.

FACTS (
  line_items.line_item_id AS CONCAT(l_orderkey, '-', l_linenumber),
  orders.count_line_items AS COUNT(line_items.line_item_id),
  line_items.discounted_price AS l_extendedprice * (1 - l_discount)
    COMMENT = 'Extended price after discount'
)

DIMENSIONS (
  customers.customer_name AS customers.c_name
    WITH SYNONYMS = ('customer name')
    COMMENT = 'Name of the customer',
  orders.order_date AS o_orderdate
    COMMENT = 'Date when the order was placed',
  orders.order_year AS YEAR(o_orderdate)
    COMMENT = 'Year when the order was placed'
)

METRICS (
  customers.customer_count AS COUNT(c_custkey)
    COMMENT = 'Count of number of customers',
  orders.order_average_value AS AVG(orders.o_totalprice)
    COMMENT = 'Average order value across all orders',
  orders.average_line_items_per_order AS AVG(orders.count_line_items)
    COMMENT = 'Average number of line items per order'
)
Copy

기존 의미 체계 뷰 바꾸기

기존 의미 체계 뷰를 바꾸려면(예: 뷰의 정의를 변경하려면) CREATE SEMANTIC VIEW 를 실행할 때 OR REPLACE 를 지정합니다. 기존 의미 체계 뷰에 부여된 권한을 유지하려면 COPY GRANTS 를 지정합니다. 예:

CREATE OR REPLACE SEMANTIC VIEW tpch_rev_analysis

  TABLES (
    orders AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
      PRIMARY KEY (o_orderkey)
      WITH SYNONYMS ('sales orders')
      COMMENT = 'All orders table for the sales domain',
    customers AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
      PRIMARY KEY (c_custkey)
      COMMENT = 'Main table for customer data',
    line_items AS SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.LINEITEM
      PRIMARY KEY (l_orderkey, l_linenumber)
      COMMENT = 'Line items in orders'
  )

  RELATIONSHIPS (
    orders_to_customers AS
      orders (o_custkey) REFERENCES customers,
    line_item_to_orders AS
      line_items (l_orderkey) REFERENCES orders
  )

  FACTS (
    line_items.line_item_id AS CONCAT(l_orderkey, '-', l_linenumber),
    orders.count_line_items AS COUNT(line_items.line_item_id),
    line_items.discounted_price AS l_extendedprice * (1 - l_discount)
      COMMENT = 'Extended price after discount'
  )

  DIMENSIONS (
    customers.customer_name AS customers.c_name
      WITH SYNONYMS = ('customer name')
      COMMENT = 'Name of the customer',
    orders.order_date AS o_orderdate
      COMMENT = 'Date when the order was placed',
    orders.order_year AS YEAR(o_orderdate)
      COMMENT = 'Year when the order was placed'
  )

  METRICS (
    customers.customer_count AS COUNT(c_custkey)
      COMMENT = 'Count of number of customers',
    orders.order_average_value AS AVG(orders.o_totalprice)
      COMMENT = 'Average order value across all orders',
    orders.average_line_items_per_order AS AVG(orders.count_line_items)
      COMMENT = 'Average number of line items per order'
  )

  COMMENT = 'Semantic view for revenue analysis and different comment'
  COPY GRANTS;
Copy

의미 체계 뷰 목록 보기

현재 스키마 또는 지정된 스키마에서 의미 체계 뷰를 목록으로 표시하려면 SHOW SEMANTIC VIEWS 명령을 실행합니다. 예:

SHOW SEMANTIC VIEWS;
Copy
+-------------------------------+-----------------------+---------------+-------------------+----------------------------------------------+-----------------+-----------------+-----------+
| created_on                    | name                  | database_name | schema_name       | comment                                      | owner           | owner_role_type | extension |
|-------------------------------+-----------------------+---------------+-------------------+----------------------------------------------+-----------------+-----------------+-----------|
| 2025-03-20 15:06:34.039 -0700 | MY_NEW_SEMANTIC_MODEL | MY_DB         | MY_SCHEMA         | A semantic model created through the wizard. | MY_ROLE         | ROLE            | ["CA"]    |
| 2025-02-28 16:16:04.002 -0800 | O_TPCH_SEMANTIC_VIEW  | MY_DB         | MY_SCHEMA         | NULL                                         | MY_ROLE         | ROLE            | NULL      |
| 2025-03-21 07:03:54.120 -0700 | TPCH_REV_ANALYSIS     | MY_DB         | MY_SCHEMA         | Semantic view for revenue analysis           | MY_ROLE         | ROLE            | NULL      |
+-------------------------------+-----------------------+---------------+-------------------+----------------------------------------------+-----------------+-----------------+-----------+

ACCOUNT_USAGE 및 INFORMATION_SCHEMA 스키마 에서 의미 체계 뷰에 대한 뷰를 쿼리할 수도 있습니다.

의미 체계 뷰에 대한 세부 정보 보기

의미 체계 뷰의 세부 정보를 보려면 DESCRIBE SEMANTIC VIEW 명령을 실행합니다. 예:

DESCRIBE SEMANTIC VIEW tpch_rev_analysis;
Copy
+--------------+------------------------------+---------------+--------------------------+----------------------------------------+
| object_kind  | object_name                  | parent_entity | property                 | property_value                         |
|--------------+------------------------------+---------------+--------------------------+----------------------------------------|
| NULL         | NULL                         | NULL          | COMMENT                  | Semantic view for revenue analysis     |
| TABLE        | CUSTOMERS                    | NULL          | BASE_TABLE_DATABASE_NAME | SNOWFLAKE_SAMPLE_DATA                  |
| TABLE        | CUSTOMERS                    | NULL          | BASE_TABLE_SCHEMA_NAME   | TPCH_SF1                               |
| TABLE        | CUSTOMERS                    | NULL          | BASE_TABLE_NAME          | CUSTOMER                               |
| TABLE        | CUSTOMERS                    | NULL          | PRIMARY_KEY              | ["C_CUSTKEY"]                          |
| TABLE        | CUSTOMERS                    | NULL          | COMMENT                  | Main table for customer data           |
| DIMENSION    | CUSTOMER_NAME                | CUSTOMERS     | TABLE                    | CUSTOMERS                              |
| DIMENSION    | CUSTOMER_NAME                | CUSTOMERS     | EXPRESSION               | customers.c_name                       |
| DIMENSION    | CUSTOMER_NAME                | CUSTOMERS     | DATA_TYPE                | VARCHAR(25)                            |
| DIMENSION    | CUSTOMER_NAME                | CUSTOMERS     | SYNONYMS                 | ["customer name"]                      |
| DIMENSION    | CUSTOMER_NAME                | CUSTOMERS     | COMMENT                  | Name of the customer                   |
| TABLE        | LINE_ITEMS                   | NULL          | BASE_TABLE_DATABASE_NAME | SNOWFLAKE_SAMPLE_DATA                  |
| TABLE        | LINE_ITEMS                   | NULL          | BASE_TABLE_SCHEMA_NAME   | TPCH_SF1                               |
| TABLE        | LINE_ITEMS                   | NULL          | BASE_TABLE_NAME          | LINEITEM                               |
| TABLE        | LINE_ITEMS                   | NULL          | PRIMARY_KEY              | ["L_ORDERKEY","L_LINENUMBER"]          |
| TABLE        | LINE_ITEMS                   | NULL          | COMMENT                  | Line items in orders                   |
| RELATIONSHIP | LINE_ITEM_TO_ORDERS          | LINE_ITEMS    | TABLE                    | LINE_ITEMS                             |
| RELATIONSHIP | LINE_ITEM_TO_ORDERS          | LINE_ITEMS    | REF_TABLE                | ORDERS                                 |
| RELATIONSHIP | LINE_ITEM_TO_ORDERS          | LINE_ITEMS    | FOREIGN_KEY              | ["L_ORDERKEY"]                         |
| RELATIONSHIP | LINE_ITEM_TO_ORDERS          | LINE_ITEMS    | REF_KEY                  | ["O_ORDERKEY"]                         |
| FACT         | DISCOUNTED_PRICE             | LINE_ITEMS    | TABLE                    | LINE_ITEMS                             |
| FACT         | DISCOUNTED_PRICE             | LINE_ITEMS    | EXPRESSION               | l_extendedprice * (1 - l_discount)     |
| FACT         | DISCOUNTED_PRICE             | LINE_ITEMS    | DATA_TYPE                | NUMBER(25,4)                           |
| FACT         | DISCOUNTED_PRICE             | LINE_ITEMS    | COMMENT                  | Extended price after discount          |
| FACT         | LINE_ITEM_ID                 | LINE_ITEMS    | TABLE                    | LINE_ITEMS                             |
| FACT         | LINE_ITEM_ID                 | LINE_ITEMS    | EXPRESSION               | CONCAT(l_orderkey, '-', l_linenumber)  |
| FACT         | LINE_ITEM_ID                 | LINE_ITEMS    | DATA_TYPE                | VARCHAR(134217728)                     |
| TABLE        | ORDERS                       | NULL          | BASE_TABLE_DATABASE_NAME | SNOWFLAKE_SAMPLE_DATA                  |
| TABLE        | ORDERS                       | NULL          | BASE_TABLE_SCHEMA_NAME   | TPCH_SF1                               |
| TABLE        | ORDERS                       | NULL          | BASE_TABLE_NAME          | ORDERS                                 |
| TABLE        | ORDERS                       | NULL          | SYNONYMS                 | ["sales orders"]                       |
| TABLE        | ORDERS                       | NULL          | PRIMARY_KEY              | ["O_ORDERKEY"]                         |
| TABLE        | ORDERS                       | NULL          | COMMENT                  | All orders table for the sales domain  |
| RELATIONSHIP | ORDERS_TO_CUSTOMERS          | ORDERS        | TABLE                    | ORDERS                                 |
| RELATIONSHIP | ORDERS_TO_CUSTOMERS          | ORDERS        | REF_TABLE                | CUSTOMERS                              |
| RELATIONSHIP | ORDERS_TO_CUSTOMERS          | ORDERS        | FOREIGN_KEY              | ["O_CUSTKEY"]                          |
| RELATIONSHIP | ORDERS_TO_CUSTOMERS          | ORDERS        | REF_KEY                  | ["C_CUSTKEY"]                          |
| METRIC       | AVERAGE_LINE_ITEMS_PER_ORDER | ORDERS        | TABLE                    | ORDERS                                 |
| METRIC       | AVERAGE_LINE_ITEMS_PER_ORDER | ORDERS        | EXPRESSION               | AVG(orders.count_line_items)           |
| METRIC       | AVERAGE_LINE_ITEMS_PER_ORDER | ORDERS        | DATA_TYPE                | NUMBER(36,6)                           |
| METRIC       | AVERAGE_LINE_ITEMS_PER_ORDER | ORDERS        | COMMENT                  | Average number of line items per order |
| FACT         | COUNT_LINE_ITEMS             | ORDERS        | TABLE                    | ORDERS                                 |
| FACT         | COUNT_LINE_ITEMS             | ORDERS        | EXPRESSION               | COUNT(line_items.line_item_id)         |
| FACT         | COUNT_LINE_ITEMS             | ORDERS        | DATA_TYPE                | NUMBER(18,0)                           |
| METRIC       | ORDER_AVERAGE_VALUE          | ORDERS        | TABLE                    | ORDERS                                 |
| METRIC       | ORDER_AVERAGE_VALUE          | ORDERS        | EXPRESSION               | AVG(orders.o_totalprice)               |
| METRIC       | ORDER_AVERAGE_VALUE          | ORDERS        | DATA_TYPE                | NUMBER(30,8)                           |
| METRIC       | ORDER_AVERAGE_VALUE          | ORDERS        | COMMENT                  | Average order value across all orders  |
| DIMENSION    | ORDER_DATE                   | ORDERS        | TABLE                    | ORDERS                                 |
| DIMENSION    | ORDER_DATE                   | ORDERS        | EXPRESSION               | o_orderdate                            |
| DIMENSION    | ORDER_DATE                   | ORDERS        | DATA_TYPE                | DATE                                   |
| DIMENSION    | ORDER_DATE                   | ORDERS        | COMMENT                  | Date when the order was placed         |
| DIMENSION    | ORDER_YEAR                   | ORDERS        | TABLE                    | ORDERS                                 |
| DIMENSION    | ORDER_YEAR                   | ORDERS        | EXPRESSION               | YEAR(o_orderdate)                      |
| DIMENSION    | ORDER_YEAR                   | ORDERS        | DATA_TYPE                | NUMBER(4,0)                            |
| DIMENSION    | ORDER_YEAR                   | ORDERS        | COMMENT                  | Year when the order was placed         |
+--------------+------------------------------+---------------+--------------------------+----------------------------------------+

의미 체계 뷰를 위한 SQL 문 가져오기

GET_DDL 함수를 호출하여 의미 체계 뷰를 생성한 DDL 문을 검색할 수 있습니다.

GET_DDL 을 호출할 때 'SEMANTIC_VIEW' 를 오브젝트 유형으로 전달합니다. 예:

SELECT GET_DDL('SEMANTIC_VIEW', 'tpch_rev_analysis', TRUE);
Copy
+-----------------------------------------------------------------------------------+
| GET_DDL('SEMANTIC_VIEW', 'TPCH_REV_ANALYSIS', TRUE)                               |
|-----------------------------------------------------------------------------------|
| create or replace semantic view DYOSHINAGA_DB.DYOSHINAGA_SCHEMA.TPCH_REV_ANALYSIS |
|     tables (                                                                                                                                                                       |
|             ORDERS primary key (O_ORDERKEY) with synonyms=('sales orders') comment='All orders table for the sales domain',                                                                                                                                                                       |
|             CUSTOMERS as CUSTOMER primary key (C_CUSTKEY) comment='Main table for customer data',                                                                                                                                                                       |
|             LINE_ITEMS as LINEITEM primary key (L_ORDERKEY,L_LINENUMBER) comment='Line items in orders'                                                                                                                                                                       |
|     )                                                                                                                                                                       |
|     relationships (                                                                                                                                                                       |
|             ORDERS_TO_CUSTOMERS as ORDERS(O_CUSTKEY) references CUSTOMERS(C_CUSTKEY),                                                                                                                                                                       |
|             LINE_ITEM_TO_ORDERS as LINE_ITEMS(L_ORDERKEY) references ORDERS(O_ORDERKEY)                                                                                                                                                                       |
|     )                                                                                                                                                                       |
|     facts (                                                                                                                                                                       |
|             ORDERS.COUNT_LINE_ITEMS as COUNT(line_items.line_item_id),                                                                                                                                                                       |
|             LINE_ITEMS.DISCOUNTED_PRICE as l_extendedprice * (1 - l_discount) comment='Extended price after discount',                                                                                                                                                                       |
|             LINE_ITEMS.LINE_ITEM_ID as CONCAT(l_orderkey, '-', l_linenumber)                                                                                                                                                                       |
|     )                                                                                                                                                                       |
|     dimensions (                                                                                                                                                                       |
|             ORDERS.ORDER_DATE as o_orderdate comment='Date when the order was placed',                                                                                                                                                                       |
|             ORDERS.ORDER_YEAR as YEAR(o_orderdate) comment='Year when the order was placed',                                                                                                                                                                       |
|             CUSTOMERS.CUSTOMER_NAME as customers.c_name with synonyms=('customer name') comment='Name of the customer'                                                                                                                                                                       |
|     )                                                                                                                                                                       |
|     metrics (                                                                                                                                                                       |
|             ORDERS.AVERAGE_LINE_ITEMS_PER_ORDER as AVG(orders.count_line_items) comment='Average number of line items per order',                                                                                                                                                                       |
|             ORDERS.ORDER_AVERAGE_VALUE as AVG(orders.o_totalprice) comment='Average order value across all orders'                                                                                                                                                                       |
|     );                                                                                                                                                                       |
+-----------------------------------------------------------------------------------+

의미 체계 뷰 제거하기

의미 체계 뷰를 제거하려면 DROP SEMANTIC VIEW 명령을 실행합니다. 예:

DROP SEMANTIC VIEW tpch_rev_analysis;
Copy

의미 체계 뷰에 권한 부여하기

의미 체계 뷰 권한 에는 의미 체계 뷰에 부여할 수 있는 권한이 목록으로 표시됩니다.

의미 체계 뷰를 사용하려면 해당 뷰에 대한 다음 권한이 필요합니다.

  • 뷰에서 DESCRIBE SEMANTIC VIEW 명령을 실행하려면 모든 권한(예: REFERENCE OR SELECT)이 필요합니다.

  • SELECT 를 실행하려면 SELECT ... FROM SEMANTIC_VIEW() 가 필요합니다.

  • SHOW SEMANTIC VIEWS 명령의 출력에 뷰를 표시하려면 이 권한 중 하나가 필요합니다.

참고

현재는 REFERENCES 권한으로 의미 체계 뷰를 쿼리할 수 있지만, 향후에는 SELECT 권한이 있는 역할로 의미 체계 뷰를 쿼리하는 기능이 제한됩니다.

Cortex Analyst 에서 소유하지 않은 의미 체계 뷰를 사용하려면 해당 뷰에 대한 REFERENCES 및 SELECT 권한이 있는 역할을 사용해야 합니다.

의미 체계 뷰에 REFERENCES 및 SELECT 권한을 부여하려면 GRANT <privileges> … TO ROLE 명령을 사용합니다. 예를 들어, my_semantic_view 라 는 이름의 의미 체계 뷰에 REFERENCES 및 SELECT 권한을 my_analyst_role 역할에 부여하려면 다음 문을 실행하면 됩니다.

GRANT REFERENCES, SELECT ON SEMANTIC VIEW my_semantic_view TO ROLE my_analyst_role;
Copy

Cortex Analyst 사용자와 공유하려는 의미 체계 뷰가 포함된 스키마가 있는 경우 향후 부여 를 사용하여 해당 스키마에서 생성한 모든 의미 체계 뷰에 대한 권한을 부여할 수 있습니다. 예:

GRANT REFERENCES, SELECT ON FUTURE SEMANTIC VIEWS IN SCHEMA my_schema TO ROLE my_analyst_role;
Copy