Snowflake Data Clean Rooms: Verbraucher-API-Referenzhandbuch

Der folgende Inhalt beschreibt alle Entwickler-APIs, die von Snowflake Data Clean Rooms für Verbraucher bereitgestellt werden. Alle Funktionen befinden sich innerhalb des folgenden Schemas:

samooha_by_snowflake_local_db.consumer
Copy

Umgebung einrichten

Führen Sie die folgenden Befehle aus, um die Snowflake-Umgebung einzurichten, bevor Sie Entwickler-APIs für die Arbeit mit einem Snowflake Data Clean Room verwenden. Wenn Sie nicht über die Rolle SAMOOHA_APP_ROLE verfügen, wenden Sie sich an Ihren Kontoadministrator.

use role samooha_app_role;
use warehouse app_wh;
Copy

Vergeben Sie einen Namen für den Reinraum, den der Anbieter für Sie freigegeben hat:

set cleanroom_name = 'Test Cleanroom 1';
Copy

Reinraum installieren

Installieren Sie den Reinraum, den der Anbieter freigegeben hat, mit den folgenden Befehlen:

consumer.install_cleanroom

Beschreibung: Installiert den Reinraum auf dem Verbraucherkonto mit dem zugehörigen Anbieter und dem ausgewählten Reinraum.

Eingabe: cleanroom_name (string), provider_account_locator (string)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.install_cleanroom($cleanroom_name, '<PROVIDER_ACCOUNT_LOCATOR>');
Copy

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“.

Eingabe: cleanroom_name (string)

Ausgabe: is enabled (boolean)

Beispiel:

call samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
Copy

consumer.uninstall_cleanroom

Beschreibung: Deinstalliert den Reinraum auf dem Verbraucherkonto. Dadurch werden alle mit dem Reinraum verbundenen Datenbanken entfernt, einschließlich der freigegebenen Reinraum-Datenbank. Beachten Sie, dass der Reinraum jederzeit mit consumer.install_cleanroom erneut installiert werden kann.

Eingabe: cleanroom_name (string)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Copy

Provider Run Analysis einrichten

library.is_provider_run_enabled

Beschreibung: Prüft, ob in diesem Reinraum Provider Run Analysis aktiviert ist. Hinweis: Die explizite Genehmigung muss noch erteilt werden, indem Sie consumer.enable_templates_for_provider_run aufrufen (siehe unten).

Eingabe: cleanroom_name (string)

Ausgabe: enabled message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

library.is_consumer_run_enabled

Beschreibung: Prüft, ob in diesem Reinraum die Consumer Run Analysis aktiviert ist. Dieses Flag bestimmt, ob der Reinraum-Verbraucher (Installierer) Analysen ausführen oder als Datenlieferant für die Zusammenarbeit fungieren kann.

Eingabe: cleanroom_name (string)

Ausgabe: enabled message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Copy

consumer.enable_templates_for_provider_run

Beschreibung: Wenn in einem Reinraum die Provider Run Analysis aktiviert ist (d. h. der Anbieter des Reinraums hat den Reinraum so markiert, dass Anbieter Analysen ausführen können), muss diese Prozedur vom Verbraucher aufgerufen werden, um sie zu aktivieren. Dieses Verfahren wird benötigt, um Anbietern, die eine Analyse ausführen möchten, eine explizite Genehmigung für jede einzelne Vorlage zu erteilen.

Der letzte boolesche Parameter ermöglicht es dem Verbraucher, die differentielle Privatsphäre für die Analysen des Anbieters zu aktivieren, wenn er auf TRUE gesetzt ist.

Eingabe: cleanroom_name (string), template_names (array), enable_differential_privacy(boolean)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run($cleanroom_name, ['prod_overlap_analysis'], FALSE);
Copy

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.

Eingabe: db_name (string)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.register_db('SAMOOHA_SAMPLE_DATABASE');
Copy

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.

Eingabe: schema_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

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.

Eingabe: schema_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.register_table_or_view

Beschreibung: Registriert Tabellen und Ansichten aller Art.

Eingabe: 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);
Copy

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);
Copy

library.register_table

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.

Eingabe: table_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_managed_access_table

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.

Eingabe: table_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

bibliothek.register_view

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.

Eingabe: view_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_managed_access_view

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.

Eingabe: view_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

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.

Eingabe: db_name (string)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
Copy

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.

Eingabe: schema_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

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.

Eingabe: schema_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.unregister_table_or_view

