View a markdown version of this page

Benutzerdefinierte Analyseregel in AWS Clean Rooms - AWS Clean Rooms

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.

Benutzerdefinierte Analyseregel in AWS Clean Rooms

In AWS Clean Rooms ist eine benutzerdefinierte Analyseregel eine neue Art von Analyseregel, mit der benutzerdefinierte Abfragen für die konfigurierte Tabelle ausgeführt werden können. Benutzerdefinierte SQL-Abfragen sind weiterhin darauf beschränkt, nur den SELECT Befehl zu verwenden, können jedoch mehr SQL-Konstrukte als Aggregations - und Struktur und Syntax von Abfragen auflisten Listenabfragen verwenden (z. B. Fensterfunktionen, OUTER JOIN, CTEs oder Unterabfragen; eine vollständige Liste finden Sie in der AWS Clean Rooms SQL-Referenz). Benutzerdefinierte SQL-Abfragen müssen keiner Abfragestruktur wie Struktur und Syntax von Aggregationsabfragen Aggregations- und Listenabfragen folgen. Struktur und Syntax von Abfragen auflisten

Die benutzerdefinierte Analyseregel unterstützt komplexere Anwendungsfälle als die, die von der Regel zur Aggregation und Listenanalyse unterstützt werden können, wie z. B. benutzerdefinierte Attributionsanalysen, Benchmarking, Inkrementalitätsanalysen und Zielgruppenermittlung. Dies gilt zusätzlich zu einer Obermenge der Anwendungsfälle, die von der Aggregations- und Listenanalyseregel unterstützt werden.

Die benutzerdefinierte Analyseregel unterstützt auch differenzierten Datenschutz. Differentieller Datenschutz ist ein mathematisch strenger Rahmen für den Datenschutz. Weitere Informationen finden Sie unter AWS Clean Rooms Differenzierter Datenschutz. Wenn Sie eine Analysevorlage erstellen, überprüft AWS Clean Rooms Differential Privacy die Vorlage, um festzustellen, ob sie mit der allgemeinen Abfragestruktur für Differential Privacy kompatibel ist. AWS Clean Rooms Diese Überprüfung stellt sicher, dass Sie keine Analysevorlage erstellen, die mit einer Tabelle, die durch Differential Privacy geschützt ist, nicht zulässig ist.

Um die benutzerdefinierte Analyseregel zu konfigurieren, können Datenbesitzer festlegen, dass bestimmte benutzerdefinierte Abfragen, die in Analysevorlagen gespeichert sind, auf ihren konfigurierten Tabellen ausgeführt werden. Datenbesitzer überprüfen die Analysevorlagen, bevor sie sie der zulässigen Analysesteuerung in der benutzerdefinierten Analyseregel hinzufügen. Analysevorlagen sind nur in der Kollaboration verfügbar und sichtbar, in der sie erstellt wurden (auch wenn die Tabelle anderen Kollaborationen zugeordnet ist). Sie können nur von dem Mitglied ausgeführt werden, das Abfragen in dieser Kollaboration durchführen kann.

Alternativ können sich Mitglieder dafür entscheiden, anderen Mitgliedern (Abfrageanbietern) zu gestatten, Abfragen ohne Überprüfung zu erstellen. Mitglieder fügen in der benutzerdefinierten Analyseregel Konten von Abfrageanbietern hinzu, die von den zulässigen Abfrageanbietern kontrolliert werden. Wenn der Abfrageanbieter das Mitglied ist, das Abfragen durchführen kann, können sie jede Abfrage direkt in der konfigurierten Tabelle ausführen. Abfrageanbieter könnten Abfragen auch erstellen, indem sie Analysevorlagen erstellen. Alle Abfragen, die von den Abfrageanbietern erstellt wurden, dürfen in allen Kollaborationen, in denen die Tabelle vorhanden AWS-Konto ist und die Tabelle verknüpft ist, automatisch auf der Tabelle ausgeführt werden.

Diese Seite enthält die folgenden Abschnitte:

Die benutzerdefinierte Analyseregel unterstützt die folgenden datenschutzfreundlichen Steuerelemente:

Regelstruktur für benutzerdefinierte Analysen

