Partage de données avec des tables dynamiques

Les tables dynamiques sont des objets partageables. Pour partager une table dynamique, les fournisseurs de partage de données accordent des privilèges sur une table dynamique à un partage, qui peut à son tour être utilisée par les consommateurs de partage de données.

Comment les données sont-elles partagées avec les tables dynamiques ?

Pour partager une table dynamique avec d’autres comptes Snowflake, vous pouvez ajouter des tables dynamiques à un partage ou à un paquet d’application.

Un fournisseur de partage de données peut choisir d’accorder le privilège SELECT à une seule table dynamique ou d’accorder le privilège SELECT à toutes les tables dynamiques d’une base de données, comme le montrent les exemples suivants.

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

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

Pour plus de détails, voir GRANT <privilège> … TO SHARE.

Créer une table dynamique pour ingérer des données partagées

Lorsque vous utilisez une table dynamique pour intégrer des données partagées, la requête ne peut pas effectuer de sélection à partir d’une table dynamique partagée ou d’une vue sécurisée partagée faisant référence à une table dynamique en amont.

Pour créer une table dynamique afin d’ingérer des données partagées, procédez comme suit :

  1. Assurez-vous que vous disposez des privilèges appropriés, créez une base de données à partir d’un partage et accordez-lui des privilèges.

    CREATE DATABASE my_shared_db FROM SHARE provider_account.share1;
    
    Copy
  2. Accordez les privilèges à la base de données partagée.

  3. Créez une table dynamique partagée.

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

Note

Le suivi des modifications doit être activé pour tous les objets sous-jacents utilisés par une table dynamique. Pour utiliser une table dynamique afin d’ingérer des données partagées, le fournisseur de partage de données doit activer change_tracking sur l’objet partagé. Pour plus d’informations, voir Activer le suivi des modifications.