Verwenden der SQL-Abfragevorlage in der Web-App

Wenn Sie eine SQL-Abfragevorlage in einen Reinraum einbinden, können Verbraucher SQL-Abfragen in freier Form schreiben, um Daten im Reinraum abzufragen. Wenn Sie die SQL-Abfragevorlage verwenden, müssen Verbraucherabfragen bestimmte Anforderungen erfüllen, um erfolgreich Ergebnisse zu liefern. Diese Anforderungen werden dadurch bestimmt, wie der Datenanbieter seine Tabellen mit Datenschutzrichtlinien schützt.

Vorlagenrichtlinien

Die folgenden Richtlinien werden von der SQL-Abfragevorlage angewendet, um zu steuern, wie der Verbraucher die Daten abfragen kann:

Projektionsrichtlinie

Spalten mit einer Projektionsrichtlinie können nicht projiziert (d. h. in eine SELECT-Anweisung aufgenommen) werden. Verbraucher können jedoch nach einer Spalte mit einer Projektionsrichtlinie filtern oder verknüpfen.

Aggregationsrichtlinie

Sorgt dafür, dass eine Abfrage Daten aggregiert, um Ergebnisse zurückgeben zu können.

Eine Aggregationsrichtlinie schützt die Privatsphäre der Entitäten, indem sie verlangt, dass jede Aggregationsgruppe eine Mindestanzahl von Entitäten enthält. Eine Entität wird durch einen eindeutigen Wert in einer Spalte identifiziert. Zum Beispiel könnten alle Zeilen mit dem Wert joe@company.com in der Spalte email zur selben Entität gehören.

In Reinräumen kann die Aggregationsrichtlinie mehrere Entitäten in der Tabelle schützen. Die Richtlinie könnte zum Beispiel verlangen, dass eine Aggregationsgruppe mindestens 5 Haushalte und 10 Benutzer enthält, wobei Haushalte und Benutzer beide Entitäten sind.

Beachten Sie, dass die Zuweisung einer Aggregationsrichtlinie zu einer Spalte es dem Verbraucher ermöglicht, nach dieser Spalte zu filtern, zu projizieren und zu verknüpfen.

Wichtig

Bei der Verwendung der SQL-Abfragevorlage werden die bei der Erstellung des Reinraums festgelegten Verknüpfungsrichtlinien ignoriert.

SQL-Abfragevorlage zu einem Reinraum hinzufügen

Der allgemeine Prozess der Konfiguration eines Reinraums, damit Verbraucher die SQL-Abfragevorlage zur Ausführung von Analysen verwenden können, umfasst Folgendes:

  1. Starten Sie den Reinraum-Erstellungsprozess.

  2. Wenn Sie aufgefordert werden, eine Vorlage auszuwählen, wählen Sie Horizontal » SQL Query, und konfigurieren Sie dann die SQL-Abfragevorlage.

  3. Geben Sie den Reinraum für einen Teilnehmer frei.

SQL Abfragevorlage konfigurieren

Verbraucherabfragen können nicht auf einer Spalte in einer SQL-Abfragevorlage auswählen, filtern oder verknüpfen, es sei denn, Sie weisen einer Spalte eine Richtlinie zu oder die Spalte ist vollständig zugelassen.

Nachdem Sie die SQL-Abfragevorlage zum Reinraum hinzugefügt haben, können Sie sie mit den folgenden Aktionen konfigurieren:

Erlauben Sie einem Verbraucher, auf einer Spalte SELECT, Filter oder Verknüpfung ohne Einschränkung anzuwenden.

Verwenden Sie die Dropdown-Liste Fully Permitted Columns, um den Namen der Spalte auszuwählen.

Weisen Sie einer oder mehreren Spalten eine Aggregationsrichtlinie zu

Um einer Spalte eine Aggregationsrichtlinie zuzuweisen, verwenden Sie die Dropdown-Liste Aggregation Policy Columns, um den Namen der Spalte auszuwählen. Nachdem Sie die Aggregationsrichtlinie zugewiesen haben, müssen die Abfragen des Verbrauchers Daten in Gruppen aggregieren, die eine Mindestanzahl eindeutiger Werte aus der Spalte enthalten.

