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 Spalteemail
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:
Starten Sie den Reinraum-Erstellungsprozess.
Wenn Sie aufgefordert werden, eine Vorlage auszuwählen, wählen Sie Horizontal » SQL Query, und konfigurieren Sie dann die SQL-Abfragevorlage.
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:
Weisen Sie einer oder mehreren Spalten eine Aggregationsrichtlinie zu
Weisen Sie einer oder mehreren Spalten Projektionsrichtlinien zu
- 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:
Suchen Sie den Abschnitt Privacy Settings » Aggregation Policies.
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:
Im Abschnitt Query Configurations finden Sie die Kachel Tables.
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:
Im Abschnitt Query Configurations finden Sie die Kachel Tables.
Verwenden Sie die Dropdown-Liste, um eine Tabelle auszuwählen.
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
Abfrageanforderungen für Aggregationsrichtlinien. In diesem Abschnitt können Sie zum Beispiel feststellen, dass die Funktionen MIN und MAX zur Aggregation den Anforderungen der Abfrage nicht genügen und daher nicht verwendet werden können.
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:
Im Abschnitt Query Configurations finden Sie die Kachel Tables.
Verwenden Sie die Dropdown-Liste, um eine Tabelle auszuwählen.
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;
SELECT gender, regions FROM TABLE sample_db.demo.customer;
- 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;
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
- 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;
- DATE_TRUNC
Erlaubte
SELECT COUNT(*), DATE_TRUNC('week', date_joined) AS week FROM consumer_sample_database.audience_overlap.customers GROUP BY week;
- 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;