Die folgende vordefinierte Struktur zeigt die verfügbaren Steuerelemente in einer benutzerdefinierten Analyseregel. Schließen Sie nur die Steuerelemente ein, die Sie für Ihren Anwendungsfall benötigen. Der userIdentifier Wert im differentialPrivacy Steuerelement ist die Spalte, die Ihre Benutzer eindeutig identifiziert, z. B. user_id. Wenn Sie in einer Kollaboration zwei oder mehr Tabellen mit aktiviertem differentiellem Datenschutz haben, AWS Clean Rooms müssen Sie in beiden Analyseregeln dieselbe Spalte wie die Benutzer-ID-Spalte konfigurieren. Dadurch bleibt eine konsistente Definition der Benutzer in allen Tabellen erhalten.

{ "allowedAnalyses": ["ANY_QUERY"] | string[], "allowedAnalysisProviders": [], "disallowedOutputColumns": [], "aggregationThresholds": [ { "identityColumns": [], "minimumIdentityCount": number, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY" | "ANY_EXPRESSION", "outputColumnThresholds": [ { "outputColumnName": string, "minimumIdentityCount": number } ] } ], "comparisonControls": { "allowedLiteralComparisonColumns": [], "allowedColumnComparisonColumns": [] }, "differentialPrivacy": { "columns": [ { "name": "userIdentifier" } ] } }

Führen Sie dazu einen der folgenden Schritte aus:

  • Fügen Sie ARNs für Analysevorlagen zur Steuerung zulässiger Analysen hinzu. In diesem Fall ist das allowedAnalysisProviders Steuerelement nicht enthalten.

    { allowedAnalyses: string[] }
  • Fügen Sie AWS-Konto Mitglieds-IDs zum allowedAnalysisProviders Steuerelement hinzu. In diesem Fall fügen Sie dem allowedAnalyses Steuerelement etwas ANY_QUERY hinzu.

    { allowedAnalyses: ["ANY_QUERY"], allowedAnalysisProviders: string[] }

Sie können auch jedes der folgenden Steuerelemente konfigurieren:

  • Die Spalten, die Sie nicht in das Abfrageergebnis projizieren lassen. Weitere Informationen finden Sie unter Unzulässige Ausgabespalten.

    { disallowedOutputColumns: string[] }
  • Ein minimaler Aggregationsschwellenwert, bei dem jede Ergebniszeile mindestens eine Mindestanzahl unterschiedlicher Datensubjekte repräsentieren muss. Sie können den Schwellenwert für einzelne Ausgabespalten überschreiben und allowedAggregateExpressionType steuernoutputColumnThresholds, ob Ausdrücke innerhalb von Aggregatfunktionen zulässig sind. Weitere Informationen finden Sie unter Minimale Schwellenwerte für die Aggregation, Überschreiben des minimalen Aggregationsschwellenwerts für bestimmte Ausgabespalten und Verschachtelte Ausdrücke in Aggregatfunktionen zulassen.

    { aggregationThresholds: [ { identityColumns: string[], minimumIdentityCount: number, type: "COUNT_DISTINCT", allowedAggregateExpressionType: "COLUMNS_ONLY" | "ANY_EXPRESSION", outputColumnThresholds: [ { outputColumnName: string, minimumIdentityCount: number } ] } ] }
  • Vergleichssteuerelemente, die definieren, welche Spalten mit einem Literalwert und welche mit einer anderen Spalte verglichen werden können. Weitere Informationen finden Sie unter Steuerelemente für den Vergleich.

    { comparisonControls: { allowedLiteralComparisonColumns: string[], allowedColumnComparisonColumns: string[] } }
  • Eine differenzielle Datenschutzkonfiguration, die die Tabelle schützt, indem sie die Benutzer-ID-Spalte identifiziert. Weitere Informationen finden Sie unter AWS Clean Rooms Differential Privacy.

    { differentialPrivacy: { columns: [ { name: string } ] } }

Die Konfiguration von minimalen Aggregationsschwellenwerten zusammen mit Vergleichskontrollen ist die empfohlene Konfiguration. Ein Schwellenwert allein sorgt immer noch dafür, dass Spalten mit niedriger Kardinalität oder quasi identifizierenden Spalten vergleichbar sind, was die Ergebnisse auf ungewollte Weise einschränken kann.

Es lohnt sich, Vergleichskontrollen zu konfigurieren, wenn Ihre Tabelle Spalten mit niedriger Kardinalität oder quasi identifizierende Spalten enthält — wie beispielsweise eine Postleitzahl oder eine Altersgruppe — oder wenn dem Abfragerunner nicht vollständig vertraut wird. Ein funktionierendes Beispiel, das zeigt, wie beide Steuerelemente zusammen konfiguriert sind, finden Sie unter. Beispiel für eine benutzerdefinierte Analyseregel mit minimalen Aggregationsschwellenwerten und Vergleichskontrollen

Beispiel für eine benutzerdefinierte Analyseregel mit Analysevorlagen

Das folgende Beispiel zeigt, wie zwei Unternehmen bei der AWS Clean Rooms Verwendung der benutzerdefinierten Analyseregel zusammenarbeiten können.

Unternehmen A verfügt über Kunden- und Vertriebsdaten. Unternehmen A ist daran interessiert, die Umsatzsteigerung einer Werbekampagne auf der Website von Unternehmen B zu verstehen. Unternehmen B verfügt über Zuschauerdaten und Segmentattribute, die für Unternehmen nützlich sind (z. B. das Gerät, mit dem das Unternehmen die Werbung angesehen hat).

Unternehmen A hat eine spezielle Inkrementalitätsabfrage, die es im Rahmen der Zusammenarbeit ausführen möchte.

Um eine Kollaboration zu erstellen und gemeinsam eine benutzerdefinierte Analyse durchzuführen, gehen die Unternehmen wie folgt vor:

  1. Unternehmen A erstellt eine Kollaboration und erstellt eine Mitgliedschaft. Die Kollaboration hat Unternehmen B als weiteres Mitglied der Kollaboration. Unternehmen A aktiviert die Abfrageprotokollierung in der Kollaboration und aktiviert die Abfrageprotokollierung in seinem Konto.

  2. Unternehmen B erstellt eine Mitgliedschaft in der Kollaboration. Es ermöglicht die Protokollierung von Abfragen in seinem Konto.

  3. Unternehmen A erstellt eine CRM-konfigurierte Tabelle

  4. Unternehmen A fügt der für den Vertrieb konfigurierten Tabelle eine leere benutzerdefinierte Analyseregel hinzu.

  5. Unternehmen A ordnet der Kollaboration eine für den Umsatz konfigurierte Tabelle zu.

  6. Unternehmen B erstellt eine für die Zuschauerzahl konfigurierte Tabelle.

  7. Unternehmen B fügt der für die Zuschauerzahl konfigurierten Tabelle eine leere benutzerdefinierte Analyseregel hinzu.

  8. Unternehmen B ordnet der Kollaboration eine Tabelle mit der konfigurierten Zuschauerzahl zu.

  9. Unternehmen A betrachtet die Verkaufstabelle und die Zuschauerzahltabelle, die der Zusammenarbeit zugeordnet sind, und erstellt eine Analysevorlage, in der die Inkrementalitätsabfrage und der Parameter für den Kampagnenmonat hinzugefügt werden.

    { "analysisParameters": [ { "defaultValue": "" "type": "DATE" "name": "campaign_month" } ], "description": "Monthly incrementality query using sales and viewership data" "format": "SQL" "name": "Incrementality analysis" "source": "WITH labeleddata AS ( SELECT hashedemail, deviceid, purchases, unitprice, purchasedate, CASE WHEN testvalue IN ('value1', 'value2', 'value3') THEN 0 ELSE 1 END AS testgroup FROM viewershipdata ) SELECT labeleddata.purchases, provider.impressions FROM labeleddata INNER JOIN salesdata ON labeleddata.hashedemail = provider.hashedemail WHERE MONTH(labeleddata.purchasedate) > :campaignmonth AND testgroup = :group " }
  10. Unternehmen A fügt sein Konto (z. B. 444455556666) zum Steuerelement für zulässige Analyseanbieter in der benutzerdefinierten Analyseregel hinzu. Sie verwenden das Steuerelement „Zulässige Analyseanbieter“, weil sie zulassen möchten, dass alle Abfragen, die sie erstellen, in ihrer für den Umsatz konfigurierten Tabelle ausgeführt werden.

    { "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }
  11. Unternehmen B sieht die in der Kollaboration erstellte Analysevorlage und überprüft deren Inhalt, einschließlich der Abfragezeichenfolge und des Parameters.

  12. Unternehmen B stellt fest, dass die Analysevorlage den Anwendungsfall „Inkrementalität“ erfüllt und die Datenschutzanforderungen für die Art und Weise, wie die für die Zuschauerzahl konfigurierte Tabelle abgefragt werden kann, erfüllt.

  13. Unternehmen B fügt den ARN der Analysevorlage zur zulässigen Analysesteuerung in der benutzerdefinierten Analyseregel der Zuschauerzahltabelle hinzu. Sie verwenden die zulässige Analysesteuerung, weil sie nur zulassen möchten, dass die Inkrementalitätsabfrage in ihrer für die Zuschauerzahl konfigurierten Tabelle ausgeführt wird.

    { "allowedAnalyses": [ "arn:aws:cleanrooms:us-east-1:111122223333:membership/41327cc4-bbf0-43f1-b70c-a160dddceb08/analysistemplate/1ff1bf9d-781c-418d-a6ac-2b80c09d6292" ] }
  14. Unternehmen A führt die Analysevorlage aus und verwendet den Parameterwert. 05-01-2023

Beispiel für eine benutzerdefinierte Analyseregel mit minimalen Aggregationsschwellenwerten

Das folgende Beispiel zeigt, wie zwei Unternehmen zusammenarbeiten können, um die benutzerdefinierte Analyseregel mit minimalen Aggregationsschwellenwerten zu AWS Clean Rooms verwenden, anstatt einzelne Analysevorlagen zu überprüfen.

Unternehmen A ist ein Herausgeber mit einer impressions Tabelleuser_id, diecampaign_id, und enthält. event_date Unternehmen B ist ein Werbetreibender, der die Reichweite seiner Kampagne messen möchte — die Anzahl der einzelnen Nutzer, die eine bestimmte Kampagne gesehen haben. Unternehmen A möchte sicherstellen, dass aus keinem Abfrageergebnis Einzelpersonen oder kleine Gruppen hervorgehen. Daher verwendet es Mindestwerte für die Aggregation, anstatt einzelne Analysevorlagen zu überprüfen.

Um eine Zusammenarbeit zu erstellen und eine benutzerdefinierte Analyse durchzuführen, gehen die Unternehmen wie folgt vor:

  1. Unternehmen A erstellt eine Kollaboration mit Unternehmen B als einem weiteren Mitglied und als dem Mitglied, das Abfragen durchführen kann. Unternehmen A aktiviert die Protokollierung von Abfragen in der Kollaboration und in ihrem Konto.

  2. Unternehmen B erstellt eine Mitgliedschaft in der Kollaboration und aktiviert die Abfrageprotokollierung in seinem Konto.

  3. Unternehmen A erstellt eine impressions konfigurierte Tabelle.

  4. Unternehmen A fügt der impressions konfigurierten Tabelle eine benutzerdefinierte Analyseregel mit einem minimalen Aggregationsschwellenwert hinzu, sodass jede zurückgegebene Zeile mindestens 100 verschiedene Benutzer repräsentiert. Unternehmen A legt den Wert user_id als Identitätsspalte fest und überschreibt den Schwellenwert für die Ausgabespalte mit niedrigerer Sensitivität campaign_id auf 5. Unternehmen A ermöglicht auch einen wörtlichen Vergleich mit campaign_id und, event_date sodass Unternehmen B eine Abfrage auf eine Kampagne und einen Datumsbereich eingrenzen kann. Jede Spalte, die bei einem literalen Vergleich erscheint, muss in der Zulassungsliste enthalten sein. Schließlich fügt Unternehmen A das Konto von Unternehmen B der Kontrolle über die zulässigen Analyseanbieter hinzu, sodass Unternehmen B Abfragen ausführen kann, ohne dass eine Überprüfung pro Vorlage erforderlich ist.

    { "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY", "outputColumnThresholds": [ { "outputColumnName": "campaign_id", "minimumIdentityCount": 5 } ] } ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "campaign_id", "event_date" ] }, "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }
  5. Unternehmen A ordnet die impressions konfigurierte Tabelle der Kollaboration zu.

  6. Unternehmen B führt eine Reichweitenabfrage durch, die nach einer Kampagne gruppiert event_date und nach dieser gefiltert ist:

    SELECT event_date, COUNT(DISTINCT user_id) AS reach FROM impressions WHERE event_date >= '2026-01-01' AND campaign_id = 'Holiday Promotion' GROUP BY event_date;
  7. AWS Clean Rooms gibt nur die Zeilen zurück, die von mindestens 100 verschiedenen Benutzern unterstützt werden, und unterdrückt den Rest, sodass Unternehmen B die tägliche Reichweite der Weihnachtsaktion erfährt, ohne etwas über eine Einzelperson oder eine kleine Gruppe zu erfahren.

    event_date reach
    01.01.2026/ 142
    02.01.2020 118
    04.01.2020 103

    Das Datum erscheint 2026-01-03 nicht in den Ergebnissen, da weniger als 100 verschiedene Nutzer die Kampagne an diesem Tag gesehen haben und daher diese Zeile AWS Clean Rooms ausgeblendet haben.

Der wesentliche Unterschied zum Ansatz mit Analysevorlagen besteht darin, dass Unternehmen A eine bestimmte Anfrage nie überprüft hat. Stattdessen stützt sich Unternehmen A auf den Schwellenwert, um einzuschränken, was eine Abfrage zurückgeben kann. Weitere Informationen erhalten Sie unter Minimale Schwellenwerte für die Aggregation und Steuerelemente für den Vergleich.

Beispiel für eine benutzerdefinierte Analyseregel mit minimalen Aggregationsschwellenwerten und Vergleichskontrollen

Die empfohlene Basiskonfiguration ist die Konfiguration von minimalen Aggregationsschwellenwerten zusammen mit Vergleichskontrollen. Ein Schwellenwert allein stellt sicher, dass jede Ergebniszeile eine Mindestanzahl unterschiedlicher Datensubjekte repräsentiert, verhindert jedoch nicht, dass Vergleiche anhand von Spalten mit niedriger Kardinalität oder quasi identifizierenden Spalten durchgeführt werden. Ohne Vergleichskontrollen kann ein Abfragerunner diese Spalten immer noch filtern oder nach ihnen verknüpfen, wodurch die Ergebnisse möglicherweise auf unbeabsichtigte Weise eingeschränkt werden.

Es lohnt sich, Vergleichskontrollen zu konfigurieren, wenn Ihre Tabelle Spalten mit niedriger Kardinalität oder quasi identifizierende Spalten enthält — wie beispielsweise eine Postleitzahl oder eine Altersgruppe — oder wenn dem Abfrage-Runner nicht vollständig vertraut wird. Das Hinzufügen von Vergleichskontrollen schränkt ein, welche Spalten bei literalen Vergleichen und Vergleichen von Spalte zu Spalte vorkommen können. Dadurch wird die Lücke geschlossen, die allein ein Schwellenwert offen lässt.

Die folgende Konfiguration kombiniert beide Steuerelemente:

{ "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY" } ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "campaign_id" ], "allowedColumnComparisonColumns": [ "user_id" ] }, "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666" ] }