Nachdem Sie einer Spalte die Aggregationsrichtlinie zugewiesen haben, können Sie einstellen, wie viele eindeutige Werte (d. h. Entitäten) aus der Spalte in den Aggregationsgruppen enthalten sein müssen, die von der Abfrage des Verbrauchers zurückgegeben werden. So passen Sie die erforderliche Anzahl von Entitäten in jeder Gruppe an:

  1. Suchen Sie den Abschnitt Privacy Settings » Aggregation Policies.

  2. Finden Sie die Spalte, und erhöhen oder verringern Sie dann ihren Threshold. Je höher der Schwellenwert, desto mehr unterschiedliche Werte müssen in jeder Aggregationsgruppe zurückgegeben werden, was einen stärkeren Datenschutz für die Entität bietet.

Sie können die Aggregationsrichtlinie weiteren Spalten zuweisen, um zusätzliche Entitäten zu definieren, und dann einstellen, wie viele dieser Entitäten in jeder Gruppe enthalten sein müssen.

Weisen Sie einer oder mehreren Spalten Projektionsrichtlinien zu

Um einer Spalte eine Projektionsrichtlinie zuzuweisen, verwenden Sie die Dropdown-Liste Projection Policy Columns, um den Namen der Spalte auszuwählen. Verbraucher können eine Spalte mit einer Projektionsrichtlinie nicht in einer SELECT-Anweisung verwenden.

Ausführen einer Analyse mit einer SQL-Abfragevorlage

Verwenden Sie die Informationen in diesem Abschnitt, um eine erfolgreiche Abfrage in der SQL-Abfragevorlage zu schreiben.

Auf welchen Spalten kann ich verknüpfen und filtern?

Sie können auf jeder Spalte, für die eine Richtlinie gilt oder die vollständig zugelassen ist, verknüpfen und filtern. Um festzustellen, ob eine Spalte verknüpft oder in einem Filter verwendet werden kann:

  1. Im Abschnitt Query Configurations finden Sie die Kachel Tables.

  2. Verwenden Sie die Dropdown-Liste, um eine Tabelle auszuwählen. Sie können alle aufgeführten Spalten verknüpfen und filtern.

Aggregationsanforderungen

Wenn der Anbieter einer Spalte eine Aggregationsrichtlinie zugewiesen hat, müssen alle Abfragen, die mit der SQL-Abfragevorlage ausgeführt werden, aggregierte Ergebnisse liefern.

So bestimmen Sie, ob Ihre Abfrage Ergebnisse aggregieren muss:

  1. Im Abschnitt Query Configurations finden Sie die Kachel Tables.

  2. Verwenden Sie die Dropdown-Liste, um eine Tabelle auszuwählen.

  3. Suchen Sie nach Spalten, die mit einer Aggregationsrichtlinie gekennzeichnet sind. Wenn es mindestens ein Aggregationsrichtlinien-Label gibt, müssen Sie in Ihrer Abfrage eine Aggregation verwenden.

Eine Anleitung, wie Sie eine erfolgreiche Abfrage für Daten schreiben, die durch eine Aggregationsrichtlinie geschützt sind, finden Sie unter

Welche Spalten kann ich projizieren?

Bei Abfragen, die mit der SQL-Abfragevorlage ausgeführt werden, gibt es Einschränkungen hinsichtlich der Spalten, die projiziert (in einer SELECT-Anweisung verwendet) werden können.

Um festzustellen, ob Ihre Abfrage eine Spalte projizieren kann:

  1. Im Abschnitt Query Configurations finden Sie die Kachel Tables.

  2. Verwenden Sie die Dropdown-Liste, um eine Tabelle auszuwählen.

  3. Suchen Sie nach Spalten, die mit einer Projektionsrichtlinie gekennzeichnet sind, was bedeutet, dass Sie sie nicht projizieren können. Sie können alle Spalten projizieren, mit Ausnahme derjenigen, die mit dem Projektionsrichtlinien-Label versehen sind.

Ergebnisse anzeigen

