Cortex Analyst 의미 체계 모델 사양

왜 의미 체계 모델을 사용하나요?

Cortex Analyst 를 사용하면 사용자는 자연어를 사용하여 Snowflake 데이터에 대한 질문을 할 수 있습니다. 일반적으로 비즈니스 사용자가 데이터에 관한 질문을 할 때 사용하는 어휘와 데이터베이스 스키마에서 사용하는 어휘 사이에는 차이가 있습니다. 이러한 사용자는 일반적으로 비즈니스 또는 도메인별 용어를 사용하는 반면, 데이터베이스 스키마는 ETL 파이프라인에서 자주 사용되는 약어 또는 용어를 사용할 수 있습니다. 또한 데이터베이스 스키마에는 데이터 세트에 익숙하지 않은 사람이 데이터를 이해하는 데 도움이 되는 의미 체계가 부족한 경우가 많습니다. 이러한 어휘의 차이로 인해 Cortex Analyst 는 데이터 질문에 높은 자릿수로 답하기가 어렵습니다.

의미 체계 모델은 데이터 세트에 대한 추가적인 의미적 세부 정보를 지정할 수 있도록 하여 이러한 문제를 해결하는 가벼운 메커니즘입니다. 더 설명적인 이름이나 동의어와 같은 추가적인 의미 체계는 Cortex Analyst 가 데이터 질문에 훨씬 더 신뢰할 수 있는 답변을 제공할 수 있도록 합니다.

참고

의미 체계 모델은 메타데이터 로 간주됩니다.

핵심 개념

참고

이 항목 전체에서 기본 데이터베이스 관련 아티팩트는 “물리적” 아티팩트라고 하며, 의미 체계 모델 관련 아티팩트는 “논리적” 아티팩트라고 합니다.

의미 체계 모델의 구조와 개념은 데이터베이스 스키마와 유사하지만, 의미 체계 모델을 사용하면 데이터에 대한 더 많은 의미적 정보를 제공할 수 있습니다.

Snowflake 의미 체계 모델의 핵심 개념은 논리적 테이블 입니다. 논리적 테이블은 물리적 데이터베이스 테이블이나 뷰에 대한 간단한 뷰로 생각할 수 있습니다. 각 논리 테이블은 논리 열의 모음으로 dimensions, time_dimensions, measures 로 분류됩니다.

논리적 열은 기본 물리적 열에 대한 참조이거나 하나 이상의 물리적 열을 포함하는 식이 될 수 있습니다. 식은 문자열 연결이나 수학 연산과 같이 간단할 수도 있고, 집계 식을 포함할 수도 있습니다. 예를 들어, 클릭당 비용(CPC)을 계산할 때 SUM(click)/SUM(spend) 같은 식을 사용할 수 있습니다.

의미 체계 모델에는 검증된 쿼리 리포지토리 (VQR)도 포함될 수 있으며, 이는 질문 모음과 이에 대한 답변을 위한 해당 SQL 쿼리를 제공하여 결과의 정확도와 신뢰도를 향상하는 데 도움이 될 수 있습니다.

Cortex Analyst 사양의 의미 체계는 YAML 에 있습니다. 자연어 질문에 높은 정확도로 답변하는 데 필요한 의미 체계 정보를 제공합니다.

일반적인 구문은 다음과 같습니다.

# Name and description of the semantic model.
name: <name>
description: <string>

# A semantic model can contain one or more logical tables.
tables:

  # A logical table on top of a base table.
  - name: <name>
    description: <string>

    # The fully qualified name of the base table.
    base_table:
      database: <database>
      schema: <schema>
      table: <base table name>

    # Dimension columns in the logical table.
    dimensions:
      - name: <name>
        synonyms: <array of strings>
        description: <string>
        expr: <SQL expression>
        data_type: <data type>
        unique: <boolean>
        cortex_search_service:
          service: <string>
          literal_column: <string>
          database: <string>
          schema: <string>
        is_enum: <boolean>

    # Time dimension columns in the logical table.
    time_dimensions:
      - name: <name>
        synonyms:  <array of strings>
        description: <string>
        expr: <SQL expression>
        data_type: <data type>
        unique: <boolean>

    # Measure columns in the logical table.
    measures:
      - name: <name>
        synonyms: <array of strings>
        description: <string>
        expr: <SQL expression>
        data_type: <data type>
        default_aggregation: <aggregate function>

    # Commonly used filters over the logical table.
    filters:
      - name: <name>
        synonyms: <array of strings>
        description: <string>
        expr: <SQL expression>