Beschreibung: Hebt die Registrierung von Tabellen und Ansichten aller Art auf.

Eingabe: 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);
Copy

library.unregister_table

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.

Eingabe: table_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_managed_access_table

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).

Eingabe: table_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_view

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.

Eingabe: view_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_managed_access_view

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).

Eingabe: view_name (array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

Datensets hinzufügen

Festlegen von Sicherheitsrichtlinien für Provider Run Analysis

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.

Eingabe: cleanroom_name(string), table_and_col_names(array)

Ausgabe: success message (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.set_join_policy($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:EMAIL', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:EMAIL']);
Copy

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.

Eingabe: cleanroom_name(string), analysis_and_table_and_columns(array)

Ausgabe: success message (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',
 'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:CAMPAIGN']);
Copy

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.

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.

Eingabe: cleanroom_name (string), template_name (string)

Ausgabe: The template definition (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
Copy

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.

Eingabe: cleanroom_name (string), template_name (string)

Ausgabe: Argument list and specification (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.get_arguments_from_template($cleanroom_name, 'prod_overlap_analysis');
Copy

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 Verwendung der Entwickler-APIs zur sequenziellen Ausführung von Vorlagen.

consumer.view_added_template_chains

Beschreibung: Zeigt die derzeit im Reinraum aktiven Vorlagenketten an.

Eingabe: cleanroom_name (string)

Ausgabe: Die hinzugefügten Vorlagenketten (Tabelle)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_added_template_chains($cleanroom_name);
Copy

consumer.view_template_chain_definition

Beschreibung: Gibt die Attribute einer Vorlagenkette zurück.

Eingabe: cleanroom_name (string), template_chain_name (string)

Ausgabe: Die Definition der Vorlagenkette (string)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_template_chain_definition($cleanroom_name, 'insights_chain');
Copy

consumer.get_arguments_from_template_chain

Beschreibung: Gibt die erwarteten Argumente für alle Vorlagen in der Vorlagenkette zurück.

Eingabe: cleanroom_name (string), template__chain_name (string)

Ausgabe: Argument list and specification (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.get_arguments_from_template_chain($cleanroom_name, 'insights_chain');
Copy

Analysen und Aktivierungen ausfü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 unter Verwendung einer Vorlage oder Vorlagenkette aus. Die Tabellen für Verbraucher und Anbieter müssen separat angegeben werden, und bestimmte Eingaben können leer sein, wenn sie nicht erforderlich sind. Die Vorlage oder Vorlagenkette führt die Logik aus, die für die spezifische Analyse konfiguriert wurde, und gibt die verknüpften Daten als Tabelle zurück. Die einzige optionale Eingabe ist „epsilon“, d. h. wie viel von dem unterschiedlichen Datenschutzbudget die Abfrage verbrauchen soll. Wenn nicht angegeben, ist der Standardwert 0,1.

Eingabe: cleanroom_name (string), {template_name | template_chain_name} (string), consumer_tables (array), provider_tables (array), analysis_arguments (object)

Ausgabe: Template calculations output (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.run_analysis(
  $cleanroom_name, -- cleanroom
  'prod_overlap_analysis', -- template name

  ['SAMOOHA_SAMPLE_DATABASE.MYDATA.CONVERSIONS'],  -- Consumer tables
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES'],     -- Provider tables

  object_construct(                 -- Rest of the custom arguments needed for the template
    'dimensions', ['p.CAMPAIGN'],   -- always use p. to refer to fields in provider tables, and c. to refer to fields in consumer tables. Use p2, p3, etc. for more than one provider table and c2, c3, etc. for more than one consumer table.
    'measure_column', ['p.EXP_COST'],
    'measure_type', ['COUNT'],
    'where_clause', 'p.EMAIL=c.EMAIL'
  )
);
Copy

consumer.run_activation

Beschreibung: Führt eine Vorlage aus, die die Ergebnisse zur Aktivierung an den Anbieter zurücksendet.

Weitere Informationen über die Aktivierung von Ergebnissen für den Anbieter finden Sie unter Verwendung von Entwickler-APIs zur Aktivierung von Ergebnissen für den Anbieter.

Eingabe: cleanroom_name (string), segment_name (string), template_name (string), consumer_tables (array), provider_tables (array), activation_arguments (object)

Ausgabe: Erfolgsmeldung

Beispiel:

call samooha_by_snowflake_local_db.consumer.run_activation(
  $cleanroom_name,
  'my_activation_segment',
  'activation_custom_template',
  ['consumer_source_table'], 
  ['provider_source_table'],
  object_construct(                 -- Custom arguments needed for the template
    'dimensions', ['p.CAMPAIGN'],   -- always use p. to refer to fields in provider tables, and c. to refer to fields in consumer tables. Use p2, p3, etc. for more than one provider table and c2, c3, etc. for more than one consumer table.
    'where_clause', 'p.EMAIL=c.EMAIL'
  ));
Copy

Verbraucherdefinierte Vorlagen

Mit den folgenden APIs können Sie verbraucherdefinierte Vorlagen zu einem Reinraum hinzufügen. Weitere Informationen finden Sie unter Mit der Entwickler-API verbraucherdefinierte Vorlagen hinzufügen.

consumer.create_template_request

Beschreibung: Sendet eine Anfrage an den Anbieter eines Reinraums mit der Bitte, eine benutzerdefinierte Vorlage zu genehmigen, damit sie dem Reinraum hinzugefügt werden kann.

Input: cleanroom_name (string), template_name (string), template_definition (string)

Ausgabe: success message (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 %};
  $$);
Copy

consumer.list_template_requests

Beschreibung: Listet die Anfragen auf, die der Verbraucher gestellt hat, um eine Vorlage zu einem Reinraum hinzuzufügen.

Eingabe: cleanroom_name (string)

Ausgabe: 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');
Copy

Getter-Methoden für Reinraum-Metadaten

Die folgenden Methoden zeigen relevante Eigenschaften des Reinraums:

consumer.describe_cleanroom

Beschreibung: Erstellt eine Textzusammenfassung mit allen Informationen darüber, was dem Reinraum hinzugefügt wurde, einschließlich Vorlagen, Datensets, Richtlinien usw.

Eingabe: cleanroom_name(string)

Ausgabe: Extensive description string of cleanroom (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.describe_cleanroom($cleanroom_name);
Copy

consumer.view_provider_datasets

Beschreibung: Zeigt alle Datensets an, die vom Anbieter zum Reinraum hinzugefügt wurden.

Eingabe: cleanroom_name(string)

Ausgabe: All the provider dataset names in cleanroom (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
Copy

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.

Eingabe: cleanroom_name (string)

Ausgabe: The join policy (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_join_policy($cleanroom_name);
Copy

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.

Eingabe: cleanroom_name (string)

Ausgabe: The join policy (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
Copy

consumer.view_added_templates

Beschreibung: Zeigt alle aktiven Vorlagen im Reinraum an.

Eingabe: cleanroom_name (string)

Ausgabe: The added templates (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_added_templates($cleanroom_name);
Copy

consumer.view_column_policy

Beschreibung: Zeigt alle Spaltenrichtlinien an, die vom Verbraucher auf den Reinraum angewendet wurden.

Eingabe: cleanroom_name (string)

Ausgabe: The column policy (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_column_policy($cleanroom_name);
Copy

consumer.view_provider_column_policy

Beschreibung: Zeigt alle Spaltenrichtlinien an, die vom Anbieter auf den Reinraum angewendet wurden.

Eingabe: cleanroom_name (string)

Ausgabe: The column policy (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Copy

consumer.view_cleanrooms

Beschreibung: Zeigt alle kürzlich erstellten Reinräume an, sortiert nach dem Datum, an dem sie erstellt wurden.

Eingabe:

Ausgabe: All existing cleanrooms ordered by create date (table)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_cleanrooms();
Copy

consumer.is_dp_enabled

Beschreibung: Prüft, ob die differentielle Privatsphäre im Reinraum aktiviert wurde.

Eingabe: cleanroom_name(string)

Ausgabe: Whether the cleanroom has DP enabled (boolean)

Beispiel:

call samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
Copy

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.

Wenn die differentielle Privatsphäre nicht aktiviert ist, wird das Budget für die Privatsphäre auf einen beliebig hohen Wert (z. B. 10.000) gesetzt und nicht aufgebraucht.

Eingabe: cleanroom_name (string)

Ausgabe: The remaining privacy budget (float)

Beispiel:

call samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

Allgemeine Hilfsmethoden

Verwenden Sie die folgenden Methoden, um die Funktionalität von Reinräumen allgemein zu nutzen.

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.

Eingabe: Keine

Ausgabe: success message (string)

Beispiel:

CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
Copy

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.

Eingabe: Keine

Ausgabe: success message (string)

Beispiel:

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy