Snowflake Data Clean Rooms: Verbraucher-API-Referenzhandbuch¶
Auf dieser Seite werden die Prozeduren beschrieben, die die Verbraucher in der Clean Room API zur Verwaltung ihrer Clean Rooms verwenden. Anweisungen zur Einrichtung der Codierung finden Sie unter Codierung einrichten.
Rollenzugriff verwalten¶
consumer.grant_run_on_cleanrooms_to_role¶
Beschreibung: Gewährt der angegebenen Rolle die Berechtigung, eine Teilmenge von Prozeduren in den angegebenen Clean Rooms auszuführen. Clean Rooms müssen in diesem Konto installiert werden, nicht von diesem Konto erstellt werden. (Das heißt, nur Clean Rooms, für die Sie ein Verbraucher sind.)
Um die Nutzung Ihrer Clean Rooms einzuschränken, gewähren Sie Benutzern die angegebene Rolle und nicht SAMOOHA_APP_ROLE. Mehr über den Rollenzugriff.
Die folgenden Prozeduren können mit einer hier angegebenen Rolle ausgeführt werden:
CONSUMER.VIEW_ADDED_TEMPLATES
CONSUMER.VIEW_ADDED_TEMPLATE_CHAINS
CONSUMER.GET_ARGUMENTS_FROM_TEMPLATE
CONSUMER.VIEW_COLUMN_POLICY
CONSUMER.VIEW_CONSUMER_DATASETS
CONSUMER.VIEW_JOIN_POLICY
CONSUMER.VIEW_PROVIDER_COLUMN_POLICY
CONSUMER.VIEW_PROVIDER_DATASETS
CONSUMER.VIEW_PROVIDER_JOIN_POLICY
CONSUMER.VIEW_REMAINING_PRIVACY_BUDGET
CONSUMER.RUN_ANALYSIS
CONSUMER.VIEW_PROVIDER_ACTIVATION_POLICY
CONSUMER.VIEW_ACTIVATION_POLICY
CONSUMER.RUN_ACTIVATION
Argumente:
cleanroom_names (Array von Zeichenfolgen) - Namen aller Clean Rooms, für die der angegebenen Rolle beschränkter Zugriff gewährt werden soll.
run_role_name (Zeichenfolge) - Name einer Rolle, die eingeschränkte Berechtigungen für die angegebenen Clean Rooms hat. Sie müssen die Rolle erstellen, bevor Sie diese Prozedur aufrufen.
Rückgabe: (string) – Erfolgs- oder Fehlermeldung.
Beispiel:
CREATE ROLE MARKETING_ANALYST_ROLE;
CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'MARKETING_ANALYST_ROLE'
);
consumer.revoke_run_on_cleanrooms_from_role¶
Beschreibung: Entzieht den angegebenen Rollen die Berechtigungen für die angegebenen Clean Rooms. Beachten Sie, dass ein Benutzer, der Zugriff auf eine nicht widerrufene Rolle oder die SAMOOHA_APP_ROLE hat, weiterhin in der Lage ist, Clean Room-Prozeduren in den angegebenen Clean Rooms durchzuführen.
Argumente:
cleanroom_names (Array von Zeichenfolgen) - Namen von einem oder mehreren Clean Rooms in diesem Konto.
run_role_name (Zeichenfolge) - Name der Rolle, die in diesem Konto keine eingeschränkten Berechtigungen mehr für die angegebenen Clean Rooms haben soll.
Rückgabe: (string) – Erfolgs- oder Fehlermeldung.
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.revoke_run_on_cleanrooms_from_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'TEMP_USERS_ROLE'
);
Reinraum installieren¶
Installieren Sie den Reinraum, den der Anbieter freigegeben hat, mit den folgenden Befehlen:
consumer.install_cleanroom¶
Beschreibung: Installiert (verbindet) den vom angegebenen Anbieter erstellten Clean Room. Beachten Sie, dass durch mehrmaliges Aufrufen jedes Mal der vorhandene Clean Room gelöscht wird. Wenn Sie eine zweite Installation unterbrechen, bevor sie abgeschlossen ist, wird der Clean Room beschädigt. Sie müssen diese Prozedur abschließen, um den Clean Room wieder nutzbar zu machen.
Argumente:
cleanroom_name (Zeichenfolge) - Name des zu installierenden Clean Room.
provider_account_locator (Zeichenfolge) - Konto-Locator des Anbieters, der diesen Clean Room erstellt hat.
Rückgabe: (Zeichenfolge) Erfolgsmeldung.
Beispiel:
call samooha_by_snowflake_local_db.consumer.install_cleanroom($cleanroom_name, $provider_locator);
consumer.is_enabled¶
Beschreibung: Sobald der Reinraum installiert ist, dauert es etwa 1 Minute, bis der Anbieter die Einrichtung abgeschlossen hat und ihn auf seiner Seite aktivieren kann. Mit dieser Funktion kann der Benutzer den Status des Reinraums überprüfen und sehen, ob er aktiviert ist oder nicht. Das Flag wechselt in der Regel etwa eine Minute nach der Installation des Reinraums auf „True“.
Argumente: cleanroom_name (string)
Liefert: ist aktiviert (boolean)
Beispiel:
call samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
consumer.uninstall_cleanroom¶
Beschreibung: Deinstalliert den Clean Room auf dem Verbraucherkonto. Dadurch werden alle mit dem Clean Room verbundenen Datenbanken entfernt, einschließlich der freigegebenen Clean Room-Datenbank. Beachten Sie, dass der Clean Room jederzeit mit consumer.install_cleanroom erneut installiert werden kann.
Argumente: cleanroom_name (string)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Cloud-übergreifende Zusammenarbeit¶
Installieren Sie einen Clean Room, der in einer anderen Cloudregion erstellt wurde. Weitere Informationen.
library.enable_laf_on_account¶
Beschreibung: Aktiviert die Cloud-übergreifende automatische Ausführung für das aktuelle Konto. Erfordert die Rolle ACCOUNTADMIN.
Argumente: Keine
Rückgabe: (Zeichenfolge) Erfolgsmeldung.
Beispiel:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.library.enable_laf_on_account();
consumer.is_laf_enabled_for_cleanroom¶
Beschreibung: Beschreibt, ob die Cloud-übergreifende automatische Ausführung für diesen Clean Room aktiviert wurde oder nicht. Die Cloud-übergreifende automatische Ausführung muss von einem Kontoadministrator konfiguriert werden.
Argumente:
cleanroom_name (string) – Der Name des Reinraums.
Rückgabe: Ob für diesen Clean Room die Cloud-übergreifende automatische Ausführung aktiviert wurde oder nicht.
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.is_laf_enabled_for_cleanroom($cleanroom_name);
consumer.request_laf_cleanroom¶
Beschreibung: Legt die Voraussetzungen für die Installation eines Clean Room fest, der in einer anderen Cloudregion erstellt wurde. Der Aufruf von consumer.install_cleanroom
vor dem Aufruf dieser Prozedur wird fehlschlagen. Diese Prozedur gibt bei jedem Aufruf den aktuellen Status zurück. Fahren Sie mit dem periodischen Aufruf fort, bis der zurückgegebene Status FULFILLED lautet, und rufen Sie dann consumer.install_cleanroom
auf. Es kann bis zu 10 Minuten dauern, bis der Status FULFILLED erreicht wird.
Argumente:
cleanroom_name (string) - Der Name des regionsübergreifenden Clean Room, der installiert werden soll.
provider_locator (string) - Konto-Locator des Anbieters, der diesen Clean Room erstellt hat.
Rückgabe: (string) Statusmeldung der Anfrage. Setzen Sie den Aufruf fort, bis der Status FULFILLED lautet.
Beispiel:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
$cleanroom_name,$provider_locator);
Vom Anbieter durchgeführte Analyse¶
Erfahren Sie mehr über die Analyse des Anbieters.
library.is_provider_run_enabled¶
Beschreibung: Prüft, ob dieser Clean Room vom Anbieter durchgeführte Analysen erlaubt. Hinweis: Bevor Anbieter eine Analyse in diesem Clean Room durchführen können, muss noch eine explizite Genehmigung durch den Aufruf von consumer.enable_templates_for_provider_run
erteilt werden.
Argumente: cleanroom_name (string)
Rückgabe: aktiviert Nachricht (string)
Beispiel:
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
consumer.enable_templates_for_provider_run¶
Beschreibung: Erteilt dem Anbieter die Berechtigung, eine Analyse in dem angeforderten Clean Room durchzuführen. Diese Funktion wird aufgerufen, nachdem der Anbieter provider.enable_provider_run_analysis
aufgerufen hat, um die vom Anbieter durchgeführte Analyse in einem Clean Room zu aktivieren. consumer.enable_templates_for_provider_run
gibt dem Anbieter die Berechtigung, die Analyse in den angegebenen Vorlagen in dem angegebenen Clean Room so oft wie gewünscht durchzuführen.
Argumente:
cleanroom_name (string) - Der Name des Clean Rooms, in dem der Anbieter Analysen durchführen kann.
template_names (Array von Zeichenfolgen) - Ein Array mit Namen von einer oder mehreren Vorlagen im Clean Room, die der Anbieter ausführen kann.
enable_differential_privacy (boolesch) - Wenn TRUE, aktivieren Sie die differentielle Privatsphäre für alle in
template_names
aufgeführten Vorlagen. Die differentielle Privatsphäre kann für diese Vorlagen nur aktiviert werden, wenn die differentielle Privatsphäre für den Reinraum selbst aktiviert ist. Sie können den differentiellen Privatsphärenstatus für einen Reinraum überprüfen, indem Sieconsumer.is_dp_enabled
aufrufen. Sie können die Datenschutzeinstellungen anpassen, indem Sieconsumer.set_privacy_settings
aufrufen. Weitere Informationen.template_configuration (Objekt, Optional) - Ein optionales Objekt zur Angabe zusätzlicher Einstellungen für jede Vorlage. Dieses Objekt enthält Schlüssel/Wert-Paare, wobei der Schlüssel der Name der Vorlage ist (aus
template_names
) und der Wert ein Objekt mit den folgenden Eigenschaften ist:warehouse_type
(string) - Ein zulässiger Warehouse-Typ, den der Anbieter mit dieser Vorlage verwenden kann. Erlaubte Werte sind die, die für WAREHOUSE_TYPE definiert wurden.warehouse_size
(Array von Zeichenfolgen) - Eine oder mehrere zulässige Warehouse-Größen, die mit diesem Warehouse-Typ und dieser Warehouse-Vorlage verwendet werden können. Erlaubte Werte sind die, die für WAREHOUSE_SIZE definiert wurden.
Rückgabe: (string) Erfolgs- oder Fehlermeldung.
Beispiele:
-- Simple example
CALL samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run($cleanroom_name, ['prod_overlap_analysis'], FALSE);
-- Specify warehouse types that the provider can request for each template.
call samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
[$template1, $template2],
TRUE,
{
$template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
$template2: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
$template3: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
Multi-Anbieter-Analyse¶
Diese Prozeduren ermöglichen die Multi-Anbieter-Analyse.
consumer.prepare_multiprovider_flow¶
Beschreibung: Sendet eine Anfrage zur Durchführung einer Multi-Anbieter-Abfrage an die Anbieter der angegebenen Clean Rooms. Diese Prozedur führt die Anfrage nicht tatsächlich aus; sie bittet den Anbieter lediglich um die Berechtigung, diese Anfrage in Zukunft auszuführen, indem consumer.execute_multiprovider_flow
aufgerufen wird.
Wenn ein Anbieter sein Einverständnis gibt, kann der Verbraucher die Abfrage ausführen, indem er consumer.execute_multiprovider_flow
so oft wie gewünscht aufruft (je nach den konfigurierten Einstellungen für differentielle Privatsphäre). Wenn Sie eine zuvor genehmigte Abfrage nach dem Aufruf von prepare_multiprovider_flow
mit neuen Werten erneut ausführen möchten, müssen Sie immer noch prepare_multiprovider_flow
mit genau der vorherigen Abfrage aufrufen, aber Sie müssen nicht auf die Genehmigung des Anbieters warten, bevor Sie consumer.execute_multiprovider_flow
ausführen.
Die Anfrage ist vier Stunden lang gültig; danach wird sie aus der Warteschlange gelöscht.
Argumente:
cleanroom_names (Array von Zeichenfolgen) - Array der Namen der Clean Rooms im Konto des Verbrauchers. Diese Clean Rooms müssen installiert werden.
template_name (string) - Name der Vorlage, die in jedem der in
cleanroom_names
aufgeführten Clean Rooms ausgeführt werden soll. Dabei kann es sich um eine von Snowflake bereitgestellte Vorlage handeln, die vom Anbieter des Clean Room hinzugefügt wurde, oder um eine benutzerdefinierte Vorlage, die Sie zuvor durch den Aufruf vonconsumer.create_template_request
an den Clean Room übermittelt haben. In beiden Fällen muss die Vorlage bereits in einem Clean Room vorhanden sein, damit die Anfrage an den Anbieter des Clean Room gesendet werden kann.arguments (Objekt) - Ein Objekt mit den folgenden Feldern, die zum Ausfüllen der Vorlage verwendet werden:
source_table
(Array von Zeichenfolgen) - Ein Array mit Tabellennamen, die verwendet werden, um das Arraysource_table
aufzufüllen, das der Vorlage zur Verfügung steht. Die Syntax für jeden Tabellennamen lautetcleanroom_name.db.schema.table
. Jeder Anbieter sieht nur seine eigenen, in der Anfrage aufgeführten Clean Room-Tabellen.my_table
(Array von Zeichenfolgen) - Ein Array mit Tabellennamen Ihrer eigenen Daten, die verwendet werden, um das Arraymy_table
aufzufüllen, das der Vorlage zur Verfügung steht. Verwenden Sie dieselbe Syntax, die dem Argumentconsumer_tables
vonconsumer.run_analysis
übergeben wurde.Beliebige andere Vorlagenvariablen - Geben Sie alle erforderlichen Werte für die Vorlage als Schlüssel/Wertpaare ein.
Rückgabe: (string) Anfrage-ID zur Weitergabe an consumer.execute_multiprovider_flow
.
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.prepare_multiprovider_flow(
[$cleanroom_name_1, $cleanroom_name_2],
'prod_aggregate_data',
object_construct(
'source_table', [
CONCAT($cleanroom_name_1, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'),
CONCAT($cleanroom_name_2, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS')
],
'my_table', ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']),
'hem_col', ['p1.HASHED_EMAIL', 'p2.HASHED_EMAIL'],
'dimensions', ['p1.STATUS', 'p2.STATUS'],
'consumer_join_col', 'HASHED_EMAIL'
)
);
consumer.execute_multiprovider_flow¶
Beschreibung: Führt die letzte Abfrage aus, die der Verbraucher an consumer.prepare_multiprovider_flow
übermittelt hat. Die Prozedur führt die Abfrage in jedem angegebenen Clean Room aus, in dem die Abfrage vom Anbieter genehmigt wurde, und gibt die Vereinigung aller Abfrageergebnisse zurück. Nur mit dieser Prozedur können Sie feststellen, ob ein Anbieter eine Abfrage genehmigt hat.
Argumente:
cleanroom_names (Array von Zeichenfolgen) - Array mit den Namen der Clean Rooms, in denen die vorbereitete Abfrage ausgeführt werden soll. Dieses Array muss mit der vollständigen Liste der Clean Rooms in der Abfrage übereinstimmen.
request_id (Zeichenfolge, optional) - Anfrage-ID, die von
prepare_multiprovider_flow
zurückgegeben wird.
Rückgabewerte: (Tabelle) Zusammenstellung der Ergebnisse aus allen genehmigten Clean Rooms. Wenn ein Anbieter eine Abfrage von diesem Verbraucher noch nie genehmigt hat, schlägt die Abfrage fehl. Wenn jedoch ein Anbieter eine andere Abfrage dieses Verbrauchers genehmigt hat, aber nicht die jüngste Abfrage, gibt die Prozedur ein leeres Resultset zurück.
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.execute_multiprovider_flow([$cleanroom1, $cleanroom2], $request_id);
Daten registrieren und abmelden¶
Verwenden Sie den folgenden Befehl, um Datenbanken, Schemas und Objekte zu registrieren und die Registrierung aufzuheben. Tabellen und Ansichten müssen registriert werden, bevor sie mit dem Reinraum verknüpft werden können. Wenn Sie eine Datenbank oder ein Schema registrieren, werden alle Objekte in dieser Datenbank oder diesem Schema registriert.
consumer.register_db¶
Beschreibung: Indem Sie eine Datenbank in den Reinraum einbinden, können Sie jedes Datenset aus der Datenbank verknüpfen. Wenn diese Funktion nicht aufgerufen wird, müssen Sie „samooha_app_role“ Berechtigungen einzeln zugwiesen werden.
Argumente: db_name (string)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.consumer.register_db('SAMOOHA_SAMPLE_DATABASE');
library.register_schema¶
Beschreibung: Ähnlich wie register_db
, arbeitet jedoch auf Schemaebene. Ein Array oder eine Zeichenfolge, die den vollständig qualifizierten Schemanamen repräsentiert, kann übergeben werden, und es werden SELECT-Zuweisungen für die Rolle SAMOOHA_APP_ROLE vorgenommen, sodass der Benutzer die Objekte im Schema mit dem Reinraum verknüpfen kann.
Wenn Sie ein verwaltetes Zugriffsschema registrieren möchten (d. h. ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde), verwenden Sie stattdessen library.register_managed_access_schema
.
Argumente: schema_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_managed_access_schema¶
Beschreibung: Ähnlich wie register_schema
, registriert jedoch ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde. Ein Array oder eine Zeichenfolge, die den vollständig qualifizierten Schemanamen repräsentiert, kann übergeben werden, und es werden SELECT-Zuweisungen für die Rolle SAMOOHA_APP_ROLE vorgenommen, sodass der Benutzer die Objekte im Schema mit dem Reinraum verknüpfen kann.
Argumente: schema_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_objects¶
Beschreibung: Gewährt dem Reinraum Zugriff auf Tabellen und Ansichten aller Arten, sodass sie durch den Aufruf von consumer.link_datasets
mit dem Reinraum verknüpft werden können. Sie können breitere Gruppen von Objekten registrieren, indem Sie library.register_schema
, library.register_managed_access_schema
oder consumer.register_db
aufrufen.
Argumente:
object_names (array) – Array mit vollständig qualifizierten Objektnamen. Diese Objekte können dann mit dem Reinraum verknüpft werden.
Rückgabe: Erfolgsmeldung (string)
Beispiele
So registrieren Sie eine Tabelle und eine Ansicht:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.enable_external_tables_on_account¶
Beschreibung: Aktivieren Sie die Verwendung von Iceberg- oder externen Tabellen in allen Clean Rooms in diesem Konto. Muss von einem ACCOUNTADMIN in sowohl dem Anbieter- als auch dem Verbraucherkonto aufgerufen werden, damit Iceberg- oder externe Tabellen über eines der beiden Konten verknüpft werden können. Um diese Fähigkeit auf bestimmte Clean Rooms in diesem Konto zu beschränken, rufen Sie stattdessen enable_external_tables_for_cleanroom
auf.
Argumente: Keine
Rückgabe: (string) Erfolgs- oder Fehlermeldung.
Beispiel:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
consumer.enable_external_tables_for_cleanroom¶
Beschreibung: Ermöglicht die Verknüpfung von Iceberg- oder externen Tabellen mit dem angegebenen Clean Room in diesem Konto durch den Verbraucher. Um Iceberg- und externe Tabellen für alle Clean Rooms in diesem Konto zuzulassen, rufen Sie stattdessen enable_external_tables_on_account
auf.
Argumente:
cleanroom_name (string) - Der Name des Clean Room, mit dem der Anbieter Iceberg- oder externe Tabellen verknüpfen kann.
Rückgabe: (string) Erfolgs- oder Fehlermeldung. Bei Erfolg wird ein Sicherheitsscan ausgelöst und die Nummer des Patches angegeben, der bei einem erfolgreichen Sicherheitsscan generiert wird.
Beispiel:
CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
$cleanroom_name);
library.register_table_or_view – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.register_objects.
Beschreibung: Registriert Tabellen und Ansichten aller Art.
Argumente: object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Ausgabe Erfolgsmeldung (string)
Beispiele
Um eine Tabelle zu registrieren:
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
Um eine Iceberg-Tabelle zu registrieren:
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
true,
false,
false);
library.register_table – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.register_objects.
Beschreibung: Ähnlich wie register_db
, operiert aber auf Tabellenebene. Ein Array oder eine Zeichenfolge, die den vollqualifizierten Tabellennamen repräsentiert, kann übergeben werden, und SELECT-Zuweisungen für die Rolle SAMOOHA_APP_ROLE werden ausgeführt, sodass der Benutzer die Tabelle mit dem Reinraum verknüpfen kann.
Wenn Sie Tabellen in einem verwalteten Zugriffsschema (d. h. ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde) registrieren möchten, verwenden Sie stattdessen library.register_managed_access_table
.
Argumente: table_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_table – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.register_objects.
Beschreibung: Ähnlich wie register_table
, registriert aber Tabellen in einem Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde. Ein Array oder eine Zeichenfolge, die den vollqualifizierten Tabellennamen repräsentiert, kann übergeben werden, und SELECT-Zuweisungen für die Rolle SAMOOHA_APP_ROLE werden ausgeführt, sodass der Benutzer die Tabelle mit dem Reinraum verknüpfen kann.
Argumente: table_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_view – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.register_objects.
Beschreibung: Ähnlich wie register_db
, arbeitet aber auf der Ansichtsebene. Ein Array oder eine Zeichenfolge, die den vollqualifizierten Ansichtsnamen repräsentiert, kann übergeben werden, und SELECT-Zuweisungen für die Rolle SAMOOHA_APP_ROLE werden ausgeführt, sodass der Benutzer die Ansicht mit dem Reinraum verknüpfen kann.
Wenn Sie Ansichten in einem verwalteten Zugriffsschema (d. h. ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde) registrieren möchten, verwenden Sie stattdessen library.register_managed_access_view
.
Argumente: view_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_view – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.register_objects.
Beschreibung: Ähnlich wie register_view
, registriert aber die Ansichten in einem Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde. Ein Array oder eine Zeichenfolge, die den vollqualifizierten Ansichtsnamen repräsentiert, kann übergeben werden, und SELECT-Zuweisungen für die Rolle SAMOOHA_APP_ROLE werden ausgeführt, sodass der Benutzer die Ansicht mit dem Reinraum verknüpfen kann.
Argumente: view_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_db¶
Beschreibung: Macht die Prozedur register_db
rückgängig und entfernt die Berechtigungen auf Datenbankebene, die der Rolle SAMOOHA_APP_ROLE und der nativen Snowflake Data Clean Room-Anwendung erteilt wurden. Dadurch wird auch jede Datenbank aus dem UI-Dropdown-Element entfernt.
Argumente: db_name (string)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
library.unregister_schema¶
Beschreibung: Hebt die Registrierung eines Schemas auf, was Benutzer daran hindert, dessen Tabellen und Ansichten mit dem Clean Room zu verknüpfen.
Wenn Sie die Registrierung eines verwalteten Zugriffsschemas (d. h. eines Schemas, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde) aufheben möchten, verwenden Sie stattdessen library.unregister_managed_access_schema
.
Argumente: schema_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_managed_access_schema¶
Beschreibung: Ähnlich wie unregister_schema
, hebt jedoch die Registrierung eines Schemas auf, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde.
Argumente: schema_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_objects¶
Beschreibung: Widerruft den Reinraum-Zugriff auf Tabellen und Ansichten aller Art. Die Objekte sind für Benutzer in allen von diesem Konto verwalteten Reinräumen nicht mehr verfügbar.
Argumente:
object_names (array) – Array der vollqualifizierten Objektnamen, für die der Zugriff widerrufen werden soll.
Rückgabe: Erfolgsmeldung (string)
Beispiele
So heben Sie die Registrierung einer Tabelle und einer Ansicht auf:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.unregister_table_or_view – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.unregister_objects.
Beschreibung: Hebt die Registrierung von Tabellen und Ansichten aller Art auf.
Argumente: object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Ausgabe Erfolgsmeldung (string)
Beispiele
So heben Sie die Registrierung einer Tabelle auf:
call samooha_by_snowflake_local_db.library.unregister_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
library.unregister_table – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.unregister_objects
Beschreibung: Ähnlich wie unregister_db
, arbeitet jedoch auf Tabellenebene. Ein Array oder eine Zeichenfolge, die den vollqualifizierten Tabellennamen repräsentiert, kann übergeben werden, um die Registrierung der Tabellen aufzuheben. Benutzer können keine nicht registrierten Tabellen mit einem Reinraum verknüpfen.
Wenn Sie die Registrierung von Tabellen in einem verwalteten Zugriffsschema (d. h. ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde) aufheben möchten, verwenden Sie stattdessen library.unregister_managed_access_table
.
Argumente: table_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_table – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.unregister_objects
Beschreibung: Ähnlich wie unregister_table
, hebt jedoch die Registrierung von Tabellen in einem verwaltetem Zugriffsschema auf (d. h. ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde).
Argumente: table_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_view – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.unregister_objects
Beschreibung: Ähnlich wie unregister_db
, arbeitet jedoch auf Ansichtsebene. Ein Array oder eine Zeichenfolge, die den vollständig qualifizierten Namen der Ansicht repräsentiert, kann übergeben werden, um die Registrierung der Ansichten aufzuheben. Benutzer können keine nicht registrierten Ansichten mit einem Reinraum verknüpfen.
Wenn Sie die Registrierung von Ansichten in einem verwaltetem Zugriffsschema (d. h. einem Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde) aufheben möchten, verwenden Sie stattdessen library.unregister_managed_access_view
.
Argumente: view_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_view – Veraltet¶
Achtung
Dieser Befehl ist jetzt veraltet. Bitte verwenden Sie library.unregister_objects
Beschreibung: Ähnlich wie unregister_view
, hebt jedoch die Registrierung von Ansichten in einem verwaltetem Zugriffsschema auf (d. h. ein Schema, das mit dem Parameter WITH MANAGED ACCESS erstellt wurde).
Argumente: view_name (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Verknüpfung und Aufhebung der Verknüpfung von Datensätzen¶
Sobald ein Datensatz registriert wurde, können Sie Tabellen oder Ansichten aus diesem Datensatz mit einem bestimmten Reinraum verknüpfen. Sie können auch die Verknüpfung einer Tabelle oder Ansicht mit einem bestimmten Reinraum aufheben, um den Zugriff auf diese Daten aus dem Reinraum zu entfernen.
consumer.link_datasets¶
Beschreibung: Verknüpfen Sie eine Tabelle oder eine Ansicht mit dem Reinraum, sodass Vorlagen in diesem Reinraum Zugriff auf die Tabelle haben, und zwar gemäß den von Ihnen festgelegten Join- und Spaltenrichtlinien.
Argumente:
cleanroom_name (string) – Name des Reinraums, zu dem Zugang gewährt werden soll
tables_list (array of strings) – Liste der Namen der vollqualifizierten Tabellen oder Ansichten, die für den Reinraum freigegeben werden sollen. Diese Objekte müssen zunächst mit der entsprechenden Registrierungsmethode registriert (für die Reinraumumgebung verfügbar gemacht) werden.
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.link_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MY_DB.MY_SCH.EXPOSURES']);
consumer.unlink_datasets¶
Beschreibung: Entfernt den Zugriff auf die angegebenen Tabellen oder Ansichten im angegebenen Reinraum für alle Benutzer. Dies funktioniert nur für vom Verbraucher bereitgestellte Daten.
Argumente:
cleanroom_name (string) – Name des Reinraums, für den der Zugang entfernt werden soll.
tables_list (array of strings) – Liste der Namen der vollqualifizierten Tabellen oder Ansichten, für die der Zugriff gesperrt werden soll.
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.unlink_datasets($cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
consumer.view_consumer_datasets¶
Beschreibung: Zeigt alle Tabellen und Ansichten an, die von einem beliebigen Verbraucher in diesem Konto mit dem angegebenen Reinraum verknüpft sind.
Argumente:
cleanroom_name (string) – Der Name des Reinraums.
Rückgabe: Tabelle der Objekte, die mit dem angegebenen Reinraum verknüpft sind, zusammen mit dem Namen der internen Ansicht des Reinraums für jedes Objekt.
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_consumer_datasets($cleanroom_name);
Richtlinien verwalten¶
consumer.set_join_policy¶
Beschreibung: Gibt an, auf welchen Spalten der Anbieter eine Verknüpfung ausführen darf, wenn er Vorlagen im Reinraum ausführt bei Verwendung von Provider Run Analysis. Beachten Sie, dass die Spaltenrichtlinie nur ersetzt wird. Wenn die Funktion also erneut aufgerufen wird, wird die zuvor festgelegte Spaltenrichtlinie vollständig durch die aktuelle ersetzt.
Beachten Sie, dass die Prüfungen ausgeführt werden, indem die SQL-Abfrage, die auf den Daten ausgeführt werden soll, auf nicht autorisierte Spalten analysiert wird. Abfragen mit Platzhaltern werden von diesen Prüfungen möglicherweise nicht erfasst, und Sie sollten bei der Entwicklung der Analysemaske trotzdem Vorsicht walten lassen.
Argumente: cleanroom_name(string), table_and_col_names (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.set_join_policy($cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
consumer.set_column_policy¶
Beschreibung: Legt fest, mit welchen Spalten in den Daten der Anbieter Operationen ausführen kann. Dies sollte erst nach dem Hinzufügen der Vorlage aufgerufen werden. Dies ist ebenfalls eine Funktion der Vorlage, sodass die Eingaben im Format „template_name:full_table_name:column_name“ erfolgen müssen. Beachten Sie, dass die Spaltenrichtlinie nur ersetzt wird. Wenn die Funktion erneut aufgerufen wird, wird die zuvor festgelegte Spaltenrichtlinie vollständig durch die aktuelle ersetzt.
Spaltenrichtlinie sollte nicht für Identitätsspalten wie E-Mail aufgerufen werden. Sie sollte nur für Aggregate und die Gruppierung nach Spalten verwendet werden.
Beachten Sie, dass die Prüfungen ausgeführt werden, indem die SQL-Abfrage, die auf den Daten ausgeführt werden soll, auf nicht autorisierte Spalten analysiert wird. Abfragen mit Platzhaltern werden von diesen Prüfungen möglicherweise nicht erfasst, und Sie sollten bei der Entwicklung der Analysemaske trotzdem Vorsicht walten lassen.
Prüfungen werden für SQL Jinja-Argumente namens dimensions oder measure_columns ausgeführt. Stellen Sie sicher, dass Sie diese Tags verwenden, um diese Prüfung zu aktivieren.
Argumente: cleanroom_name (string), analysis_and_table_and_columns (array)
Rückgabe: Erfolgsmeldung (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.set_column_policy($cleanroom_name,
['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']);
consumer.view_column_policy¶
Beschreibung: Zeigt alle Spaltenrichtlinien an, die vom Verbraucher auf den Reinraum angewendet wurden.
Argumente: cleanroom_name (string)
Rückgabe: Die Spaltenrichtlinie (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_column_policy($cleanroom_name);
consumer.view_provider_column_policy¶
Beschreibung: Zeigt alle Spaltenrichtlinien an, die vom Anbieter auf den Reinraum angewendet wurden.
Argumente: cleanroom_name (string)
Rückgabe: Die Spaltenrichtlinie (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Vorlagen¶
Mit den folgenden Befehlen können Benutzer mit Vorlagen im Reinraum verfügbaren Vorlagen arbeiten.
consumer.view_template_definition¶
Beschreibung: Die Reinraum-Vorlagendefinitionen sind verfügbar, um zu bestimmen, welche Parameter an die Vorlage übergeben werden müssen.
Wenn eine Vorlage durch Anwendung des Arguments is_obfuscated
unkenntlich gemacht wurde, können Sie die Vorlagendefinition nicht sehen.
Bemerkung
Beachten Sie, dass alle Samooha-Prozeduren verschlüsselt und standardmäßig nicht anzeigbar sind. Alle benutzerdefinierten Vorlagen, die Sie hinzufügen, werden jedoch für Sie sichtbar sein.
Argumente: cleanroom_name (string), template_name (string)
Rückgabe: Die Definition der Vorlage (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
consumer.get_arguments_from_template¶
Beschreibung: Legt fest, wie die Daten organisiert werden sollen und welche Daten für jede Vorlage erforderlich sind, um sicherzustellen, dass die Ausgabe gut lesbar ist.
Argumente: cleanroom_name (string), template_name (string)
Rückgabe: Argumentenliste und Spezifikation (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.get_arguments_from_template($cleanroom_name, 'prod_overlap_analysis');
Vorlagenketten¶
Mit den folgenden Befehlen können Benutzer mit den im Reinraum verfügbaren Vorlagenketten arbeiten. Allgemeine Informationen zur Verwendung von Vorlagenketten finden Sie unter Verwenden der Entwickler-APIs zum sequenziellen Ausführen von Vorlagen.
consumer.view_added_template_chains¶
Beschreibung: Zeigt die derzeit im Reinraum aktiven Vorlagenketten an.
Argumente: cleanroom_name (string)
Rückgabe: Die hinzugefügten Vorlagenketten (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_added_template_chains($cleanroom_name);
consumer.view_template_chain_definition¶
Beschreibung: Gibt die Attribute einer Vorlagenkette zurück.
Argumente: cleanroom_name (string), template_chain_name (string)
Rückgabe: Die Definition der Vorlagenkette (string)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_template_chain_definition($cleanroom_name, 'insights_chain');
Analysen durchführen¶
Die folgenden Befehle führen eine bestimmte Analyse oder Aktivität auf der Grundlage der angegebenen Vorlage aus.
consumer.run_analysis¶
Beschreibung: Führt eine Analyse anhand einer Vorlage oder Vorlagenkette aus und gibt die Ergebnistabelle zurück.
Wenn die differentielle Privatsphäre aktiviert ist, kann die Abfrage fehlschlagen, wenn Sie Ihr Budgetlimit für diese Vorlage erreicht haben.
Wenn eine Vorlage durch Anwendung des Arguments is_obfuscated
unkenntlich gemacht wurde, müssen Sie Snowflake Enterprise Edition oder höher verwenden, um die Vorlage ausführen zu können.
Argumente:
cleanroom_name (string) – Name des Reinraums, in dem die Vorlage ausgeführt werden soll.
template_name (string) – Name der Vorlage oder Vorlagenkette, die im Reinraum ausgeführt werden soll.
consumer_tables (array of string) – Array mit den Namen der vollständig qualifizierten Verbrauchertabellen. Diese werden der Vorlagenvariable
my_table
zugewiesen. Diese Tabellen müssen bereits mit dem Reinraum verknüpft sein. Zeigen Sie die verfügbaren Tabellen an, indem Sieconsumer.view_consumer_datasets
aufrufen. Wenn Sie zum Beispiel [‚mytable1‘,‘mytable2‘,‘mytable3‘] übergeben, kann die Vorlage auf diese Werte als{{my_table[0]}}
,{{my_table[1]}}
bzw.{{my_table[2]}}
zugreifen.provider_tables (array of string) – Array mit den Namen der vollständig qualifizierten Anbietertabellen. Diese werden der Vorlagenvariable
source_table
zugewiesen. Diese Tabellen müssen bereits mit dem Reinraum verknüpft sein. Zeigen Sie die verfügbaren Tabellen an, indem Sieconsumer.view_provider_datasets
aufrufen. Wenn Sie zum Beispiel [‚sourcetable1‘,‘sourcetable2‘,‘sourcetable3‘] übergeben, kann die Vorlage auf diese Werte als{{source_table[0]}}
,{{source_table[1]}}
bzw.{{source_table[2]}}
zugreifen.analysis_arguments (object) – Ein Objekt mit Schlüssel/Wert-Paaren, das an die Vorlage übergeben wird. Die Vorlage kann über den Schlüsselnamen auf die Variable zugreifen. Wenn Sie
{'age': 20}
übergeben, greift die Vorlage auf den Wert als{{age}}
zu. Geben Sie ein leeres Objekt ein, wenn keine Werte benötigt werden. Um zu sehen, welche Werte benötigt werden, untersuchen Sie die betreffende Vorlage, indem Sieconsumer.view_template_definition
aufrufen. Wenn Sie einen Spaltennamen angeben, prüfen Sie die Vorlage, um festzustellen, ob Sie den Spaltennamen mit dem Tabellennamen qualifizieren müssen. Wenn der Tabelle der Aliasp
oderc
angefügt wurde, verwenden Sie die Tabellenaliassep
undc
in Kleinbuchstaben für die Spaltennamen. Alsop.age_band
, nichtP.age_band
. Dieses Objekt hat einen optionalen reservierten Wert:epsilon
(Float, optional) – Gibt den Epsilon-Wert für differentielle Privatsphäre an, wenn die differentielle Privatsphäre für diesen Reinraum aktiviert ist. Der Standardwert ist 0.1.
use_cache (Boolean, optional) – Ob zwischengespeicherte Ergebnisse für dieselbe Abfrage verwendet werden sollen oder nicht. Der Standardwert ist FALSE.
Ergebnisse: (Tabelle) Abfrageergebnisse.
Beispiel:
call samooha_by_snowflake_local_db.consumer.run_analysis(
$cleanroom_name,
'prod_overlap_analysis',
['SAMOOHA_SAMPLE_DATABASE.MYDATA.CONVERSIONS'], -- Consumer tables
['MYDB.MYSCH.EXPOSURES'], -- Provider tables
object_construct(
'max_age', 30
)
);
Aktivierung¶
Weitere Informationen zur Aktivierung von Ergebnissen finden Sie im Überblick Aktivierung.
library.view_external_activation_history¶
Beschreibung: Zeigen Sie den Verlauf der Aktivierungsanfragen für das aktuelle Konto an.
Argumente: Keine
Rückgabe: Eine Tabelle mit den Details und dem Status der Aktivierungsanfragen.
Beispiel:
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
consumer.set_activation_policy¶
Beschreibung: Legt fest, welche Spalten in Aktivierungsvorlagen verwendet werden können. Dadurch wird sichergestellt, dass nur die Spalten, die vom Verbraucher genehmigt wurden, mit der Aktivierungsvorlage verwendet werden können.
Eingabe: cleanroom_name (string), columns (array)
Das Argument columns wird im Format <template_name>:<fully_qualified_table_name>:<column_name>
übergeben.
Ausgabe: Erfolgsmeldung
Beispiel:
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' ]);
consumer.approve_provider_activation_consent¶
Beschreibung: Genehmigt die Anfrage des Anbieters, die Anbieteraktivierung zuzulassen, d. h. die Möglichkeit, Ergebnisse an das Snowflake-Konto des Anbieters zu senden. Wenn der Anbieter nicht provider.request_provider_activation_consent
in diesem Clean Room mit der angegebenen Vorlage aufgerufen hat, schlägt diese Prozedur fehl.
Eingabe: cleanroom_name (string), activation_template_name (string)
Ausgabe: Erfolgsmeldung
Beispiel:
call consumer.approve_provider_activation_consent('my_cleanroom', 'activation_my_template');
consumer.run_activation¶
Beschreibung: Führt eine Vorlage aus, die die Ergebnisse an das Snowflake-Konto des Verbrauchers oder Anbieters zurückschickt. Das Argument consumer_direct_activation
bestimmt, ob es sich um eine Verbraucher- oder Anbieteraktivierung handelt.
Argumente:
cleanroom_name (string) - Name des Clean Room, in dem die Aktivierung durchgeführt werden soll.
segment_name (string) - Beliebige Zeichenfolge zur Kennzeichnung der von dieser Aktivierungsausführung erzeugten Zeilen. Jede Aktivierungsausführung fügt neue Zeilen zu einer bestehenden Ergebnistabelle hinzu. Geben Sie bei jedem Aufruf dieser Prozedur eine eindeutige Zeichenfolge in dieses Feld ein, um die Ergebnisse nach einer bestimmten Ausführung zu filtern.
template_name (string) - Name der aufzurufenden Aktivierungsvorlage.
consumer_tables (Array von Zeichenfolgen) - Array mit Namen von Verbrauchertabellen, die an die Vorlage übergeben werden.
provider_tables (Array von Zeichenfolgen) - Array mit den Namen der vollständig qualifizierten Anbietertabellen, die an die Vorlage übergeben werden.
activation_arguments (Objekt) - Schlüssel-Wert-Satz von Argumenten, die an die Vorlage übergeben werden.
consumer_direct_activation (boolesch, optional) - TRUE, um die Ergebnisse an das Konto des Verbrauchers zurückzuschicken, FALSE, um die Ergebnisse an den Anbieter zu senden. Der Standardwert ist FALSE.
Rückgabe: (Zeichenfolge) Erfolgsmeldung, falls erfolgreich.
Beispiel:
-- Run a consumer activation, as specified by the final TRUE argument.
SET segment_name = 'my_activation_segment';
CALL samooha_by_snowflake_local_db.consumer.run_activation(
$cleanroom_name,
$segment_name,
$template_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'c_join_col', 'c.hashed_email',
'p_join_col', 'p.hashed_email'
),
TRUE);
Verbraucherdefinierte Vorlagen¶
Mit den folgenden APIs können Sie verbraucherdefinierte Vorlagen zu einem Reinraum hinzufügen. Weitere Informationen finden Sie unter Verwenden der Entwickler-API zum Hinzufügen verbraucherdefinierter Vorlagen hinzuzufügen.
consumer.create_template_request¶
Beschreibung: Sendet eine Anfrage an den Anbieter eines Clean Room und bittet ihn, eine benutzerdefinierte Vorlage zu genehmigen, damit sie dem Clean Room hinzugefügt werden kann. Siehe Verwenden der Entwickler-API zum Hinzufügen verbraucherdefinierter Vorlagen hinzuzufügen.
Argumente:
cleanroom_name (string) – Name des Reinraums, auf den diese Vorlage angewendet wird.
template_name (string) – Name der Vorlage. Müssen alle Kleinbuchstaben, Zahlen, Leerzeichen oder Unterstriche sein. Aktivierungsvorlagen müssen einen Namen haben, der mit „Aktivierung“ beginnt.-
template_definition (string) - Die JinjaSQL-Vorlage. Informationen zur Vorlagensyntax
Rückgabe: Erfolgsmeldung (string)
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.create_template_request('dcr_cleanroom',
'my_analysis',
$$
SELECT
identifier({{ dimensions[0] | column_policy }})
FROM
identifier({{ my_table[0] }}) c
INNER JOIN
identifier({{ source_table[0] }}) p
ON
c.identifier({{ consumer_id }}) = identifier({{ provider_id | join_policy }})
{% if where_clause %} where {{ where_clause | sqlsafe | join_and_column_policy }} {% endif %};
$$);
consumer.get_sql_jinja¶
Beschreibung: Wertet eine JinjaSQL-Vorlage zu einer gültigen SQL-Anweisung aus. Diese Prozedur kann nur Standard-JinjaSQL-Anweisungen verarbeiten; sie kann keine Clean Room-Erweiterungen für JinjaSQL wie join_policy
oder column_policy
verarbeiten.
Argumente:
template_string (string) - Die zu verarbeitende Vorlage. Es wird nur der Standard JinjaSQL unterstützt.
arguments (Objekt) - Ein Objekt, dessen Feldnamen den in der Vorlage verwendeten Variablen entsprechen und dessen Werte in der generierten Abfrage in die entsprechenden Variablenplatzhalter in der Vorlage eingefügt werden.
Rückgabe: (Zeichenfolge) Die SQL-Anweisung, die von der übermittelten Vorlage mit den angegebenen Variablenwerten erzeugt wurde.
Beispiel:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GET_SQL_JINJA(
$$
SELECT COUNT(*), IDENTIFIER({{ group_by_col }})
FROM IDENTIFIER({{ my_table | sqlsafe }})
INNER JOIN IDENTIFIER({{ source_table | sqlsafe }})
ON IDENTIFIER({{ consumer_join_col }}) = IDENTIFIER({{ provider_join_col }})
GROUP BY IDENTIFIER({{ group_by_col }});
$$,
object_construct(
'group_by_col', 'city',
'consumer_join_col', 'hashed_email',
'provider_join_col', 'hashed_email',
'my_table', 'mydb.mysch.t1',
'source_table', 'mydb.mysch.t2'));
Antwort:
SELECT COUNT(*), IDENTIFIER('city')
FROM IDENTIFIER(mydb.mysch.t1)
INNER JOIN IDENTIFIER(mydb.mysch.t2)
ON IDENTIFIER('hashed_email') = IDENTIFIER('hashed_email')
GROUP BY IDENTIFIER('city');
consumer.generate_python_request_template¶
Beschreibung: Erzeugt eine Reinraumvorlage für Verbraucher, die benutzerdefinierten Python-Code enthält. Die generierte Vorlage enthält Ihren Python-Code und einen Platzhalter für Ihre JinjaSQL-Vorlage. Übergeben Sie Ihre endgültige Vorlage an consumer.create_template_request
.
Erfahren Sie mehr über verbraucherdefinierte Vorlagen
Argumente:
function_name (string) – Der Name der Python-Funktion, die Ihre SQL-Vorlage aufrufen soll, um Ihre Funktion auszuführen.
arguments (array of string) – Liste der Argumente für Ihre Python-Funktion, wobei jedes Argument ein durch Leerzeichen getrenntes Zeichenfolgenpaar im Format „<argument_name> <argument_type>“ ist. Zum Beispiel:
['data variant', 'scale integer']
.packages (array of string) – Array mit Paketnamen, die für Ihren Python-Code benötigt werden. Wenn nicht, geben Sie ein leeres Array an. Beispiel:
['pandas','numpy']
.imports (array of strings) – Alle benutzerdefinierten Python-Bibliotheken, die für den Python-Code benötigt werden. Sollte ein Array mit null oder mehr Stagingbereich-Adressen sein. Beispiel:
['@db.schema.stage/my_python_sproc.py']
rettype (string) – Der SQL-Rückgabetyp Ihrer Funktion. Beispiele:
'integer'
,'varchar'
.handler (string) – Der Name der Haupthandlerfunktion in Ihrem Python-Code. In der Regel ist dies
'main'
.code (string) – Ihre Python-Code-Implementierung. Wenn Sie einen Import einschließen und Ihr designierter Handler innerhalb eines Imports definiert ist, kann dies eine leere Zeichenfolge sein.
Rückgabe: Erstellte Python-Vorlage (string). Ersetzen Sie den Platzhalter durch Ihren SQL-Code.
Beispiel:
Rufen Sie die Hilfsfunktion mit einem einfachen Python-Beispiel auf.
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GENERATE_PYTHON_REQUEST_TEMPLATE(
'my_func', // SQL should use this name to call your function
['data variant', 'index integer'], // Arguments and types for the function
['pandas', 'numpy'], // Standard libraries used
[], // No custom libraries needed.
'integer', // Return type integer
'main', // Standard main handler
// Python implementation as UDF
$$
import pandas as pd
import numpy as np
def main(data, index):
df = pd.DataFrame(data) # you can do something with df but this is just an example
return np.random.randint(1, 100)
$$
);
Hier ist die Antwort auf den vorherigen Aufruf. Fügen Sie Ihr JinjaSQL wie am Platzhalter angegeben ein, und übergeben Sie es an consumer.create_template_request
.
BEGIN
-- First define the Python UDF
CREATE OR REPLACE FUNCTION CLEANROOM.my_func(data variant, index integer)
RETURNS integer
LANGUAGE PYTHON
RUNTIME_VERSION = 3.10
PACKAGES = ('pandas', 'numpy')
HANDLER = 'main'
AS '
import pandas as pd
import numpy as np
def main(data, index):
df = pd.DataFrame(data) # you can do something with df but this is just an example
return np.random.randint(1, 100)
';
-- Then define and execute the SQL query
LET SQL_TEXT varchar := '<INSERT SQL TEMPLATE HERE>';
-- Execute the query and return the result
LET RES resultset := (EXECUTE IMMEDIATE :SQL_TEXT);
RETURN TABLE(RES);
END;
consumer.list_template_requests¶
Beschreibung: Listet die Anfragen auf, die der Verbraucher gestellt hat, um eine Vorlage zu einem Clean Room hinzuzufügen.
Argumente: cleanroom_name (string)
Rückgabe: request_id (string), provider_identifier (string), template_name (string), template_definition (string), request_status (string), reason (string)
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.list_template_requests('dcr_cleanroom');
Getter-Methoden für Reinraum-Metadaten¶
Die folgenden Methoden zeigen relevante Eigenschaften des Reinraums:
consumer.describe_cleanroom¶
Beschreibung: Erstellt eine Textzusammenfassung, die alle Informationen darüber enthält, was dem Clean Room hinzugefügt wurde, einschließlich Vorlagen, Datensätze, Richtlinien und so weiter. Wenn eine Vorlage durch Anwendung des Arguments is_obfuscated
unkenntlich gemacht wurde, müssen Sie die Snowflake Enterprise Edition oder höher verwenden, um den Vorlagennamen sehen zu können.
Argumente: cleanroom_name (string)
Rückgabe: Ausführliche Beschreibungszeichenfolge des Reinraums (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.describe_cleanroom($cleanroom_name);
consumer.view_provider_datasets¶
Beschreibung: Zeigt alle Datensets an, die vom Anbieter zum Reinraum hinzugefügt wurden.
Argumente: cleanroom_name (string)
Ergebnisse: Alle Namen der Anbieter-Datensätze im Reinraum (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
consumer.view_join_policy¶
Beschreibung: Legt fest, welche Spalten Benutzer in einem Reinraum sicher verknüpfen können. Dies wird vom Verbraucher für Verbraucher-Datensets festgelegt.
Argumente: cleanroom_name (string)
Rückgabe: Die Verknüpfungsrichtlinie (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_join_policy($cleanroom_name);
consumer.view_provider_join_policy¶
Beschreibung: Legt fest, welche Spalten Benutzer in einem Reinraum sicher verknüpfen können. Dies wird vom Anbieter für Anbieter-Datensets festgelegt.
Argumente: cleanroom_name (string)
Rückgabe: Die Verknüpfungsrichtlinie (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
consumer.view_added_templates¶
Beschreibung: Zeigt alle aktiven Vorlagen im Clean Room an. Wenn eine Vorlage durch Anwendung des Arguments is_obfuscated
unkenntlich gemacht wurde, müssen Sie die Snowflake Enterprise Edition oder höher verwenden, um die Vorlage anzeigen zu können.
Argumente: cleanroom_name (string)
Rückgabe: Die hinzugefügten Vorlagen (Tabelle)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_added_templates($cleanroom_name);
library.is_consumer_run_enabled¶
Beschreibung: Prüft, ob in diesem Clean Room die vom Verbraucher durchgeführte Analyse aktiviert ist. Dieses Flag bestimmt, ob der Clean Room-Verbraucher (Installierer) eine Analyse in diesem Clean Room durchführen kann.
Argumente: cleanroom_name (string)
Rückgabe: aktiviert Nachricht (string)
Beispiel:
CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
consumer.view_cleanrooms¶
Beschreibung: Zeigt alle Reinräume an, die mit diesem Konto verknüpft sind (installiert) oder verknüpft werden können. Um nur die installierten Clean Rooms anzuzeigen, führen Sie consumer.view_installed_cleanrooms
aus.
Argumente: Keine
Rückgabe: (Tabelle) Alle installierten oder eingeladenen Clean Rooms für dieses Konto.
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_cleanrooms();
consumer.view_installed_cleanrooms¶
Beschreibung: Liste aller in diesem Konto installierten (verknüpften) Clean Rooms. Um sowohl verknüpfte als auch nicht verknüpfte Clean Rooms zu sehen, rufen Sie consumer.view_cleanrooms
auf. Um alle in diesem Konto erstellten Clean Rooms anzuzeigen, rufen Sie provider.view_cleanrooms
auf.
Argumente: Keine
Rückgabe: (Tabelle) Die in diesem Konto installierten Clean Rooms.
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.view_installed_cleanrooms();
Differential Privacy¶
Diese Befehle steuern die differentielle Privatsphäre im Reinraum. Sie können auch eine differentielle Privatsphäre auf Vorlagenebene festlegen, wenn Sie consumer.enable_templates_for_provider_run
aufrufen.
Erfahren Sie mehr über die Verwaltung der differentiellen Privatsphäre
consumer.is_dp_enabled¶
Beschreibung: Prüft, ob die differentielle Privatsphäre im Reinraum aktiviert wurde.
Argumente: cleanroom_name (string)
Rückgabe: Ob der Reinraum DP aktiviert hat (boolean)
Beispiel:
call samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
consumer.view_remaining_privacy_budget¶
Beschreibung: Zeigt das verbleibende Datenschutzbudget an, das für Abfragen aus dem Reinraum verwendet werden kann. Sobald das Budget erschöpft ist, sind weitere Aufrufe von „run_analysis“ erst wieder möglich, nachdem das Budget zurückgesetzt wurde. Das Budget wird täglich neu festgelegt.
SELECT cleanroom_name FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE is_already_installed = TRUE;
Argumente: cleanroom_name (string)
Rückgabe: Das verbleibende Budget für die Privatsphäre (Float)
Beispiel:
call samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
consumer.set_privacy_settings¶
Beschreibung: Legt die Datenschutzeinstellungen für vom Anbieter durchgeführte Analysen (einschließlich Aktivierung) fest, die benutzerdefinierte Vorlagen verwenden. Löscht alle zuvor eingestellten Werte. Jedes Mal, wenn Sie diese Methode aufrufen, werden alle vorherigen Konfigurationseinstellungen gelöscht.
Argumente:
cleanroom_name (string) - Name des Clean Room, auf den diese Einstellungen angewendet werden sollen.
privacy_settings (string) - Ein Zeichenfolgen-JSON-Objekt, das die Datenschutzeinstellungen angibt, wenn benutzerdefinierte Vorlagen von einem Anbieter ausgeführt werden. Hier ist die Syntax des Objekts:
'{ "null" : <template_config> }'
template_config
ist ein Objekt mit Einstellungen für differentielle Privatsphäre und Aggregation. Unter Verfügbare Datenschutzeinstellungen erfahren Sie, welche Felder Sie in diesem Objekt bereitstellen können.
Beispiel:
-- Apply differential privacy for provider-run analysis using all custom templates.
CALL samooha_by_snowflake_local_db.consumer.set_privacy_settings(
$cleanroom_name,
PARSE_JSON('{
"null":{ "differential": 1, "epsilon": 0.1, "privacy_budget": 3 }
}')
);
Rückgabe: Eine Erfolgsmeldung als Zeichenfolge.
Snowpark Container Services-Befehle¶
Lesen Sie mehr über den Einsatz von Snowplark Container Services in Ihren Clean Rooms.
consumer.start_oder_update_dienst¶
Beschreibung: Erzeugt und startet die neueste Version von SPCS, die vom Anbieter in diesem Clean Room definiert wurde. Jedes Mal, wenn der Anbieter provider.load_service_into_cleanroom
aufruft, um einen Container zu erstellen oder zu aktualisieren, muss der Verbraucher consumer.start_or_update_service
aufrufen, um den Dienst zu aktualisieren.
Der Verbraucher muss den Pool definieren und starten, bevor er diese Prozedur aufruft.
Argumente:
cleanroom_name (string) - Name des Clean Room, in den der Container geladen werden soll.
compute_pool_name (string) - Der Name eines vom Verbraucher in diesem Clean Room definierten Computepools. Der Pool muss bereits angelegt sein, und der Clean Room muss über Berechtigungen für den Zugriff auf den Pool verfügen.
service_options (Objekt, optional) - Ein Objekt, das Parameter für diesen Dienst angibt. Die folgenden Eigenschaften werden unterstützt:
query_warehouse
- (Zeichenfolge, optional) Name des Warehouse, das für diesen Dienst verwendet werden soll. Es muss sich nicht um dasselbe Warehouse handeln, in dem auch der Clean Room ausgeführt wird.min_instances
- (Ganzzahl, optional) Mindestanzahl der Instanzen, die für diesen Dienst verwendet werden sollen.max_instances
- (Ganzzahl, optional) Höchstanzahl der Instanzen, die für diesen Dienst verwendet werden sollen.
Rückgabe: (Tabelle) Ergebnisse des Ladevorgangs, falls erfolgreich. Gibt einen Fehler aus, wenn er nicht erfolgreich ist.
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.start_or_update_service(
$cleanroom_name,
'dcr_lal_pool',
object_construct(
'query_warehouse', 'app_wh',
'min_instances', '1',
'max_instances', '1'
));
Allgemeine Hilfsmethoden¶
Verwenden Sie die folgenden Methoden, um die allgemeine Funktionalität des Reinraums zu unterstützen.
consumer.set_cleanroom_ui_accessibility¶
Beschreibung: Zeigt oder verbirgt Reinräume in der Web-App für Verbraucher im aktuellen Konto.
Argumente:
cleanroom_name (string) – Der Name des Reinraums.
visibility_status (string) – Einer der folgenden Werte (Groß- und Kleinschreibung beachten):
HIDDEN – Verbirgt den angegebenen Reinraum in der Web-App vor allen Benutzern des aktuellen Verbraucherkontos. Der Reinraum wird weiterhin über API erreichbar sein.
EDITABLE – Macht den Reinraum in der Web-App sichtbar.
Rückgabe: Erfolgsmeldung (string)
Beispiel:
CALL samooha_by_snowflake_local_db.consumer.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
library.enable_local_db_auto_upgrades¶
Beschreibung: Aktiviert die Aufgabe samooha_by_snowflake_local_db.admin.expected_version_task
, die automatisch ein Upgrade der Snowflake Native App für Snowflake Data Clean Rooms durchführt, sobald neue Versionen veröffentlicht werden.
Argumente: Keine
Rückgabe: Erfolgsmeldung (string)
Beispiel:
CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
library.disable_local_db_auto_upgrades¶
Beschreibung: Deaktiviert die Aufgabe samooha_by_snowflake_local_db.admin.expected_version_task
, die automatisch ein Upgrade der Snowflake Native App für Snowflake Data Clean Rooms durchführt, wenn neue Versionen veröffentlicht werden.
Argumente: Keine
Rückgabe: Erfolgsmeldung (string)
Beispiel:
CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();