# Example questions and queries that answer them
verified_queries:

# Verified Query (1 of n)
- name:                         # A descriptive name of the query.
  question:                     # The natural language question that this query answers.
  verified_at:                  # Optional: Time (in seconds since the UNIX epoch, January 1, 1970) when the query was verified.
  verified_by:                  # Optional: Name of the person who verified the query.
  use_as_onboarding_question:   # Optional: Marks this question as an onboarding question for the end user.
  sql:                          # The SQL query for answering the question.
Copy

모델 생성기를 사용하여 의미 체계 모델 만들기

의미 체계 모델 생성기를 사용하여 테이블에서 의미 체계 모델을 생성하십시오. YAML 사양을 사용하여 의미 체계 모델을 수동으로 만드는 대신 Snowsight 내의 모델 생성기를 사용하면 시간을 절약할 수 있습니다. 의미 체계 모델을 만드는 과정에는 다음과 같은 작업이 포함됩니다.

  1. 모델에 대한 기본 정보와 함께 설명을 제공합니다.

  2. 모델을 만드는 데 사용하는 데이터 소스를 제공합니다. 하나 이상의 테이블 또는 뷰를 제공해야 합니다.

  3. 모델을 만드는 데 사용할 열을 선택합니다.

모델 생성을 시작하려면 Let’s Create a Semantic Model 페이지로 이동합니다.

  1. Snowsight 에서 AI & ML 를 선택합니다.

  2. Cortex Analyst 옆의 Try 를 선택합니다.

  3. Create new 를 선택합니다.

의미 체계 모델 생성기의 설명 페이지를 열었습니다. 의미 체계 모델을 생성하려면 다음을 수행합니다.

  1. Description 에는 의미 체계 모델에 대한 정보를 지정합니다. 파일 이름, 파일 위치, 모델 이름을 제공해야 합니다. 데이터에 대한 컨텍스트와 함께 설명을 제공할 수도 있습니다.

  2. (선택 사항) User Questions 에 대해 사용자가 데이터에 대해 질문할 수 있는 질문 유형을 지정합니다. 모델 생성기는 필드에서 공급자가 제공한 정보를 사용하여 모델을 만드는 데 사용할 수 있는 테이블, 뷰, 열을 제안합니다.

  3. Select Data (Table/View) 에는 의미 체계 모델을 만드는 데 사용하는 데이터 소스를 입력합니다. 하나 이상의 테이블 또는 뷰를 제공해야 합니다. 지정할 수 있는 테이블이나 뷰에는 제한이 없지만 의미 체계 모델에는 10개를 초과하여 사용하지 않는 것이 좋습니다.

  4. Select Columns 에는 의미 체계 모델을 만드는 데 사용할 열을 선택합니다. 모든 열 또는 특정 열을 선택할 수 있습니다. 성능상의 이유로 50개 이상의 열을 사용하지 않는 것이 좋습니다.

모델을 생성한 후에는 스테이지에 저장합니다. 저장하려면 화면 오른쪽 상단에서 Save 를 선택합니다. 추가 수정이 필요한 경우 Snowsight 또는 YAML 파일을 직접 편집하여 모델을 수정할 수 있습니다.

기존 의미 체계 모델 열기

의미 체계 모델을 생성한 후에는 Snowsight 에서 열 수 있습니다. 의미 체계 모델을 열려면 다음을 수행합니다.

  1. Open semantic model 을 선택합니다.

  2. Open 을 선택합니다.

  3. Select from stage 을 선택합니다.

  4. 데이터베이스와 스키마를 선택합니다.

  5. 대화 상자 외부를 클릭합니다.

  6. 파일을 저장한 스테이지를 선택합니다.

  7. 열기 를 선택합니다.

참고

스테이지 내에서 의미 체계 모델이 보이지 않는다면 페이지가 아닌 모델 목록을 새로 고칩니다.

조인 정의

