Cortex Analyst Geprüftes Abfrage-Repository¶
Das Cortex Analyst Geprüftes Abfrage-Repository (VQR) kann dazu beitragen, die Präzision und Vertrauenswürdigkeit der Ergebnisse zu verbessern, indem es eine Sammlung von Fragen und entsprechenden SQL-Abfragen zu deren Beantwortung bereitstellt. Cortex Analyst nutzt dann bei der Beantwortung ähnlicher Fragen die relevanten SQL-Abfragen aus dem Repository. Sie können verifizierte Abfragen in Ihrem semantischen Modell in der YAML-Datei angeben.
Wichtig
Verifizierte SQL-Abfragen müssen die Namen der logischen Tabellen und Spalten verwenden, die im semantischen Modell definiert sind, und nicht die des zugrunde liegenden Datensets. Weitere Informationen finden Sie in der Beispielabfrage und der dazugehörigen Diskussion.
Geprüfte Abfragen werden im Abschnitt verified_queries
des semantischen Modells angegeben, wie hier gezeigt.
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:
Nachfolgend finden Sie ein Beispiel für ein semantisches Modell, das eine verifizierte Abfrage enthält.
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)
"
In dem obigen Beispiel entspricht __sales_data
der im Modell definierten Tabelle sales_data
. Um Namenskonflikte zu vermeiden, wird dem Namen der logischen Tabelle ein Präfix mit zwei Unterstrichen vorangestellt. Die in der Abfrage verwendeten Spalten (state
, sale_timestamp
und profit
) sind die logischen Spalten, die in der sale_data
-Tabelle des Modells definiert sind. Die Namen der zugrunde liegenden Spalten (d_state
, dt
, amt
und cst
) werden nicht direkt in der Abfrage verwendet.
Wie im Beispiel dargestellt, muss die Frage nicht unbedingt ein vollständiger Satz sein oder tatsächlich die Form einer Frage haben, aber sie sollte etwas widerspiegeln, das ein Benutzer fragen könnte. Vergewissern Sie sich, dass die SQL-Abfragen syntaktisch korrekt sind und die gestellten Fragen tatsächlich beantworten; dies ist das Wesen einer „verifizierten Abfrage“. Ungültige oder ungenaue Abfragen können sich negativ auf die Leistung und Genauigkeit von Cortex Analyst auswirken.
Tipp
Verwenden Sie die im nächsten Abschnitt beschriebene Open-Source-App zum Generieren semantischer Modelle, um Ihrem semantischen Modell verifizierte Abfragen hinzuzufügen, ohne sich mit der Syntax von SQL oder YAML befassen zu müssen.
Hinzufügen verifizierter Abfragen mit dem Generator für semantische Modelle¶
Snowflake bietet eine Open-Source-Streamlit-App, mit der Sie verifizierte Abfragen zu Ihrem Modell hinzufügen können. Um diese App zu installieren und zu verwenden, folgen Sie diesen Anweisungen.
Repository klonen. Beginnen Sie mit dem Klonen des Repositorys semantic-model-generator. Befolgen Sie die Setup-Anweisungen auf README, um Ihre Snowflake-Anmeldeinformationen für die App bereitzustellen.
Installieren Sie die App. Folgen Sie den Anweisungen in der admin_app README, um die erforderlichen Abhängigkeiten zu installieren und die App zu starten.
Einrichten der App. Sobald die App läuft, geben Sie die Datenbank, das Schema und den Stagingbereich Ihres semantischen Modells YAML in die vorgesehenen Felder ein. Die YAML-Datei wird in einem interaktiven Editor links im Fenster angezeigt.
Abfrage erstellen. Auf der rechten Seite des Fensters können Sie über die Weboberfläche eine Frage stellen, die eine SQL-Abfrage generiert.
Abfrage prüfen und speichern
Prüfen Sie die generierte Abfrage und die daraus resultierenden Ergebnisse. Wenn es wie erwartet funktioniert, wählen Sie die Schaltfläche Save as verified query unterhalb der Antwort des Assistenten, um die Abfrage zu Ihrem semantischen Modell hinzuzufügen.
Wenn die generierte Abfrage nicht korrekt ist, wählen Sie die Schaltfläche Edit, um die Abfrage zu ändern. Führen Sie die geänderte Abfrage aus, um zu prüfen, ob sie die gewünschten Ergebnisse liefert. Fahren Sie mit dem Bearbeiten und Testen fort, bis die Abfrage wie gewünscht funktioniert. Wählen Sie dann Save as verified query, um es zu Ihrem semantischen Modell hinzuzufügen.
Semantisches Modell aktualisieren. Wählen Sie die Schaltfläche Save unten links im Fenster, um das semantische Modell zu aktualisieren. Wiederholen Sie den Vorgang, um weitere Abfragen hinzuzufügen.
Hochladen der neuen YAML-Datei. Wenn Sie mit den hinzugefügten Abfragen zufrieden sind, wählen Sie die Schaltfläche Upload, geben Sie einen Dateinamen für Ihre neue YAML Datei ein und wählen Sie Submit Upload.
Wenn Sie zu Ihrem Stagingbereich in Snowsight zurückkehren, sehen Sie die neue YAML-Datei mit semantischem Modell mit Ihren verifizierten Abfragen.