Cortex Analyst Verified Query Repository¶
Cortex Analyst Verified Query Repository(VQR)는 질문 모음과 이에 대한 답변을 위한 해당 SQL 쿼리를 제공하여 결과의 정확성과 신뢰성을 향상시키는 데 도움을 줄 수 있습니다. 그런 다음 Cortex Analyst 는 유사한 질문에 답변할 때 리포지토리의 관련 SQL 쿼리를 활용합니다. 의미 체계 모델 YAML 파일에서 검증된 쿼리를 지정할 수 있습니다.
중요
검증된 SQL 쿼리는 기본 데이터 세트의 이름이 아닌 의미 체계 모델에 정의된 논리 테이블과 열의 이름을 사용해야 합니다. 자세한 내용은 예제 쿼리 및 관련 토론 섹션을 참조하십시오.
검증된 쿼리는 다음과 같이 의미 체계의 verified_queries
섹션에 지정되어 있습니다.
verified_queries:
# Verified Query 1
- 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.
# Verified Query 2
- name:
question:
verified_at:
verified_by:
use_as_onboarding_question:
sql:
아래는 유효성 검사된 쿼리를 포함하는 샘플 의미 체계 모델입니다.
name: Sales Data
tables:
- name: sales_data
base_table:
database: sales
schema: public
table: sd_data
dimensions:
- name: state
description: The state where the sale took place.
expr: d_state
data_type: TEXT
unique: false
sample_values:
- "CA"
- "IL"
# 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: profit
synonyms:
- "earnings"
- "net income"
description: The profit generated from a sale.
expr: amt - cst
data_type: NUMBER
default_aggregation: sum
verified_queries:
- name: "California profit"
question: "What was the profit from California last month?"
verified_at: 1714497970
verified_by: Jane Doe
use_as_onboarding_question: true
sql: "
SELECT sum(profit)
FROM __sales_data
WHERE state = 'CA'
AND sale_timestamp >= DATE_TRUNC('month', DATEADD('month', -1, CURRENT_DATE))
AND sale_timestamp < DATE_TRUNC('month', CURRENT_DATE)
"
위의 예제에서 __sales_data
는 모델에 정의된 sales_data
테이블에 해당합니다. 이름 충돌을 피하기 위해 논리적 테이블의 이름 앞에는 밑줄 2개가 접두사로 붙습니다. 쿼리에 사용된 열(state
, sale_timestamp
, profit
)은 모델의 sale_data
테이블에 정의된 논리 열입니다. 기본 열의 이름(d_state
, dt
, amt
, cst
)은 쿼리에서 직접 사용되지 않습니다.
예시에서 알 수 있듯이, 질문은 완전한 문일 필요는 없고, 실제로 질문 형식일 필요도 없지만, 사용자가 질문할 만한 내용을 반영해야 합니다. SQL 쿼리가 구문적으로 정확하고 제시된 질문에 실제로 답하는지 확인해야 하며, 이것이 “검증된 쿼리”의 본질입니다. 유효하지 않거나 부정확한 쿼리는 Cortex Analyst 의 성능과 정확도에 부정적인 영향을 미칠 수 있습니다.
팁
다음 섹션에서 설명하는 오픈 소스 의미 체계 모델 생성기 앱을 사용하면 SQL 또는 YAML 구문에 신경 쓸 필요 없이 검증된 쿼리를 의미 체계에 추가할 수 있습니다.
의미 체계 모델 생성기를 사용하여 유효성 검사된 쿼리 추가하기¶
Snowflake는 유효성 검사된 쿼리를 모델에 추가하는 데 도움이 되는 오픈 소스 Streamlit 앱을 제공합니다. 이 앱을 설치하고 사용하려면 다음 지침을 따르십시오.
리포지토리를 복제합니다. semantic-model-generator 리포지토리를 복제하여 시작합니다. 리포지토리의 README 에 있는 설정 지침에 따라 앱에 Snowflake 자격 증명을 제공합니다.
앱을 설치합니다. admin_app README 의 지침에 따라 필요한 종속성을 설치하고 앱을 시작합니다.
앱 설정. 앱이 실행되면 제공된 필드에 의미 체계 모델 YAML 파일의 데이터베이스, 스키마 및 스테이지 위치를 입력합니다. 윈도우 왼쪽의 대화형 편집기에 YAML 파일이 나타납니다.
쿼리 생성. 창의 오른쪽에 있는 채팅 인터페이스를 사용하여 SQL 쿼리를 생성하는 질문을 합니다.
쿼리를 확인하고 저장합니다.
생성된 쿼리와 그 결과를 검사합니다. 예상대로 작동하면 어시스턴트의 답변 아래에 있는 Save as verified query 버튼을 선택하여 의미 체계에 쿼리를 추가합니다.
생성된 쿼리가 올바르지 않은 경우 Edit 버튼을 선택하여 쿼리를 수정합니다. 수정된 쿼리를 실행하여 의도한 결과가 생성되는지 확인합니다. 쿼리가 원하는 대로 작동할 때까지 편집과 테스트를 계속합니다. 그런 다음 Save as verified query 를 선택하여 의미 체계에 추가합니다.
의미 체계 모델 업데이트. 창 왼쪽 하단의 Save 버튼을 선택하여 의미 체계 모델을 업데이트합니다. 더 많은 쿼리를 추가하려면 이 과정을 반복합니다.
새 YAML 파일 업로드. 추가한 쿼리가 만족스러우면 Upload 버튼을 선택하고 새 YAML 파일의 파일 이름을 입력한 후 Submit Upload 를 선택합니다.
Snowsight에서 스테이지로 돌아오면 확인된 쿼리와 함께 새로운 의미 체계 모델 YAML 파일이 표시됩니다.