Cortex Analyst 는 SQL 조인을 지원하므로 여러 테이블에서 고급 데이터 분석이 가능합니다. 이 기능을 사용하면 팩트 테이블 및 연결된 차원 테이블에서 데이터를 쉽게 쿼리할 수 있습니다.

의미 체계 컨텍스트 YAML 파일에 조인 정의하기

Cortex Analyst 에서 조인을 사용하려면 YAML 의 의미 체계 컨텍스트를 관계 정의로 업데이트하십시오. 테이블 목록 뒤에 정의를 입력합니다.

relationships:
  - name: <string>
    left_table: <string>
    right_table: <string>
    relationship_columns:
      - left_column: <string>
        right_column: <string>
      - left_column: <string>
        right_column: <string>
    join_type: <join_type>
    relationship_type: <relationship_type>
Copy

여기서

  • name: 관계의 고유 식별자입니다.

  • left_tableright_table: 앞서 YAML 파일에 정의된 논리 테이블 이름입니다.

  • relationship_columns: 크기 비교 조인만 지정합니다. 현재 같지 않음 조인은 지원되지 않습니다. 논리적 열 이름을 사용해야 합니다(식은 허용되지 않음).

  • join_type: left_outer 또는 inner joins 을 지원합니다.

  • relationship_type: many_to_one 또는 one_to_one 관계를 지원합니다.

적절한 조인 기능을 보장하려면 관계에 관련된 테이블에 대해 기본 키를 정의해야 합니다. 다음 예제를 참조하십시오.

tables:
  - name: orders
    primary_key:
      columns:
        - order_id
        - location_id
Copy

간단한 스타 스키마를 사용하는 조인의 경우 jaffle_shop_star_schema.yaml 섹션을 참조하십시오.

의미 체계 모델을 생성하는 팁

  • 비즈니스 도메인 또는 항목별로 YAML 파일 정리하기

    • 특정 비즈니스 도메인이나 항목에 맞게 YAML 파일을 구성하여 범위를 집중적으로 유지합니다. 예를 들어, 영업 분석과 마케팅 분석에 대해 별도의 의미 체계 모델을 생성합니다.

    • 대상 그룹, 예상 질문 또는 KPIs, 필요한 데이터에 따라 사용 사례를 맞춤 설정합니다. 잘 정의된 사용 사례는 보다 풍부한 의미 체계 모델과 더 효과적인 데이터 검색으로 이어집니다.

  • 최종 사용자 관점에서 생각해보십시오

    • 사용자가 항목에 대해 궁금해할 만한 핵심 질문을 파악하고 해당 질문에 답하는 데 필요한 테이블과 열만 포함합니다.

    • 최종 사용자가 사용하는 어휘와 유사한 이름과 동의어를 사용합니다.

    • 설명 필드에 이 데이터 세트에 대한 쿼리를 처음 작성하는 사람에게 도움이 될 만한 중요한 세부 정보(예: DATETIME 열의 표준 시간대)를 포함합니다.

  • 복잡한 계산을 캡처합니다

    더 어렵거나 비즈니스에 특화된 쿼리를 식에 통합합니다.

  • 긴 테이블 대신 넓은 테이블을 사용합니다

    “metric” 및 “value”와 같은 열이 있는 테이블이 있는 경우 각 메트릭이 열이 되도록 테이블의 데이터를 스큐합니다. 이 접근법은 모델에 각 메트릭에 대한 더 많은 의미 체계 정보를 제공합니다.

  • 자동 생성된 설명 검토

    의미 체계 모델 생성기 를 사용하는 경우 테이블과 열에 대한 설명을 자동으로 생성하려고 시도합니다. 항상 이러한 설명을 검토하여 합리적이고 관련성이 있는지 확인합니다. 필요에 따라 수정합니다.

  • 간단하게 시작해서 점진적으로 확장합니다

    범위가 잘 정의된 의미 파일은 더 높은 정밀도와 결과의 정확성을 보장합니다. 적은 수의 테이블과 열로 시작하여 의미 체계 YAML을 점차 확장하여 더 많은 종류의 질문을 다룰 수 있도록 하세요. YAML 구축은 지속적인 과정이라는 점을 기억하십시오.

  • 유효성 검사된 쿼리 포함

    평이한 영어 질문과 그에 대한 답변을 모아놓은 검증된 쿼리 리포지토리 (VQR)를 사용하면 결과의 정확도와 신뢰도를 높일 수 있습니다.

