Data Sharing und dynamische Tabellen

Dynamische Tabellen sind freigabefähige Objekte. Um eine dynamische Tabelle freizugeben, erteilen Data-Sharing-Anbieter einer Freigabe die Berechtigungen für eine dynamische Tabelle, und diese Freigabe kann dann von Data-Sharing-Verbrauchern genutzt werden.

Freigeben von Daten für dynamische Tabellen

Um eine dynamische Tabelle mit anderen Snowflake-Konten gemeinsam zu nutzen, können Sie dynamische Tabellen zu einer Freigabe oder einem Anwendungspaket hinzufügen.

  • Um eine dynamische Tabelle mit Konten in Ihrer Region zu teilen, können Sie eine direkte Freigabe verwenden. Weitere Informationen dazu finden Sie unter Datenfreigabe und Zusammenarbeit in Snowflake.

  • Um eine dynamische Tabelle mit Konten in anderen Regionen zu teilen, fügen Sie die Freigabe oder das Anwendungspaket als Datenprodukt zu einem Freigabeangebot hinzu und richten Sie Cloud-übergreifende automatische Ausführung ein. Weitere Informationen finden Sie unter Ein Freigabeangebot erstellen und veröffentlichen.

Ein Data-Sharing-Anbieter kann entweder die SELECT-Berechtigung für eine einzelne dynamische Tabelle oder die SELECT-Berechtigung für alle dynamischen Tabellen in einer Datenbank erteilen, wie in den folgenden Beispielen gezeigt.

GRANT SELECT ON ALL DYNAMIC TABLES IN SCHEMA mydb.public TO SHARE share1;

GRANT SELECT ON DYNAMIC TABLE mydb.public TO SHARE share1;
Copy

Weitere Details dazu finden Sie unter GRANT <Berechtigung> … TO SHARE.

Dynamischen Tabelle zum Erfassen freigegebener Daten erstellen

Wenn Sie eine dynamische Tabelle zum Aufnehmen freigegebener Daten verwenden, kann die Abfrage kein SELECT auf einer freigegebenen dynamischen Tabelle oder einer freigegebenen sicheren Ansicht ausführen, die eine vorgelagerte dynamische Tabelle referenziert.

Gehen Sie wie folgt vor, um eine dynamische Tabelle zu erstellen, die freigegebene Daten erfasst:

  1. Vergewissern Sie sich, dass Sie über die notwendigen Berechtigungen verfügen, und erstellen Sie dann eine Datenbank aus einer Freigabe und erteilen Sie Berechtigungen für diese.

    CREATE DATABASE my_shared_db FROM SHARE provider_account.share1;
    
    Copy
  2. Erteilen Sie Berechtigungen für die freigegebene Datenbank.

  3. Erstellen Sie eine freigegebene dynamische Tabelle.

CREATE OR REPLACE DYNAMIC TABLE my_dynamic_table
  TARGET_LAG = '1 day'
  WAREHOUSE = mywh
  AS
    SELECT * FROM my_shared_db.public.mydb;
Copy

Bemerkung

Die Änderungsverfolgung muss für alle zugrunde liegenden Objekte, die von einer dynamischen Tabelle verwendet werden, aktiviert sein. Um eine dynamische Tabelle zum Erfassen freigegebener Daten zu verwenden, muss der Data-Sharing-Anbieter change_tracking für das freigegebene Objekt aktivieren. Weitere Informationen dazu finden Sie unter Änderungsverfolgung aktivieren.