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 AWS Clean Rooms generiert eine Aggregationsanalyseregel aggregierte Statistiken mithilfe der Funktionen COUNT, SUM und and/or AVG anhand optionaler Dimensionen. Wenn die Aggregationsanalyseregel zu einer konfigurierten Tabelle hinzugefügt wird, ermöglicht sie dem Mitglied, das Abfragen durchführen kann, Abfragen in der konfigurierten Tabelle auszuführen.
Die Aggregationsanalyseregel unterstützt Anwendungsfälle wie Kampagnenplanung, Medienreichweite, Frequenzmessung und Zuordnung.
Die unterstützte Abfragestruktur und Syntax sind in definiert. Struktur und Syntax von Aggregationsabfragen
Zu den Parametern der Analyseregel, die in definiert sindRegel für die Aggregationsanalyse — Steuerelemente abfragen, gehören Abfragesteuerelemente und Steuerelemente für Abfrageergebnisse. Zu den Abfragesteuerelementen gehört die Möglichkeit, zu verlangen, dass eine konfigurierte Tabelle mit mindestens einer konfigurierten Tabelle verknüpft wird, deren Eigentümer das Mitglied ist, das Abfragen entweder direkt oder transitiv durchführen kann. Mit dieser Anforderung können Sie sicherstellen, dass die Abfrage an der Schnittstelle (INNERJOIN) zwischen Ihrer und ihrer Tabelle ausgeführt wird.
Struktur und Syntax von Aggregationsabfragen
Abfragen in Tabellen, für die eine Aggregationsanalyseregel gilt, müssen der folgenden Syntax entsprechen.
--select_aggregate_function_expressionSELECT aggregation_function(column_name) [[AS] column_alias ] [, ...] --select_grouping_column_expression[, {column_name|scalar_function(arguments)} [[AS] column_alias ]][, ...] --table_expressionFROM 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 werden alle in der vorherigen Syntax aufgeführten Ausdrücke erklärt.
| Expression | Definition | Beispiele |
|---|---|---|
|
Eine durch Kommas getrennte Liste mit den folgenden Ausdrücken:
AnmerkungEs muss mindestens einen |
|
|
Eine oder mehrere unterstützte Aggregationsfunktionen, die auf eine oder mehrere Spalten angewendet werden. Nur Spalten sind als Argumente von Aggregationsfunktionen zulässig. AnmerkungEs muss mindestens einen |
|
|
Ein Ausdruck, der einen beliebigen Ausdruck enthalten kann, wobei Folgendes verwendet wird:
Anmerkung
|
|
|
Eine Tabelle oder eine Verknüpfung von Tabellen, mit der bedingte Join-Ausdrücke miteinander verbunden
Die
|
|
|
Ein bedingter Ausdruck, der einen booleschen Wert zurückgibt. Er kann aus Folgendem bestehen:
Unterstützte Vergleichsbedingungen sind ( Unterstützte logische Operatoren sind ( Die |
|
|
Eine durch Kommas getrennte Liste von Ausdrücken, die den Anforderungen für entsprechen. |
|
|
Ein bedingter Ausdruck, der einen booleschen Wert zurückgibt. Sie verfügen über 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 Kommas getrennte Liste von Ausdrücken, die mit den gleichen Anforderungen kompatibel ist, die zuvor definiert 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.
-
TOPLIMIT, und OFFSET Parameter werden nicht unterstützt.
Regel für die Aggregationsanalyse — Steuerelemente abfragen
Mit Steuerelementen für Aggregationsabfragen können Sie steuern, wie die Spalten in Ihrer Tabelle zur Abfrage 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 Steuerelemente erläutert.
Themen
Steuerelemente für die Aggregation
Mithilfe von Aggregationssteuerelementen können Sie definieren, welche Aggregationsfunktionen zulässig sind und auf welche Spalten sie angewendet werden müssen. Aggregationsfunktionen können in den Ausdrücken SELECTHAVING, und verwendet werden. ORDER BY
| Steuerung | Definition | Usage |
|---|---|---|
aggregateColumns |
Spalten konfigurierter Tabellenspalten, die Sie für die Verwendung innerhalb von Aggregationsfunktionen zulassen. |
Einige Given |
function |
Die Funktionen COUNT, SUM und AVG, die Sie zusätzlich zu verwenden zulassenaggregateColumns. |
|
Steuerelemente verbinden
Eine JOIN Klausel wird verwendet, um Zeilen aus zwei oder mehr Tabellen auf der Grundlage einer zugehörigen Spalte miteinander zu kombinieren.
Mithilfe von Join-Steuerelementen können Sie steuern, wie Ihre Tabelle mit anderen Tabellen in der verknüpft werden kanntable_expression. AWS Clean Rooms unterstützt nur INNERJOIN. INNERJOINAnweisungen können nur Spalten verwenden, die joinColumn in Ihrer Analyseregel explizit als a kategorisiert wurden, und zwar vorbehaltlich der von Ihnen definierten Kontrollen.
Sie INNER JOIN müssen mit einer Tabelle joinColumn aus Ihrer konfigurierten Tabelle und mit einer Tabelle joinColumn aus einer anderen konfigurierten Tabelle in der Kollaboration arbeiten. Sie entscheiden, als welche Spalten aus Ihrer Tabelle verwendet werden könnenjoinColumn.
Jede Übereinstimmungsbedingung innerhalb der ON Klausel muss die Gleichheitsvergleichsbedingung (=) zwischen zwei Spalten verwenden.
Es können mehrere Übereinstimmungsbedingungen innerhalb einer ON Klausel sein:
-
Kombiniert mit dem
ANDlogischen Operator -
Mit dem
ORlogischen Operator getrennt
Anmerkung
Alle JOIN Spielbedingungen müssen einer Zeile auf jeder Seite von entsprechenJOIN. Alle Bedingungen, die durch einen OR oder einen AND logischen Operator miteinander verbunden sind, müssen dieser Anforderung ebenfalls entsprechen.
Das Folgende ist 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
Das Folgende ist 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
| Steuerung | Definition | Usage |
|---|---|---|
joinColumns |
Die Spalten (falls vorhanden), die Sie dem Mitglied, das Abfragen durchführen kann, in der INNER JOIN Anweisung verwenden dürfen. |
Ein bestimmtes Dieselbe Spalte kann nicht gleichzeitig als Sofern sie nicht auch als a kategorisiert wurde |
joinRequired |
Steuern Sie von dem Mitglied, das Abfragen durchführen kann, ob Sie eine INNER JOIN mit einer konfigurierten Tabelle benötigen. |
Wenn Sie diesen Parameter aktivieren, INNER JOIN ist ein erforderlich. Wenn Sie diesen Parameter nicht aktivieren, INNER JOIN ist an optional. Angenommen, Sie aktivieren diesen Parameter, muss das Mitglied, das Abfragen durchführen kann, eine Tabelle, deren Eigentümer es ist, in die aufnehmen INNERJOIN. Sie müssen JOIN Ihre Tabelle mit ihrer Tabelle entweder direkt oder transitiv verbinden (d. h. sie verknüpfen ihre Tabelle mit einer anderen Tabelle, die wiederum mit Ihrer Tabelle verknüpft 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 durchführen kann, kann den joinRequired Parameter auch verwenden. In diesem Fall muss die Abfrage ihre Tabelle mit mindestens einer anderen Tabelle verknüpfen.
Steuerelemente für Dimensionen
Dimensionssteuerelemente steuern die Spalte, anhand derer die Aggregationsspalten gefiltert, gruppiert oder aggregiert werden können.
| Steuerung | Definition | Usage |
|---|---|---|
dimensionColumns |
Die Spalten (falls vorhanden), die Sie dem Mitglied, das Abfragen durchführen kannSELECT, in, WHERE GROUPBY, und verwenden dürfen. ORDER BY |
A Dieselbe Spalte kann nicht gleichzeitig a |
Skalarfunktionen
Skalarfunktionen steuern, welche Skalarfunktionen für Dimensionsspalten verwendet werden können.
| Steuerung | Definition | Usage |
|---|---|---|
scalarFunctions |
Die Skalarfunktionen, die |
Gibt die Skalarfunktionen (falls vorhanden) an, auf die Sie (z. B.CAST) zulassen. Skalarfunktionen können nicht zusätzlich zu anderen Funktionen oder innerhalb anderer Funktionen verwendet werden. Argumente von Skalarfunktionen können Spalten, Zeichenkettenliterale oder numerische Literale sein. |
Die folgenden Skalarfunktionen werden unterstützt:
-
Mathematische Funktionen — ABS, CEILING, FLOOR, LOG, LN, ROUND, SQRT
-
Funktionen zur Formatierung von Datentypen — CAST, CONVERT, TO_CHAR, TO_DATE, TO_NUMBER, TO_TIMESTAMP
-
Zeichenkettenfunktionen — 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 für die Aggregationsanalyse — Steuerelemente für Abfrageergebnisse
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 wird. AWS Clean Rooms unterstützt Aggregationseinschränkungen in der Form von. COUNT (DISTINCT column) >=
X Dieses Formular erfordert, dass jede Zeile mindestens X verschiedene Werte einer Auswahl aus Ihrer konfigurierten Tabelle aggregiert (z. B. eine Mindestanzahl von unterschiedlichen user_id Werten). Dieser Mindestschwellenwert wird automatisch durchgesetzt, auch wenn die übermittelte Abfrage selbst die angegebene Spalte nicht verwendet. Sie werden gemeinsam für jede konfigurierte Tabelle in der Abfrage anhand der konfigurierten Tabellen aller Mitglieder der Kollaboration durchgesetzt.
Jede konfigurierte Tabelle muss mindestens eine Aggregationsbeschränkung in ihrer Analyseregel enthalten. Besitzer konfigurierter Tabellen können mehrere columnName und zugeordnete Tabellen hinzufügen, minimum und sie werden gemeinsam durchgesetzt.
Einschränkungen bei der Aggregation
Aggregationseinschränkungen steuern, welche Zeilen in den Abfrageergebnissen zurückgegeben werden. Um zurückgegeben zu werden, muss eine Zeile die angegebene Mindestanzahl an unterschiedlichen Werten in jeder Spalte erfüllen, die in der Aggregationsbeschränkung angegeben ist. Diese Anforderung gilt auch dann, wenn die Spalte in der Abfrage oder in anderen Teilen der Analyseregel nicht ausdrücklich erwähnt wird.
| Steuerung | Definition | Usage |
|---|---|---|
columnName |
Die |
Es kann sich um eine beliebige Spalte in der konfigurierten Tabelle handeln. |
minimum |
Die Mindestanzahl an eindeutigen Werten für die Verknüpfung |
Das |
Struktur der Regeln für die Aggregationsanalyse
Das folgende Beispiel zeigt eine vordefinierte Struktur für eine Aggregationsanalyseregel.
Bezieht sich im folgenden Beispiel auf Ihre Datentabelle. Sie können jede Information MyTableuser input placeholder 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] }, ] }
Regel für die Aggregationsanalyse — Beispiel
Das folgende Beispiel zeigt, wie zwei Unternehmen AWS Clean Rooms mithilfe der Aggregationsanalyse zusammenarbeiten können.
Unternehmen A verfügt über Kunden- und Vertriebsdaten. Unternehmen A ist daran interessiert, die Aktivitäten zur Produktrückgabe zu verstehen. Unternehmen B ist einer der Einzelhändler von Unternehmen A und verfügt über Rückgabedaten. Unternehmen B verfügt auch über Segmentattribute für Kunden, die für Unternehmen A nützlich sind (z. B. ähnliche Produkte gekauft, den Kundendienst des Einzelhändlers in Anspruch genommen). 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 über sich überschneidende Kunden bei einem Mindestaggregationsschwellenwert zu erhalten.
Unternehmen A und Unternehmen B beschließen, zusammenzuarbeiten, damit Unternehmen A die Produktrückgabeaktivitäten nachvollziehen und bessere Produkte für Unternehmen B und andere Vertriebskanäle liefern kann.
Um die Zusammenarbeit aufzubauen und eine Aggregationsanalyse durchzuführen, gehen die Unternehmen wie folgt vor:
-
Unternehmen A erstellt eine Kollaboration und erstellt eine Mitgliedschaft. Die Kollaboration hat Firma B als weiteres Mitglied der Kollaboration. Unternehmen A aktiviert die Abfrageprotokollierung in der Kollaboration und aktiviert die Abfrageprotokollierung in ihrem Konto.
-
Unternehmen B erstellt eine Mitgliedschaft in der Kollaboration. Es aktiviert die Abfrageprotokollierung in seinem Konto.
-
Firma A erstellt eine für den Vertrieb konfigurierte Tabelle.
-
Unternehmen A fügt der konfigurierten Tabelle für Verkäufe die folgende Aggregationsanalyseregel hinzu.
{ "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 einzelnen Kunden in der Überschneidung zwischen Verkaufsdaten und Retourendaten zählen. Unternehmen A möchte auch die Anzahl derpurchaseshergestellten Produkte summieren, um sie mit der Anzahl von zu vergleichenreturns.joinColumns— Unternehmen Aidentifiermöchte damit Kunden aus Verkaufsdaten mit Kunden aus Retourendaten abgleichen. Dies hilft Unternehmen A dabei, Retouren den richtigen Käufen zuzuordnen. Es hilft Unternehmen A auch dabei, Kunden zu segmentieren, die sich überschneiden.dimensionColumns— Unternehmen A filtertdimensionColumnsnach einem bestimmten Produkt, vergleicht Käufe und Rücksendungen über einen bestimmten Zeitraum, stellt sicher, dass das Rückgabedatum nach dem Produktdatum liegt, und hilft dabei, sich überschneidende Kunden zu segmentieren.scalarFunctions— Unternehmen A wählt dieCASTSkalarfunktion aus, um Datentypformate bei Bedarf auf der Grundlage der konfigurierten Tabelle, die Unternehmen A der Zusammenarbeit zuordnet, zu aktualisieren. Außerdem werden Skalarfunktionen hinzugefügt, um bei Bedarf die Formatierung von Spalten zu erleichtern.outputConstraints— Unternehmen A legt Mindestbeschränkungen für die Produktion fest. Die Ergebnisse müssen nicht eingeschränkt werden, da der Analyst Daten auf Zeilenebene aus seiner Verkaufstabelle einsehen kannAnmerkung
Unternehmen A nimmt in der Analyseregel nichts
joinRequiredauf. Es bietet ihren Analysten die Flexibilität, nur die Verkaufstabelle abzufragen. -
Firma B erstellt eine konfigurierte Tabelle für Renditen.
-
Unternehmen B fügt der konfigurierten Tabelle für Rücksendungen 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, eine Summe zu erstellenreturns, um sie mit der Anzahl der Käufe zu vergleichen. Sie haben mindestens eine Aggregatspalte, da sie eine Aggregatabfrage ermöglichen.joinColumns— Unternehmen B ermöglicht es Unternehmen A, sich zusammenzutunidentifier, um Kunden anhand von Rückgabedaten mit Kunden aus Verkaufsdaten abzugleichen.identifierDaten sind besonders sensibel, und wenn sie als A verwendet werden, wirdjoinColumnsichergestellt, dass die Daten niemals in einer Abfrage ausgegeben werden.joinRequired— Unternehmen B verlangt, dass sich Abfragen zu den Rückgabedaten mit den Verkaufsdaten überschneiden. Sie möchten es Unternehmen A nicht ermöglichen, alle Personen in ihrem Datensatz abzufragen. Sie haben sich auch in ihrer Kooperationsvereinbarung auf diese Einschränkung geeinigt.dimensionColumns— Unternehmen B ermöglicht es Unternehmen A, nachstatepopularpurchases, und eindeutigen Attributen zu filtern und zu gruppieren,customerserviceuserdie bei der Analyse für Unternehmen A hilfreich sein könnten. Unternehmen B ermöglicht es Unternehmen A, die Ausgabereturndatedanachreturndatezu filternpurchasedate. Mit dieser Filterung ist die Ausgabe genauer, was die Bewertung der Auswirkungen der Produktänderung ermöglicht.scalarFunctions— Unternehmen B ermöglicht Folgendes:-
TRUNC für Daten
-
LOWER und UPPER, falls
producttypedie in ihren Daten in einem anderen Format eingegeben wurden -
CASTwenn Unternehmen A die Datentypen im Vertrieb so konvertieren muss, dass sie den Datentypen in Rücksendungen entsprechen
Unternehmen A aktiviert keine anderen Skalarfunktionen, da sie nicht der Meinung sind, dass sie für Abfragen erforderlich sind.
outputConstraints— Unternehmen B legt Mindestbeschränkungen für die Produktion festhashedemail, um die Möglichkeit zu verringern, Kunden neu zu identifizieren. Außerdem werden Mindestbeschränkungen für die Produktion eingeführtproducttype, um die Möglichkeit zu verringern, bestimmte Produkte, die zurückgegeben wurden, erneut zu identifizieren. Bestimmte Produkttypen könnten aufgrund der Größe der Produktion dominanter sein (z. B.state). Ihre Produktionsbeschränkungen werden immer durchgesetzt, unabhängig von den Produktionsbeschränkungen, die Unternehmen A ihren Daten hinzugefügt hat. -
-
Firma A erstellt eine Verkaufstabelle, die der Zusammenarbeit zugeordnet ist.
-
Firma B erstellt eine Verknüpfung der Tabelle mit Rücksendungen zur Zusammenarbeit.
-
Unternehmen A führt Abfragen wie das folgende Beispiel durch, um besser zu verstehen, wie viele Retouren in Unternehmen B im Vergleich zu den Gesamteinkäufen pro Standort im Jahr 2022 getätigt wurden.
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 die Abfrageprotokolle. Unternehmen B überprüft, ob die Anfrage mit dem übereinstimmt, was in der Kooperationsvereinbarung vereinbart wurde.
Behebung von Problemen mit Regeln für die Aggregationsanalyse
Verwenden Sie die Informationen hier, um häufig auftretende Probleme bei der Arbeit mit Aggregationsanalyseregeln zu diagnostizieren und zu beheben.
Problembereiche
Meine Abfrage lieferte keine Ergebnisse
Dies kann passieren, wenn es keine passenden Ergebnisse gibt oder wenn die übereinstimmenden Ergebnisse einen oder mehrere Mindestaggregationsschwellenwerte nicht erreichen.
Weitere Informationen zu Mindestschwellenwerten für die Aggregation finden Sie unter. Regel für die Aggregationsanalyse — Beispiel