알려진 제한 사항

  • Cortex Analyst 는 의미 체계 모델 파일에 1MB 크기 제한을 적용하여 API 입력의 크기를 제한합니다.

  • Cortex Analyst 는 의미 체계 YAML에 추가된 샘플 값과 검증된 쿼리의 인메모리 검색을 수행합니다. 모든 샘플 값과 검증된 쿼리를 제거한 후 의미 체계 모델은 32K 토큰(약 4 x 32K 문자 또는 약 128KB)을 초과할 수 없습니다. 의미 체계 모델 생성기 유효성 검사 명령을 사용하면 파일이 이러한 제한 내에 있는지 확인할 수 있습니다. 더 큰 컨텍스트 윈도우를 갖춘 모델에 대한 지원이 추가됨에 따라 제한이 증가할 수 있습니다.

사양

의미 체계 모델

의미 체계 모델은 테이블의 모음을 나타냅니다. 모델에는 테이블에 대한 설명이 포함되어 있으며, 각 테이블에는 테이블의 특정 측면에 대한 설명이 포함되어 있습니다. 모델에 설명된 각 테이블은 Snowflake의 물리적 기본 테이블에 매핑됩니다.

다음과 같은 필드가 있습니다.

필수 사항

name

이 의미 체계 모델에 대한 설명적 이름입니다.

고유해야 하며 따옴표로 묶지 않은 식별자 요구 사항 을 따라야 합니다. 또한 Snowflake 예약 키워드 와 충돌할 수 없습니다.

선택 사항(권장)

description

이 의미 체계 모델에 대한 설명과 이 모델이 어떤 종류의 분석에 유용한지에 대한 세부 정보입니다.

tables

이 의미 체계 모델의 논리적 테이블 목록입니다.

테이블

논리적 테이블은 물리적 데이터베이스 테이블이나 뷰에 대한 뷰로 생각할 수 있습니다. 다음과 같은 필드가 있습니다.

필수 사항

name

이 테이블에 대한 설명적 이름입니다.

고유해야 하며 따옴표로 묶지 않은 식별자 요구 사항 을 따라야 합니다. 또한 Snowflake 예약 키워드 와 충돌할 수 없습니다.

base_table

데이터베이스의 기본 테이블의 정규화된 이름입니다.

선택 사항(권장)

synonyms

이 테이블을 참조하는 데 사용된 다른 용어/구문 목록입니다. 논리적 테이블 내의 동의어 전체에서 고유해야 합니다.

description

이 테이블의 설명.

dimensions

이 테이블의 차원 열 목록입니다.

time_dimensions

이 테이블의 시간 차원 열 목록입니다.

measures

이 테이블에서 측정값의 목록입니다.

filters

있는 경우, 이 테이블의 미리 정의된 필터.

차원

차원은 상태, 사용자 유형, 플랫폼 등과 같은 범주형 값을 설명합니다. 다음과 같은 필드가 있습니다.

필수 사항

name

이 차원에 대한 설명적 이름입니다.

고유해야 하며 따옴표로 묶지 않은 식별자 요구 사항 을 따라야 합니다. 또한 Snowflake 예약 키워드 와 충돌할 수 없습니다.

expr

이 차원에 대한 SQL 식입니다. 이는 물리적 열에 대한 참조이거나 기본 테이블의 열을 하나 이상 포함하는 SQL 식일 수 있습니다.

data_type

이 차원의 데이터 타입입니다. Snowflake의 모든 데이터 타입에 대한 개요는 SQL 데이터 타입 참조 섹션을 참조하십시오. 참고로 VARIANT, OBJECT, GEOGRAPHY, ARRAY 는 현재 지원되지 않습니다.

선택 사항

synonyms

이 차원을 지칭하는 데 사용되는 다른 용어/구문 목록입니다. 이 의미 체계 모델의 모든 동의어에서 고유해야 합니다.

description

이 차원에 대한 간략한 설명과 해당 차원이 가지고 있는 데이터를 포함합니다.

unique

