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

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)
"
Copy

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.

  1. 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.

  2. 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.

  3. 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.

  4. Abfrage erstellen. Auf der rechten Seite des Fensters können Sie über die Weboberfläche eine Frage stellen, die eine SQL-Abfrage generiert.

  5. 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.

  1. 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.

  2. 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.