Richtlinien für Clean Room-Tabellen¶
Clean Rooms bieten einige Datenrichtlinien, um zu kontrollieren, wie Daten von Teilnehmern verwendet werden können. Diese Richtlinien gelten zusätzlich zu den Snowflake-Tabellenrichtlinien, die für die mit dem Clean Room verknüpften zugrunde liegenden Tabellen festgelegt wurden. Alle Änderungen an den Richtlinien in den zugrunde liegenden Tabellen werden an die verknüpften Ansichten im Clean Room weitergegeben, ohne dass Sie create_or_update_cleanroom_listing
aufrufen oder die Quelltabellen neu verknüpfen müssen.
Jeder Teilnehmer in einem Clean Room legt seine eigenen Richtlinien für seine eigenen Daten fest.
Bemerkung
Wenn Sie Tabellen in einem Clean Room verknüpfen, werden die Snowflake-Tabellenrichtlinien für die Quelltabellen in den verknüpften Tabellen im Clean Room durchgesetzt, aber diese Richtlinien werden nicht unbedingt von der Clean Room API oder UI gemeldet. So wird beispielsweise eine Snowflake-Verknüpfungsrichtlinie weiterhin im Clean Room durchgesetzt, aber diese Verknüpfungsrichtlinie ist durch den Aufruf von consumer.view_provider_join_policy
oder consumer.view_join_policy
nicht sichtbar. Daher sollten Sie entweder Richtlinien aus den zugrunde liegenden verknüpften Tabellen entfernen, äquivalente Clean Room-Richtlinien erstellen (wenn es sie gibt) oder die Existenz dieser Richtlinien Ihren Teilnehmern klar mitteilen, damit ihre Abfragen nicht fehlschlagen oder sich unerwartet verhalten („Warum kann ich nicht über diese Spalte verknüpfen?“).
Clean Room-Richtlinien können über die Clean Room API oder UI festgelegt werden.
Snowflake-Datenschutzrichtlinien verhindern die Erstellung einer Ansicht aus einer geschützten Tabelle, sodass Sie keine Tabellen mit Datenschutzrichtlinien verknüpfen können.
Clean Rooms machen die folgenden Richtlinien verfügbar:
Clean Room-Richtlinie |
Beschreibung |
Äquivalente Snowflake-Richtlinie |
---|---|---|
Legen Sie fest, welche Ihrer Spalten verknüpft werden können. |
||
Legen Sie fest, welche Ihrer Spalten projiziert werden können. |
||
Legen Sie fest, welche Ihrer Spalten aus dem Clean Room exportiert werden können. |
Keine äquivalente Snowflake-Richtlinie. |
|
Berücksichtigt Snowflake-Aggregationsrichtlinien |
Erfordern Sie, dass Zeilen in Abfragen aggregiert werden, und eine Mindestanzahl von Zeilen pro Gruppe. |
Verknüpfungsrichtlinien¶
Eine Clean Room-Verknüpfungsrichtlinie legt fest, welche Spalten in Ihren Tabellen über jede Vorlage im Clean Room verknüpft werden können. Verknüpfungsrichtlinien werden auf der Ebene des Clean Room festgelegt.
Spalten der Verknüpfungsrichtlinie können nicht projiziert werden (eine Spalte kann nicht sowohl in einer Clean Room-Verknüpfungsrichtlinie als auch in einer Spaltenrichtlinie enthalten sein). Wenn Sie möchten, dass eine Verknüpfungsspalte projizierbar ist, legen Sie die Verknüpfungsrichtlinien außerhalb des Clean Room und die Projektionsrichtlinien im Clean Room fest (oder umgekehrt).
Spalten der Verknüpfungsrichtlinie können auch Spalten der Aktivierungsrichtlinie sein.
Clean Room-Verknüpfungsrichtlinien sind nicht dasselbe wie Snowflake-Verknüpfungsrichtlinien, die angeben, welche Spalten verbunden werden müssen.
Wenn Sie keine Verknüpfungsrichtlinie für Ihre Daten angeben, können alle Spalten verknüpft (und auch projiziert) werden.
Implementierung einer Verknüpfungsrichtlinie¶
Clean Room-Verknüpfungsrichtlinien werden für eine Spalte nur dann durchgesetzt, wenn die Vorlage den Filter join_policy
oder join_and_column_policy
verwendet. Sie können eine Vorlage untersuchen, um zu sehen, wo Verknüpfungsrichtlinien durchgesetzt werden, indem Sie die Vorlagendefinition anzeigen und das Vorhandensein dieses Filters in einer Syntax wie dieser bestätigen:
{{ my_column | join_policy }}
Snowflake-Verknüpfungsrichtlinien für die zugrunde liegenden Tabellen werden unabhängig davon durchgesetzt, ob die Vorlage einen join_policy
-Filter für die Spalte enthält oder nicht.
Der folgende Code zeigt, wie Sie zulassen, dass zwei Spalten aus zwei verschiedenen Tabellen miteinander verknüpft werden können. Diese Richtlinie betrifft alle Benutzer und alle Vorlagen in diesem Clean Room. Es gibt gleichwertige Prozeduren für Anbieter und Verbraucher in einem Clean Room; rufen Sie die Prozedur auf, die Ihrer Rolle im Clean Room entspricht. Sie können die Verknüpfungsrichtlinie jederzeit festlegen, nachdem Ihre Daten mit einem Clean Room verknüpft worden sind.
-- Set join policies on a clean room where you are a provider
CALL samooha_by_snowflake_local_db.provider.set_join_policy('my_provider_cleanroom',
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
-- Set join policies on a clean room where you are a consumer
CALL samooha_by_snowflake_local_db.consumer.set_join_policy('my_consumer_cleanroom',
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
set_join_policy
ersetzt die vorherige Verknüpfungsrichtlinie durch die neue Verknüpfungsrichtlinie.
Mit den folgenden Prozeduren können Sie Verknüpfungsrichtlinien im Code anzeigen oder verwalten:
consumer.set_join_policy
consumer.view_provider_join_policy
consumer.view_join_policy
provider.view_join_policy
provider.set_join_policy
Spaltenrichtlinien¶
Spaltenrichtlinien legen fest, welche Ihrer Spalten in den Analyseergebnissen projiziert werden können, wenn eine spezifische Vorlage darauf zugreift. Sie können eine Spaltenrichtlinie jederzeit festlegen, nachdem Sie Daten verknüpft und Vorlagen zum Clean Room hinzugefügt haben.
Eine Spalte kann nicht sowohl in einer Verknüpfungs- als auch in einer Spaltenrichtlinie enthalten sein. Eine Spalte kann sowohl in einer Aktivierungs- als auch in einer Spaltenrichtlinie enthalten sein.
Wenn Sie keine Spaltenrichtlinie für Ihre Daten angeben, können alle Ihre Spalten projiziert werden.
Implementierung einer Spaltenrichtlinie¶
Spaltenrichtlinien können in der Clean Room UI festgelegt werden, wenn die Vorlage dies zulässt.
Clean Room-Spaltenrichtlinien werden nur dann für eine Spalte durchgesetzt, wenn die Vorlage den Filter column_policy
oder join_and_column_policy
verwendet. Sie können eine Vorlage untersuchen, um zu sehen, wo Spaltenrichtlinien durchgesetzt werden, indem Sie die Vorlagendefinition anzeigen und das Vorhandensein dieses Filters in einer Syntax wie dieser bestätigen:
{{ my_column | column_policy }}
Snowflake-Projektionsrichtlinien für die zugrunde liegenden Tabellen werden unabhängig davon durchgesetzt, ob die Vorlage einen column_policy
-Filter für die Spalte enthält oder nicht.
Der folgende Code veranschaulicht, wie zugelassen wird, dass drei Spalten nur von der Vorlage prod_overlap_analysis
projiziert werden können. Der Name der Vorlage wird als Teil der Syntax für die Spaltenbenennung angegeben, wenn Sie eine Spaltenrichtlinie angeben. Diese Richtlinie betrifft alle Benutzer im Clean Room, aber nur diese Vorlage. Es gibt gleichwertige Prozeduren für Anbieter und Verbraucher in einem Clean Room; rufen Sie die Prozedur auf, die Ihrer Rolle im Clean Room entspricht.
-- Set column policies on a clean room where you are a provider
call samooha_by_snowflake_local_db.provider.set_column_policy('my_provider_cleanroom',
['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);
-- Set column policies on a clean room where you are a consumer
call samooha_by_snowflake_local_db.consumer.set_column_policy('my_consumer_cleanroom',
['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);
Ein erneuter Aufruf dieser Prozedur löscht die vorherige Spaltenrichtlinie und ersetzt sie durch die neue Spaltenrichtlinie.
Die folgenden Prozeduren werden verwendet, um Spaltenrichtlinien im Code anzuzeigen oder zu verwalten:
consumer.set_column_policy
consumer.view_column_policy
consumer.view_provider_column_policy
provider.set_column_policy
provider.view_column_policy
Aktivierungsrichtlinien¶
Aktivierungsrichtlinien legen fest, welche Ihrer Spalten durch eine Aktivierungsvorlage aktiviert werden können. Eine Aktivierungsvorlage speichert Abfrageergebnisse in einer Tabelle im Snowflake-Konto des Anbieters oder Verbrauchers oder in einem Aktivierungskonnektor eines Drittanbieters.
Eine Spalte kann sowohl Teil einer Aktivierungsrichtlinie als auch einer beliebigen anderen Richtlinie sein.
Wenn Sie keine Aktivierungsrichtlinie für Ihre Daten angeben, können keine Spalten Ihrer Daten aktiviert werden.
Aktivierungsrichtlinie implementieren¶
Aktivierungsrichtlinien können in der Clean Room UI festgelegt werden, wenn die Vorlage die Aktivierung zulässt.
Aktivierungsrichtlinien werden nur dann für eine Spalte durchgesetzt, wenn die Vorlage den Filter activation_policy
verwendet. Sie können eine Vorlage untersuchen, um zu sehen, wo Aktivierungsrichtlinien durchgesetzt werden, indem Sie die Vorlagendefinition anzeigen und das Vorhandensein dieses Filters in einer Syntax wie dieser bestätigen:
{{ my_column | activation_policy }}
Der folgende Code zeigt, wie zugelassen wird, dass die Spalten HASHED_EMAIL und REGION_CODE in einem Clean Room aktiviert werden können. Diese Richtlinie betrifft alle Benutzer und alle Aktivierungsvorlagen im Clean Room. Es gibt gleichwertige Prozeduren für Anbieter und Verbraucher in einem Clean Room. Rufen Sie die Prozedur auf, die Ihrer Rolle im Clean Room entspricht.
-- Set column policies on a clean room where you are a provider
call samooha_by_snowflake_local_db.provider.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
-- Set column policies on a clean room where you are a consumer
call samooha_by_snowflake_local_db.consumer.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:REGION_CODE' ]);
Ein erneuter Aufruf dieser Prozedur löscht die vorherige Aktivierungsrichtlinie und ersetzt sie durch die neue Aktivierungsrichtlinie.
Die folgenden Prozeduren werden verwendet, um Aktivierungsrichtlinien im Code zu verwalten:
consumer.set_activation_policy
provider.set_activation_policy
Aggregationsrichtlinien¶
Aggregationsrichtlinien erfordern, dass alle Abfragen einer Tabelle Aggregationen (GROUP BY, COUNT und andere Funktionen) enthalten und außerdem eine Mindestanzahl von Zeilen pro Ergebnisgruppe angeben, sonst wird die Gruppe aus den Ergebnissen ausgelassen. Aggregationsrichtlinien erfordern, dass alle Abfragen einer Tabelle mit einer Aggregationsrichtlinie aggregiert werden (GROUP BY, COUNT und andere Aggregationsfunktionen) und außerdem eine Mindestanzahl von Zeilen pro Ergebnisgruppe angeben, sonst wird die Gruppe aus den Ergebnissen ausgelassen.
Clean Rooms haben keine eigene Implementierung von Aggregationsrichtlinien. Um Aggregationseinschränkungen auf Ihre verknüpften Daten anzuwenden, wenden Sie entweder eine Aggregationsrichtlinie auf die Quelltabelle an oder implementieren Sie Aggregationseinschränkungen in Ihrer Vorlage.
Einige von Snowflake bereitgestellte Vorlagen verwenden die für einen Benutzer oder eine Vorlage festgelegten Parameter threshold
und threshold_value
. Diese Werte können in der Clean Room UI oder durch den Aufruf von provider.add_consumers
oder provider/consumer.set_privacy
geändert werden. Wenn dies für einen Verbraucher festgelegt ist, können Sie auf diese Werte in Ihrer Vorlage zugreifen.