Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Regel für die Aggregationsanalyse
In generiert AWS Clean Roomseine Aggregationsanalyseregel aggregierte Statistiken mithilfe der Funktionen COUNT, SUM und/oder AVG in optionalen Dimensionen. Wenn die Aggregationsanalyseregel zu einer konfigurierten Tabelle hinzugefügt wird, kann das Mitglied, das abfragen kann, Abfragen für die konfigurierte Tabelle ausführen.
Die Regel zur Aggregationsanalyse unterstützt Anwendungsfälle wie Kampagnenplanung, Medienreichweite, Frequenzmessung und Zuordnung.
Die unterstützte Abfragestruktur und Syntax sind in definiertStruktur und Syntax der Aggregationsabfrage.
Zu den Parametern der Analyseregel, die in definiert sindAggregationsanalyseregel – Abfragesteuerungen, gehören Abfragesteuerelemente und Abfrageergebnissteuerelemente. Zu den Abfragekontrollen gehört die Möglichkeit, zu verlangen, dass eine konfigurierte Tabelle mit mindestens einer konfigurierten Tabelle verbunden wird, die dem Mitglied gehört, das sie direkt oder transitiv abfragen kann. Mit dieser Anforderung können Sie sicherstellen, dass die Abfrage auf der Schnittmenge (INNERJOIN) Ihrer Tabelle und ihrer Tabelle ausgeführt wird.
Struktur und Syntax der Aggregationsabfrage
Abfragen für Tabellen mit einer Aggregationsanalyseregel müssen der folgenden Syntax entsprechen.
--
select_aggregate_function_expression
SELECT aggregation_function(column_name) [[AS] column_alias ] [, ...] --select_grouping_column_expression
[, {column_name|scalar_function(arguments)} [[AS] column_alias ]][, ...] --table_expression
FROM table_name [[AS] table_alias ] [[INNER] JOIN table_name [[AS] table_alias] ON join_condition] [...] --where_expression
[WHERE where_condition] --group_by_expression
[GROUP BY {column_name|scalar_function(arguments)}, ...]] --having_expression
[HAVING having_condition] --order_by_expression
[ORDER BY {column_name|scalar_function(arguments)} [{ASC|DESC}]] [,...]]
In der folgenden Tabelle wird jeder Ausdruck erläutert, der in der vorherigen Syntax aufgeführt ist.
Expression | Definition | Beispiele |
---|---|---|
|
Eine durch Komma getrennte Liste mit den folgenden Ausdrücken:
AnmerkungEs muss mindestens eine |
|
|
Eine oder mehrere unterstützte Aggregationsfunktionen, die auf eine oder mehrere Spalten angewendet werden. Nur Spalten sind als Argumente für Aggregationsfunktionen zulässig. AnmerkungEs muss mindestens eine |
|
|
Ein Ausdruck, der einen beliebigen Ausdruck enthalten kann, der Folgendes verwendet:
Anmerkung
|
|
|
Eine Tabelle oder Join von Tabellen, die bedingte Join-Ausdrücke mit verbinden
Die
|
|
|
Ein bedingter Ausdruck, der einen booleschen Wert zurückgibt. Es kann aus folgenden Komponenten bestehen:
Unterstützte Vergleichsbedingungen sind ( Unterstützte logische Operatoren sind ( Die |
|
|
Eine durch Komma getrennte Liste von Ausdrücken, die den Anforderungen für entsprechen |
|
|
Ein bedingter Ausdruck, der einen booleschen Wert zurückgibt. Sie haben eine unterstützte Aggregationsfunktion, die auf eine einzelne Spalte angewendet wird (z. B. Unterstützte Bedingungen sind ( Unterstützte logische Operatoren sind ( Die |
|
|
Eine durch Komma getrennte Liste von Ausdrücken, die mit denselben Anforderungen kompatibel ist, die zuvor Die Anmerkung
|
|
Beachten Sie bei der Struktur und Syntax von Aggregationsabfragen Folgendes:
-
Andere SQL-Befehle als SELECT werden nicht unterstützt.
-
Unterabfragen und allgemeine Tabellenausdrücke (z. B. WITH) werden nicht unterstützt.
-
Operatoren, die mehrere Abfragen kombinieren (z. B. UNION), werden nicht unterstützt.
-
TOPDie OFFSET Parameter LIMIT, und werden nicht unterstützt.
Aggregationsanalyseregel – Abfragesteuerungen
Mit Aggregationsabfragesteuerelementen können Sie steuern, wie die Spalten in Ihrer Tabelle zum Abfragen der Tabelle verwendet werden. Sie können beispielsweise steuern, welche Spalte für die Verknüpfung verwendet wird, welche Spalte gezählt werden kann oder welche Spalte in WHERE Anweisungen verwendet werden kann.
In den folgenden Abschnitten werden die einzelnen Kontrollen erläutert.
Aggregationskontrollen
Mithilfe von Aggregationssteuerungen können Sie definieren, welche Aggregationsfunktionen zugelassen werden sollen und auf welche Spalten sie angewendet werden müssen. Aggregationsfunktionen können in den ORDER BY Ausdrücken SELECTHAVING, und verwendet werden.
Kontrolle | Definition | Verwendung |
---|---|---|
aggregateColumns |
Spalten mit konfigurierten Tabellenspalten, die Sie für die Verwendung in Aggregationsfunktionen zulassen. |
Einige Bei |
function |
Die Funktionen COUNT, SUM und AVG, die Sie für die Verwendung zusätzlich zur zulassenaggregateColumns . |
|
Join-Steuerelemente
Eine JOIN
Klausel wird verwendet, um Zeilen aus zwei oder mehr Tabellen zu kombinieren, basierend auf einer zugehörigen Spalte zwischen ihnen.
Sie können Join-Steuerelemente verwenden, um zu steuern, wie Ihre Tabelle mit anderen Tabellen in der verknüpft werden kanntable_expression
. unterstützt AWS Clean Rooms nur INNER JOIN. -INNERJOINAnweisungen können nur Spalten verwenden, die joinColumn
in Ihrer Analyseregel explizit als kategorisiert wurden, abhängig von den von Ihnen definierten Steuerelementen.
Der INNER JOIN muss mit einem joinColumn
aus Ihrer konfigurierten Tabelle und einem joinColumn
aus einer anderen konfigurierten Tabelle in der Zusammenarbeit arbeiten. Sie entscheiden, welche Spalten aus Ihrer Tabelle als verwendet werden könnenjoinColumn
.
Jede Übereinstimmungsbedingung innerhalb der -ONKlausel ist erforderlich, um die Gleichheitsvergleichsbedingung (=
) zwischen zwei Spalten zu verwenden.
Mehrere Übereinstimmungsbedingungen innerhalb einer -ONKlausel können sein:
-
Kombiniert mit dem
AND
logischen Operator -
Getrennt durch den
OR
logischen Operator
Anmerkung
Alle JOIN Übereinstimmungsbedingungen müssen mit einer Zeile von jeder Seite des übereinstimmenJOIN. Alle Bedingungen, die durch einen OR
oder einen AND
logischen Operator verbunden sind, müssen ebenfalls diese Anforderung erfüllen.
Im Folgenden finden Sie ein Beispiel für eine Abfrage mit einem AND
logischen Operator.
SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id AND table1.name = table2.name
Im Folgenden finden Sie ein Beispiel für eine Abfrage mit einem OR
logischen Operator.
SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id OR table1.name = table2.name
Kontrolle | Definition | Verwendung |
---|---|---|
joinColumns |
Die Spalten (falls vorhanden), die dem Mitglied, das abfragen kann, erlauben soll, in der INNER JOIN Anweisung zu verwenden. |
Ein bestimmter Die gleiche Spalte kann nicht sowohl als auch verwendet werden Sofern es nicht auch als kategorisiert wurde |
joinRequired |
Steuern Sie, ob Sie einen INNER JOIN mit einer konfigurierten Tabelle des Mitglieds benötigen, das abfragen kann. |
Wenn Sie diesen Parameter aktivieren, INNER JOIN ist ein erforderlich. Wenn Sie diesen Parameter nicht aktivieren, INNER JOIN ist optional. Unter der Annahme, dass Sie diesen Parameter aktivieren, muss das Mitglied, das abfragen kann, eine Tabelle, deren Eigentümer es ist, in die aufnehmenINNERJOIN. Sie müssen JOIN Ihre Tabelle mit ihren Tabellen direkt oder transitiv verbinden (d. h. ihre Tabelle mit einer anderen Tabelle verknüpfen, die selbst mit Ihrer Tabelle verbunden ist). |
Im Folgenden finden Sie ein Beispiel für Transitivität.
ON my_table.identifer = third_party_table.identifier .... ON third_party_table.identifier = member_who_can_query_table.id
Anmerkung
Das Mitglied, das abfragen kann, kann auch den -joinRequired
Parameter verwenden. In diesem Fall muss die Abfrage ihre Tabelle mit mindestens einer anderen Tabelle verbinden.
Dimensionssteuerungen
Dimensionssteuerelemente steuern die Spalte, nach der die Aggregationsspalten gefiltert, gruppiert oder aggregiert werden können.
Kontrolle | Definition | Verwendung |
---|---|---|
dimensionColumns |
Die Spalten (falls vorhanden), die Sie dem Mitglied erlauben, die abfragen könnenWHERE, in SELECT, GROUPBY, und zu verwendenORDERBY. |
Ein Die gleiche Spalte kann nicht sowohl ein |
Skalarfunktionen
Skalare Funktionen steuern, welche skalaren Funktionen für Dimensionsspalten verwendet werden können.
Kontrolle | Definition | Verwendung |
---|---|---|
scalarFunctions |
Die skalaren Funktionen, die |
Gibt die skalaren Funktionen (falls vorhanden) an, die Sie zulassen (z. B. CAST), um auf angewendet zu werden Skalare Funktionen können nicht zusätzlich zu anderen Funktionen oder innerhalb anderer Funktionen verwendet werden. Argumente für skalare Funktionen können Spalten, Zeichenfolgeliterale oder numerische Literale sein. |
Die folgenden skalaren Funktionen werden unterstützt:
-
Mathematische Funktionen – ABS, CEILING, FLOOR, LOG, LN, ROUND, SQRT
-
Funktionen zur Datentypformatierung – CAST, CONVERT, TO_CHAR, TO_DATE, TO_NUMBER, TO_TIMESTAMP
-
Zeichenfolgenfunktionen – LOWER, UPPER, TRIM, RTRIM, SUBSTRING
-
Für RTRIM sind benutzerdefinierte Zeichensätze zum Kürzen nicht zulässig.
-
-
Bedingte Ausdrücke – COALESCE
-
Datumsfunktionen – EXTRACT, GETDATE, CURRENT_DATE, DATEADD
-
Andere Funktionen – TRUNC
Weitere Informationen finden Sie in der AWS Clean Rooms SQL-Referenz .
Regel zur Aggregationsanalyse – Abfrageergebnissteuerelemente
Mit den Steuerelementen für Aggregationsabfrageergebnisse können Sie steuern, welche Ergebnisse zurückgegeben werden, indem Sie eine oder mehrere Bedingungen angeben, die jede Ausgabezeile erfüllen muss, damit sie zurückgegeben werden kann. AWS Clean Rooms unterstützt Aggregationseinschränkungen in Form von COUNT (DISTINCT column) >= X
. Dieses Formular erfordert, dass jede Zeile mindestens X unterschiedliche Werte einer Auswahl aus Ihrer konfigurierten Tabelle aggregiert (z. B. eine Mindestanzahl unterschiedlicher user_id
Werte). Dieser Mindestschwellenwert wird automatisch durchgesetzt, auch wenn die übermittelte Abfrage selbst nicht die angegebene Spalte verwendet. Sie werden gemeinsam für jede konfigurierte Tabelle in der Abfrage aus den konfigurierten Tabellen jedes Mitglieds der Zusammenarbeit durchgesetzt.
Jede konfigurierte Tabelle muss mindestens eine Aggregationsbeschränkung in ihrer Analyseregel haben. Konfigurierte Tabellenbesitzer können mehrere columnName
und zugehörige hinzufügen minimum
und sie werden gemeinsam durchgesetzt.
Aggregationseinschränkungen
Aggregationseinschränkungen steuern, welche Zeilen in den Abfrageergebnissen zurückgegeben werden. Um zurückgegeben werden zu können, muss eine Zeile die angegebene Mindestanzahl unterschiedlicher Werte in jeder Spalte erfüllen, die in der Aggregationseinschränkung angegeben ist. Diese Anforderung gilt auch dann, wenn die Spalte nicht explizit in der Abfrage oder in anderen Teilen der Analyseregel erwähnt wird.
Kontrolle | Definition | Verwendung |
---|---|---|
columnName |
Die |
Kann eine beliebige Spalte in der konfigurierten Tabelle sein. |
minimum |
Die Mindestanzahl unterschiedlicher Werte für die zugehörige |
Der |
Struktur der Regel für die Aggregationsanalyse
Das folgende Beispiel zeigt eine vordefinierte Struktur für eine Aggregationsanalyseregel.
Im folgenden Beispiel
bezieht sich auf Ihre Datentabelle. Sie können jeden MyTable
Platzhalter für Benutzereingaben
durch Ihre eigenen Informationen ersetzen.
{ "aggregateColumns": [ { "columnNames": [
MyTable column names
], "function": [Allowed Agg Functions
] }, ], "joinRequired": ["QUERY_RUNNER"], "joinColumns": [MyTable column names
], "dimensionColumns": [MyTable column names
], "scalarFunctions": [Allowed Scalar functions
], "outputConstraints": [ { "columnName": [MyTable column names
], "minimum": [Numeric value
] }, ] }
Aggregationsanalyseregel – Beispiel
Das folgende Beispiel zeigt, wie zwei Unternehmen AWS Clean Rooms mithilfe der Aggregationsanalyse zusammenarbeiten können.
Unternehmen A verfügt über Kunden- und Verkaufsdaten. Unternehmen A ist daran interessiert, die Produktrückgabeaktivität zu verstehen. Unternehmen B ist eines der Lebensmittel von Unternehmen A und hat Daten zurückgegeben. Unternehmen B verfügt auch über Segmentattribute für Kunden, die für Unternehmen A nützlich sind (z. B. bei dem Kauf verwandter Produkte wird der Kundenservice des Einzelhandels verwendet). Unternehmen B möchte keine Kundenrückgabedaten und Attributinformationen auf Zeilenebene bereitstellen. Unternehmen B möchte nur eine Reihe von Abfragen für Unternehmen A aktivieren, um aggregierte Statistiken zu überlappenden Kunden mit einem minimalen Aggregationsschwellenwert zu erhalten.
Unternehmen A und Unternehmen B entscheiden sich für eine Zusammenarbeit, damit Unternehmen A die Produktrückgabeaktivitäten verstehen und bessere Produkte in Unternehmen B und anderen Kanälen bereitstellen kann.
Um die Zusammenarbeit zu erstellen und eine Aggregationsanalyse durchzuführen, gehen die Unternehmen wie folgt vor:
-
Unternehmen A erstellt eine Zusammenarbeit und eine Mitgliedschaft. Die Zusammenarbeit hat Unternehmen B als weiteres Mitglied der Zusammenarbeit. Unternehmen A aktiviert die Abfrageprotokollierung in der Zusammenarbeit und die Abfrageprotokollierung in seinem Konto.
-
Unternehmen B erstellt eine Mitgliedschaft in der Zusammenarbeit. Es aktiviert die Abfrageprotokollierung in seinem Konto.
-
Unternehmen A erstellt eine vertriebskonfigurierte Tabelle.
-
Unternehmen A fügt die folgende Aggregationsanalyseregel zur Tabelle hinzu, die für den Verkauf konfiguriert ist.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "purchases" ], "function": "AVG" }, { "columnNames": [ "purchases" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "dimensionColumns": [ "demoseg", "purchasedate", "productline" ], "scalarFunctions": [ "CAST", "COALESCE", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 2, "type": "COUNT_DISTINCT" }, ] }
aggregateColumns
– Unternehmen A möchte die Anzahl der eindeutigen Kunden in der Überschneidung zwischen Verkaufsdaten und Rückgabedaten zählen. Unternehmen A möchte auch die Anzahl der , die gemachtpurchases
wurden, summieren, um sie mit der Anzahl von zu vergleichenreturns
.joinColumns
– Unternehmen A möchte verwendenidentifier
, um Kunden aus Verkaufsdaten mit Kunden aus Rückgabedaten abzugleichen. Dies hilft Unternehmen A dabei, zu den richtigen Käufen zurückzukehren. Es hilft auch Unternehmen A, sich überschneidende Kunden zu segmentieren.dimensionColumns
– Unternehmen A verwendet ,dimensionColumns
um nach dem spezifischen Produkt zu filtern, Käufe und Rückgaben über einen bestimmten Zeitraum zu vergleichen, sicherzustellen, dass das Rückgabedatum nach dem Produktdatum liegt, und um überlappende Kunden zu segmentieren.scalarFunctions
– Unternehmen A wählt eineCAST
skalare Funktion aus, um bei Bedarf Datentypformate basierend auf der konfigurierten Tabelle zu aktualisieren, die Unternehmen A der Zusammenarbeit zuordnet. Es fügt auch skalare Funktionen hinzu, um bei Bedarf die Formatierung von Spalten zu unterstützen.outputConstraints
– Unternehmen A legt Mindestausgabeeinschränkungen fest. Es muss die Ergebnisse nicht einschränken, da der Analyst Daten auf Zeilenebene aus seiner Verkaufstabelle sehen darfAnmerkung
Unternehmen A nimmt nicht
joinRequired
in die Analyseregel auf. Sie bietet ihrem Analysten Flexibilität, die Verkaufstabelle allein abzufragen. -
Unternehmen B erstellt eine rückgabekonfigurierte Tabelle.
-
Unternehmen B fügt der konfigurierten Rückgabetabelle die folgende Aggregationsanalyseregel hinzu.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "returns" ], "function": "AVG" }, { "columnNames": [ "returns" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "joinRequired": [ "QUERY_RUNNER" ], "dimensionColumns": [ "state", "popularpurchases", "customerserviceuser", "productline", "returndate" ], "scalarFunctions": [ "CAST", "LOWER", "UPPER", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 100, "type": "COUNT_DISTINCT" }, { "columnName": "producttype", "minimum": 2, "type": "COUNT_DISTINCT" } ] }
aggregateColumns
– Unternehmen B ermöglicht es Unternehmen A, Summen vorzunehmenreturns
, um sie mit der Anzahl der Käufe zu vergleichen. Sie haben mindestens eine Aggregatspalte, da sie eine Aggregatabfrage aktivieren.joinColumns
– Unternehmen B ermöglicht es Unternehmen A, beizutretenidentifier
, um Kunden aus Rückgabedaten aus Verkaufsdaten mit Kunden zu verknüpfen. -identifier
Daten sind besonders sensibel und stellenjoinColumn
sicher, dass die Daten niemals in einer Abfrage ausgegeben werden.joinRequired
– Unternehmen B verlangt, dass sich Abfragen der Rückgabedaten mit den Verkaufsdaten überschneiden. Sie möchten nicht Unternehmen A ermöglichen, alle Personen in ihrem Datensatz abzufragen. Sie haben sich auch in ihrer Zusammenarbeitsvereinbarung auf diese Einschränkung geeinigt.dimensionColumns
– Unternehmen B ermöglicht es Unternehmen A, nachstate
, und zu filtern und zu gruppierenpopularpurchases
,customerserviceuser
wobei es sich um eindeutige Attribute handelt, die dazu beitragen könnten, die Analyse für Unternehmen A durchzuführen. Unternehmen B ermöglicht Unternehmen A, zu verwendenreturndate
, um Ausgaben zu filternreturndate
, die nach auftretenpurchasedate
. Mit dieser Filterung ist die Ausgabe genauer, um die Auswirkungen der Produktänderung zu bewerten.scalarFunctions
– Unternehmen B ermöglicht Folgendes:-
TRUNC für Datumsangaben
-
LOWER und UPPER, falls die in einem anderen Format in ihren Daten eingegeben
producttype
wird -
CAST wenn Unternehmen A Datentypen in Verkäufen konvertieren muss, damit sie den Datentypen in Rückgaben entsprechen
Unternehmen A aktiviert keine anderen skalaren Funktionen, da sie nicht glauben, dass sie für Abfragen erforderlich sind.
outputConstraints
– Unternehmen B legt Mindestausgabeeinschränkungen für festhashedemail
, um die Fähigkeit zur Neuidentifizierung von Kunden zu verringern. Außerdem wird eine Mindestausgabeeinschränkung für hinzugefügt,producttype
um die Möglichkeit zu verringern, bestimmte zurückgegebene Produkte neu zu identifizieren. Bestimmte Produkttypen könnten basierend auf den Dimensionen der Ausgabe dominanter sein (z. B.state
). Ihre Ausgabeeinschränkungen werden immer durchgesetzt, unabhängig von den Ausgabeeinschränkungen, die Unternehmen A ihren Daten hinzugefügt hat. -
-
Unternehmen A erstellt eine Zuordnung von Verkaufstabellen zur Zusammenarbeit.
-
Unternehmen B erstellt eine Zuordnung von Rückgabetabellen zur Zusammenarbeit.
-
Unternehmen A führt Abfragen wie das folgende Beispiel aus, um die Menge der Rückgaben in Unternehmen B besser zu verstehen als die Gesamtzahl der Käufe nach Standort im Jahr 2022.
SELECT companyB.state, SUM(companyB.returns), COUNT(DISTINCT companyA.hashedemail) FROM sales companyA INNER JOIN returns companyB ON companyA.identifier = companyB.identifier WHERE companyA.purchasedate BETWEEN '2022-01-01' AND '2022-12-31' AND TRUNC(companyB.returndate) > companyA.purchasedate GROUP BY companyB.state;
-
Unternehmen A und Unternehmen B überprüfen Abfrageprotokolle. Unternehmen B überprüft, ob die Abfrage mit dem übereinstimmt, was in der Zusammenarbeitsvereinbarung vereinbarten wurde.
Beheben von Problemen mit Aggregationsanalyseregeln
Verwenden Sie die hier aufgeführten Informationen, um häufige Probleme zu diagnostizieren und zu beheben, wenn Sie mit Aggregationsanalyseregeln arbeiten.
Problembereiche
Meine Abfrage hat keine Ergebnisse zurückgegeben
Dies kann passieren, wenn es keine übereinstimmenden Ergebnisse gibt oder wenn die übereinstimmenden Ergebnisse nicht einen oder mehrere minimale Aggregationsschwellenwerte erreichen.
Weitere Informationen zu minimalen Aggregationsschwellenwerten finden Sie unter Aggregationsanalyseregel – Beispiel.