Um Ihre Abfrage in der Web-App auszuführen, wählen Sie Run und geben Sie dann optional einen Namen und einen Zeitplan für die Ausführung Ihrer Abfrage ein. Prüfen Sie den Abfragestatus in der Liste Analyses and Queries, um zu sehen, wann die Abfrage beendet ist. Wählen Sie eine abgeschlossene Abfrage aus, um die Ergebnisse anzuzeigen. Bei erfolgreichen Abfragen wird eine Tabelle mit den Ergebnissen angezeigt. Wenn die Ergebnistabelle bestimmte Anforderungen erfüllt, die im Folgenden beschrieben werden, können die Ergebnisse auch in einem Diagramm angezeigt werden. Snowflake bietet mehrere Diagrammtypen, darunter Balken-, Linien- und Kreisdiagramme. Wählen Sie das Ausgabeformat, indem Sie die entsprechende Schaltfläche im Abschnitt Ergebnisse auswählen.

Anforderungen grafisch darstellen

Damit Snowflake ein Diagramm erstellen kann:

  • Die Ergebnistabelle muss mindestens eine Spalte mit Messwerten (numerisch) und eine Spalte mit Dimensionen (Kategorie) enthalten

  • Der Measure-Spaltename muss das folgende Präfix oder Suffix haben (Groß-/Kleinschreibung wird nicht berücksichtigt):

    • Präfixe für Spaltennamen:

      • COUNT

      • SUM

      • AVG

      • MIN

      • MAX

      • OUTPUT

      • OVERLAP

    • Suffix des Spaltennamens:

      • _OVERLAP

Snowflake erstellt ein Diagramm, das die erste in Frage kommende Measure-Spalten und die erste Dimensionsspalte in einer Ergebnistabelle verwendet.

Einschränkungen

  • Eine ORDER BY-Klausel hat keinen Einfluss darauf, wie die Ergebnisse der Analyse angezeigt werden.

Beispielabfragen

In diesem Abschnitt erfahren Sie, was eine Abfrage enthalten kann und was nicht, wenn Sie eine Analyse mit der SQL-Abfragevorlage durchführen.

Abfragen ohne eine Aggregationsfunktion

Unter bestimmten Umständen können Sie Rückgabewerte ohne Verwendung einer Aggregationsfunktion zurückgeben.

Erlaubte

Nicht erlaubt

SELECT gender, regions
  FROM TABLE sample_db.demo.customer
  GROUP BY gender, region;
Copy
SELECT gender, regions
  FROM TABLE sample_db.demo.customer;
Copy
Allgemeine Tabellenausdrücke (Common Table Expressions, (CTEs))

Erlaubte

Nicht erlaubt

WITH audience AS
  (SELECT COUNT(DISTINCT t1.hashed_email),
    t1.status
    FROM provider_db.overlap.customers t1
    JOIN consumer_db.overlap.customers t2
      ON t1.hashed_email = t2.hashed_email
    GROUP BY t1.status);

SELECT * FROM audience;
Copy
WITH audience AS
  (SELECT t1.hashed_email,
    t1.status
    FROM provider_db.overlap.customers quoted t1
    JOIN consumer_db.overlap.customers t2
      ON t1.hashed_email = t2.hashed_email
    GROUP BY t1.status)

SELECT * FROM audience
Copy
CREATE, ALTER, TRUNCATE

Eine Abfrage kann nicht CREATE, ALTER oder TRUNCATE verwenden.

Abfrage mit Verknüpfungen

Erlaubte

SELECT p.education_level,
  c.status,
  AVG(p.days_active),
  COUNT(DISTINCT p.age_band)
  FROM  sample_database_preprod.demo.customers c
  INNER JOIN
  sample_database_preprod.demo.customers p
    ON  c.hashed_email = p.hashed_email
  GROUP BY ALL;
Copy
DATE_TRUNC

Erlaubte

SELECT COUNT(*),
  DATE_TRUNC('week', date_joined) AS week
  FROM consumer_sample_database.audience_overlap.customers
  GROUP BY week;
Copy
Bezeichner in Anführungszeichen

Erlaubte

SELECT COUNT(DISTINCT t1.”hashed_email”)
  FROM provider_sample_database.audience_overlap."customers quoted" t1
  INNER JOIN
  consumer_sample_database.audience_overlap.customers t2
    ON t1."hashed_email" = t2.hashed_email;
Copy