Bei dieser Konfiguration steht jede Ergebniszeile für mindestens 100 verschiedene Datensubjekte. Der Abfragerunner kann campaign_id mithilfe von Literalvergleichen filtern und user_id mithilfe von Spalte-zu-Spalten-Vergleichen verknüpfen. Da die zulässigen Vergleichslisten festgelegt sind, können alle nicht aufgelisteten Spalten — einschließlich Spalten mit niedriger Kardinalität wie Postleitzahl oder Altersgruppe — überhaupt nicht in einem Vergleich verwendet werden.

Weitere Informationen zu den einzelnen Steuerelementen finden Sie unter und. Minimale Schwellenwerte für die Aggregation Steuerelemente für den Vergleich Eine umfassendere Konfiguration, die auch unzulässige Ausgabespalten enthält, finden Sie unter. Zusammenführung

Zusammenführung

Das folgende Beispiel zeigt eine vollständige Konfiguration des benutzerdefinierten Analyseregeltyps mit unzulässigen Ausgabespalten, minimalen Aggregationsschwellenwerten und Vergleichskontrollen. Diese Konfiguration erzwingt eine Mindestaggregation von 100 verschiedenen Datensubjekten, user_id verhindert, dass sie in das Abfrageergebnis projiziert wird, und ermöglicht es dem Abfragerunner, die Schnittmenge der Kunden zu analysieren, die in der Spalte beitreten. user_id

Diese Richtlinie bietet auch zusätzliche Flexibilität, da sie eine literale Vergleichsfilterung für Spalten mit niedriger Sensitivität ermöglicht status und price den minimalen Aggregationsschwellenwert für die Spalte auf 5 überschreibt: campaign_id

{ "disallowedOutputColumns": [ "user_id" ], "comparisonControls": { "allowedLiteralComparisonColumns": [ "status", "price" ], "allowedColumnComparisonColumns": [ "user_id" ] }, "aggregationThresholds": [ { "identityColumns": [ "user_id" ], "minimumIdentityCount": 100, "type": "COUNT_DISTINCT", "allowedAggregateExpressionType": "COLUMNS_ONLY", "outputColumnThresholds": [ { "outputColumnName": "campaign_id", "minimumIdentityCount": 5 } ] } ], "allowedAnalyses": [ "ANY_QUERY" ], "allowedAnalysisProviders": [ "444455556666", "333366669999" ] }