Snowflake Data Clean Rooms: Externe und Iceberg-Tabellen¶
Wenn externe Tabellen und Iceberg-Tabellen in einem Reinraum verbunden sind, gibt es externe Aufrufe, die es einem Teilnehmer ermöglichen könnten, sensible Informationen aus dem Reinraum zu extrahieren. Aus diesem Grund müssen sowohl der Anbieter als auch der Verbraucher zustimmen, bevor die andere Partei diese Objekte im Reinraum verwenden kann.
Für Beschränkungen bei der Einbeziehung von externen Tabellen und Iceberg-Tabellen in einen Reinraum, siehe Einschränkungen.
Web-App-Reinräume¶
Um die Einbeziehung von externen Tabellen und Iceberg-Tabellen in Reinräumen zu kontrollieren, die in der Web-App erstellt und installiert wurden, konfigurieren Administratoren von Anbietern und Verbrauchern ihre Reinraumumgebung so, dass diese Objekte explizit zugelassen werden.
Bei Reinräumen, die von einem Anbieter mit einem Verbraucher geteilt werden, kann der Verbraucher keine externen Tabellen und Iceberg-Tabellen einbeziehen, es sei denn, der Anbieter erlaubt diese ausdrücklich für die Reinraumumgebung des Anbieters.
Für Verbraucher können Reinraum mit externen Tabellen oder Iceberg-Tabellen einrichten, es sei denn, die Reinraumumgebung erlaubt dies. Selbst wenn die Reinraumumgebung des Verbrauchers diese Objekte zulässt, werden Benutzer von Reinräumen gewarnt, wenn diese Arten von Tabellen verknüpft wurden, sodass sie entscheiden können, den Reinraum nicht zu installieren.
So konfigurieren Sie eine Reinraumumgebung, um externe Tabellen und Iceberg-Tabellen zuzulassen:
Führen Sie eine der folgenden Aktionen aus:
Wenn Sie ein verwaltetes Konto verwenden, wählen Sie Admin » My Account aus.
Wenn Sie ein Snowflake-Konto verwenden, wählen Sie Admin » Snowflake Admin und melden Sie sich in Snowflake als Benutzer mit der Rolle ACCOUNTADMIN an.
Aktivieren Sie den Umschalter External & Iceberg Tables.
Entwickler-API-Reinräume¶
Das Zulassen von externen Tabellen und Iceberg-Tabellen in einem Reinraum, der mit dem Entwickler-APIs erstellt und installiert wurde, ist ein zweistufiger Prozess:
Zunächst erlaubt ein Benutzer mit der Rolle ACCOUNTADMIN diese Arten von Tabellen für die gesamte Reinraumumgebung.
Dann erlauben Reinraumbenutzer diese Objekte für bestimmte Reinräume, wenn diese erstellt oder installiert werden.
Externe Tabellen und Iceberg-Tabellen in der Umgebung von Reinräumen zulassen¶
Der Kontoadministrator sowohl des Anbieters als auch des Verbrauchers muss externe Tabellen und Iceberg-Tabellen in der Umgebung des Reinraums ausdrücklich erlauben, bevor einzelne Benutzer sie in einem Reinraum erlauben können.
Um externe Tabellen und Iceberg-Tabellen in einer Reinraumumgebung zuzulassen, führt der Kontoadministrator Folgendes aus:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
Externe Tabellen und Iceberg-Tabellen in einem bestimmten Reinraum zulassen¶
Der Anbieter, der einen Reinraum erstellt, und der Verbraucher, der ihn installiert, müssen externe Tabellen und Iceberg-Tabellen im Reinraum zulassen.
- Anbieter:
Bevor sie eine externe Tabelle oder eine Iceberg-Tabelle mit einem Reinraum verknüpfen können, muss der Anbieter den Befehl
providers.enable_external_tables_for_cleanroom
aufrufen. Wenn der Anbieter z. B. eine Iceberg-Tabelle zum Reinrauminsights_cleanroom
hinzufügen möchte, muss er Folgendes ausführen:CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom( 'insights_cleanroom');
- Verbraucher:
Nachdem ein Verbraucher einen Reinraum installiert hat, kann er die Einbeziehung von externen Tabellen oder Iceberg-Tabellen durch den Anbieter durch Ausführen des Befehls
consumers.enable_external_tables_for_cleanroom
genehmigen. Wenn der Verbraucher z. B. einen Reinraumoverlap_cleanroom
installiert hat, der eine Iceberg-Tabelle enthält, muss er diesen ausführen:CALL samooha_by_snowflake_local_db.consumer.enable_external_tables_for_cleanroom( 'overlap_cleanroom');
Eine externe Tabelle oder eine Iceberg-Tabelle registrieren¶
Wie bei anderen Objekten müssen auch externe Tabellen und Iceberg-Tabellen registriert werden, bevor sie verknüpft werden können. Verwenden Sie den entsprechenden Parameter des Befehls library.register_table_or_view
, um den Tabellentyp anzugeben.
- Externe Tabelle
Der vierte Parameter des Befehls
library.register_table_or_view
gibt an, ob ein Objekt eine externe Tabelle ist. Um zum Beispiel eine externe Tabellemy_ext_table
im Schemasamooha_sample_database.demo
zu registrieren, führen Sie Folgendes aus:CALL samooha_by_snowflake_local_db.library.register_table_or_view( ['SAMOOHA_SAMPLE_DATABASE.DEMO.MY_EXT_TABLE'], false, false, true, false);
- Iceberg-Tabelle
Der dritte Parameter des Befehls
library.register_table_or_view
gibt an, ob ein Objekt eine Iceberg-Tabelle ist. Um zum Beispiel die Iceberg-Tabellecustomers
im Schemasamooha_sample_database.demo
zu registrieren, führen Sie Folgendes aus:CALL samooha_by_snowflake_local_db.library.register_table_or_view( ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], false, true, false, false);
Einschränkungen¶
Da verwaltete Konten immer externe Tabellen verwenden, müssen Anbieter externe Tabellen und Iceberg-Tabellen aktivieren, wenn sie einen Reinraum mit einem verwalteten Konto teilen.
Teilnehmer in verschiedenen Regionen können keine externen Tabellen und Iceberg-Tabellen in Reinräumen verknüpfen.
Sie können keine Analyse mit der SQL-Abfragevorlage durchführen, wenn deren Konfiguration eine Aggregationsrichtlinie oder Projektionsrichtlinie auf die externe Tabelle oder die Iceberg-Tabelle anwendet.