이 차원이 고유한 값을 가지고 있음을 나타내는 부울 값입니다.

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_name 필드를 대체합니다. cortex_search_service_name 은 더 이상 사용되지 않습니다.

is_enum

부울 값입니다. True 인 경우 sample_values 필드의 값은 가능한 값의 전체 목록으로 간주되며 모델은 해당 열에서 필터링할 때 해당 값 중에서만 선택합니다.

시간 차원

시간 차원은 판매일, 생성일, 연도와 같은 시간 값을 설명합니다. 다음과 같은 필드가 있습니다.

필수 사항

name

이 시간 차원에 대한 설명적 이름입니다.

고유해야 하며 따옴표로 묶지 않은 식별자 요구 사항 을 따라야 합니다. 또한 Snowflake 예약 키워드 와 충돌할 수 없습니다.

expr

이 열의 SQL 식입니다. 이는 물리적 열에 대한 참조이거나 기본 테이블의 열을 하나 이상 포함하는 SQL 식일 수 있습니다.

data_type

이 시간 차원의 데이터 타입입니다. Snowflake의 모든 데이터 타입에 대한 개요는 SQL 데이터 타입 참조 섹션을 참조하십시오. 참고로 VARIANT, OBJECT, GEOGRAPHY, ARRAY 는 현재 지원되지 않습니다.

선택 사항(권장)

synonyms

이 시간 차원을 지칭하는 데 사용되는 다른 용어/구문 목록입니다. 이 의미 체계 모델의 모든 동의어에서 고유해야 합니다.

description

이 차원에 대한 간략한 설명과 해당 차원이 가지고 있는 데이터를 포함합니다. 이 테이블을 사용하여 쿼리를 작성하는 데 도움이 되는 정보를 제공합니다. 예를 들어, DATETIME 열의 경우 데이터의 표준 시간대를 지정합니다.

unique:

이 열에 고유한 값이 있음을 나타내는 부울 값입니다.

sample_values:

이 열의 샘플 값(있는 경우)입니다. 사용자 질문에서 참조될 가능성이 있는 모든 값을 추가합니다. 이 필드는 선택 사항입니다.

측정값

측정값은 수익, 노출 수, 급여 등의 숫자 값을 설명합니다. 다음과 같은 필드가 있습니다.

필수 사항

name

이 측정값에 대한 설명적인 이름입니다.

고유해야 하며 따옴표로 묶지 않은 식별자 요구 사항 을 따라야 합니다. 또한 Snowflake 예약 키워드 와 충돌할 수 없습니다.

expr

이 열의 SQL 식입니다. 이는 물리적 열에 대한 참조이거나 기본 테이블의 열을 하나 이상 포함하는 SQL 식일 수 있습니다.

data_type

이 측정값의 데이터 타입입니다. Snowflake의 모든 데이터 타입에 대한 개요는 SQL 데이터 타입 참조 섹션을 참조하십시오. 참고로 VARIANT, OBJECT, GEOGRAPHY, ARRAY 는 현재 지원되지 않습니다.

선택 사항(권장)

synonyms

이 측정값을 지칭하는 데 사용되는 다른 용어/구문 목록입니다. 이 의미 체계 모델의 모든 동의어에서 고유해야 합니다.

description

이 열에 어떤 데이터가 있는지 등 이 측정값에 대한 간략한 설명입니다.

unique

이 열에 고유한 값이 있음을 나타내는 부울 값입니다.

default_aggregation

그룹화 컨텍스트에서 이 열에 적용되는 기본 집계입니다. 예시 값으로는 sum, avg, min, max, median, count, count_distinct 등이 있습니다.

sample_values

이 열의 샘플 값(있는 경우)입니다. 사용자 질문에서 참조될 가능성이 있는 모든 값을 추가합니다.

필터

필터는 필터링에 사용되는 SQL 식을 나타냅니다. 다음과 같은 필드가 있습니다.

필수 사항

name

이 필터에 대한 설명적 이름입니다.

고유해야 하며 따옴표로 묶지 않은 식별자 요구 사항 을 따라야 합니다. 또한 Snowflake 예약 키워드 와 충돌할 수 없습니다.

expr

이 필터의 SQL 식으로, 논리 열을 참조합니다.

선택 사항(권장)

synonyms

이 필터를 지칭하는 데 사용되는 다른 용어/구문 목록입니다. 이 의미 체계 모델의 모든 동의어에서 고유해야 합니다.

description

이 필터에 대한 간략한 설명으로, 이 필터가 일반적으로 어떤 용도로 사용되는지에 대한 세부 정보도 포함되어 있습니다.

기본 테이블

기본 테이블은 완전히 정규화된 테이블 이름을 나타내는 데 사용됩니다. 이는 논리적 테이블이 매핑되는 물리적 테이블입니다. 다음과 같은 필드가 있습니다.

필수 사항

database

데이터베이스의 이름입니다.

schema

스키마의 이름입니다.

table

테이블의 이름입니다.

유효성 검사된 쿼리

YAML 파일의 이 섹션의 목적과 구조에 대한 자세한 내용은 Cortex Analyst Verified Query Repository 섹션을 참조하십시오.

예시 YAML

이 섹션에서는 의미 체계 모델 YAML의 예제를 보여줍니다.

이 예제에서는 스키마에 다음 테이블이 있다고 가정합니다.

CREATE TABLE sales.public.sd_data (
    id INT PRIMARY KEY,
    dt DATETIME,
    cat VARCHAR(255),
    loc VARCHAR(255),
    cntry VARCHAR(255),
    chn VARCHAR(50),
    amt DECIMAL(10, 2),
    unts INT,
    cst DECIMAL(10, 2)
);
Copy

이 테이블에는 암호화된 열 이름과 열에 대한 의미 체계가 별로 없습니다. 다음은 이 테이블에 대한 자세한 의미 체계 정보를 제공하는 의미 체계 모델 YAML입니다.

# Name and description of the semantic model.
name: Sales Data
description: This semantic model can be used for asking questions over the sales data.

# A semantic model can contain one or more tables.
tables:

  # A logical table on top of the 'sd_data' base table.
  - name: sales_data
    description: A logical table capturing daily sales information across different store locations and product categories.

    # The fully qualified name of the base table.
    base_table:
      database: sales
      schema: public
      table: sd_data

    # Dimension columns in the logical table.
    dimensions:
      - name: product_category
        synonyms:
          - "item_category"
          - "product_type"
        description: The category of the product sold.
        expr: cat
        data_type: NUMBER
        unique: false
        sample_values:
          - "501"
          - "544"

      - name: store_country
        description: The country where the sale took place.
        expr: cntry
        data_type: TEXT
        unique: false
        sample_values:
          - "USA"
          - "GBR"

      - name: sales_channel
        synonyms:
          - "channel"
          - "distribution_channel"
        description: The channel through which the sale was made.
        expr: chn
        data_type: TEXT
        unique: false
        sample_values:
          - "FB"
          - "GOOGLE"

    # Time dimension columns in the logical table.
    time_dimensions:
      - name: sale_timestamp
        synonyms:
          - "time_of_sale"
          - "transaction_time"
        description: The time when the sale occurred. In UTC.
        expr: dt
        data_type: TIMESTAMP
        unique: false

    # Measure columns in the logical table.
    measures:
      - name: sales_amount
        synonyms:
          - "revenue"
          - "total_sales"
        description: The total amount of money generated from the sale.
        expr: amt
        data_type: NUMBER
        default_aggregation: sum

      - name: sales_tax
        description: The sales tax paid for this sale.
        expr: amt * 0.0975
        data_type: NUMBER
        default_aggregation: sum

      - name: units_sold
        synonyms:
          - "quantity_sold"
          - "number_of_units"
        description: The number of units sold in the transaction.
        expr: unts
        data_type: NUMBER
        default_aggregation: sum

      - name: cost
        description: The cost of the product sold.
        expr: cst
        data_type: NUMBER
        default_aggregation: sum

      - name: profit
        synonyms:
          - "earnings"
          - "net income"
        description: The profit generated from a sale.
        expr: amt - cst
        data_type: NUMBER
        default_aggregation: sum

    # A table can define commonly used filters over it. These filters can then be referenced in user questions directly.
    filters:
      - name: north_america
        synonyms:
          - "North America"
          - "N.A."
          - "NA"
        description: "A filter to restrict only to north american countries"
        expr: cntry IN ('canada', 'mexico', 'usa')
Copy