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

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

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

Argumente: cleanroom_name (string)

Liefert: ist aktiviert (boolean)

Beispiel:

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

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

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

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

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

consumer.setup_cleanroom_request_share_for_laf

Beschreibung: Ermöglicht das Cloud-übergreifende Teilen von Anfragen mit einem bestimmten Anbieter für einen bestimmten Clean Room. Dies ist erforderlich, damit regionsübergreifende Clean Rooms voll funktionsfähig sind, einschließlich Anfrageprotokollen, Kundenvorlagenanfragen und vom Anbieter durchgeführte Analysen.

Argumente:

Rückgabe: (Zeichenfolge) Erfolgsmeldung.

Beispiel:

CALL samooha_by_snowflake_local_db.consumer.setup_cleanroom_request_share_for_laf(
      $cleanroom_name, $provider_account_name);
Copy

consumer.setup_activation_share_to_laf_consumer

Beschreibung: Ermöglicht die Anbieteraktivierung zwischen einem Anbieter und einem Verbraucher in verschiedenen Cloudregionen.

Argumente:

Rückgabe: (Zeichenfolge) Erfolgsmeldung.

Beispiel:

CALL samooha_by_snowflake_local_db.consumer.setup_activation_share_to_laf_consumer('org1.locator1,org2.locator2');
Copy

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

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 Sie consumer.is_dp_enabled aufrufen. Sie können die Datenschutzeinstellungen anpassen, indem Sie consumer.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']} 
  });
Copy

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 von consumer.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 Array source_table aufzufüllen, das der Vorlage zur Verfügung steht. Die Syntax für jeden Tabellennamen lautet cleanroom_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 Array my_table aufzufüllen, das der Vorlage zur Verfügung steht. Verwenden Sie dieselbe Syntax, die dem Argument consumer_tables von consumer.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'
    )
);
Copy

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

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

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']);
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.

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

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

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

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

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);
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 – 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']);
Copy

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

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

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']);
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.

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

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']);
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.

Argumente: schema_name (array)

Rückgabe: Erfolgsmeldung (string)

Beispiel:

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

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

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

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

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

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

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

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']);
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.

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

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

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

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

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

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

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 Sie consumer.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 Sie consumer.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 Sie consumer.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 Alias p oder c angefügt wurde, verwenden Sie die Tabellenaliasse p und c in Kleinbuchstaben für die Spaltennamen. Also p.age_band, nicht P.age_band. Dieses Objekt hat einen optionalen reservierten Wert:

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

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

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

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

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 %};
  $$);
Copy

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

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

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

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

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

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

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

Argumente: cleanroom_name (string)

Rückgabe: Die Verknüpfungsrichtlinie (Tabelle)

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.

Argumente: cleanroom_name (string)

Rückgabe: Die Verknüpfungsrichtlinie (Tabelle)

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

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

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

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

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

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

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>
    }'
    
    Copy

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

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

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

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

Argumente: Keine

Rückgabe: Erfolgsmeldung (string)

Beispiel:

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy