Partage sécurisé des données entre les régions et les plateformes Cloud¶
Cette rubrique fournit des instructions sur l’utilisation de la réplication pour permettre aux fournisseurs de données de partager en toute sécurité des données avec des consommateurs de données dans différentes régions et plateformes Cloud.
Note
Si vous partagez des données avec d’autres comptes à l’aide d’annonces proposées à des consommateurs spécifiques, ou sur Snowflake Marketplace, vous pouvez utiliser l’exécution automatique inter-Cloud pour exécuter automatiquement votre produit de données dans d’autres régions. La réplication automatique n’est pas prise en charge pour les annonces partagées avec un échange de données.
Le partage de données entre régions est pris en charge par les comptes Snowflake hébergés sur l’une des plateformes Cloud suivantes :
Amazon Web Services (AWS)
Google Cloud Platform (GCP)
Microsoft Azure (Azure)
Important
Si vous répliquez une base de données primaire vers des comptes dans une région géographique différente ou un pays différent de la région/du pays dans laquelle ou lequel se trouve votre compte Snowflake source, vous devez confirmer que votre entreprise n’est soumise à aucune restriction légale ou réglementaire en ce qui concerne l’emplacement où vos données peuvent être transférées ou hébergées.
Dans ce chapitre :
Considérations relatives au partage de données¶
Étant donné que le partage de données interrégional utilise la fonctionnalité de réplication de données Snowflake, vous devez comprendre comment la réplication fonctionne dans Snowflake dans le cadre de votre processus de planification. Pour plus d’informations, voir :
Les fournisseurs de données n’ont besoin que de créer une copie de l’ensemble de données par région ; et non une copie par consommateur.
Lors du partage d’une vue référençant des objets dans plusieurs bases de données, chacune de ces autres bases de données doit être incluse dans le groupe de réplication. Le partage de données provenant de plus d’une base de données nécessite des étapes supplémentaires. Pour obtenir des instructions, voir Partage des données de plusieurs bases de données.
Vous pouvez partager du contenu vers un Virtual Private Snowflake (VPS) à l’aide d’une annonce si le client VPS a activé la réplication automatique. Voir Prise en charge de la réplication automatique dans Virtual Private Snowflake pour plus de détails. Le partage vers et depuis VPS n’est pas pris en charge à l’aide d’un partage direct.
Partage de données avec des consommateurs de données dans une région et une plateforme Cloud différentes¶
Les fournisseurs de données Snowflake peuvent partager des données avec des consommateurs de données d’une autre région en quelques étapes simples.
Étape 1 : Configurer la réplication de données¶
Note
Avant de configurer la réplication de données, vous devez créer un compte dans une région où vous souhaitez partager des données et le lier à votre compte local. Pour plus d’informations, voir Gestion des organisations et des comptes.
La configuration de la réplication des données implique les tâches suivantes :
Autorisez la réplication pour vos comptes.
Un utilisateur ayant le rôle ORGADMIN doit activer la réplication pour le compte source qui contient les données à partager et les comptes cibles des régions dans lesquelles vous souhaitez partager les données avec les consommateurs. Pour savoir comment activer la réplication, voir Condition préalable : activer la réplication des comptes dans l’organisation. Pour plus d’informations sur le rôle ORGADMIN, voir Premiers pas avec les organisations.
Créez un groupe de réplication et ajoutez des bases de données et des partages.
Répliquez le groupe avec les bases de données et les partages dans les régions dans lesquelles vous souhaitez partager les données avec des consommateurs.
Étape 2. Partage des données avec des consommateurs de données¶
Le partage des données avec des consommateurs de données de la même région implique l’ajout d’un ou de plusieurs comptes consommateurs aux partages secondaires que vous avez répliqués à partir du compte source.
Pour des instructions détaillées, voir Premiers pas avec le partage de données sécurisé.
Exemple 1 : Partager les données¶
Acme, un fournisseur de données, souhaite partager des données avec des consommateurs de données d’une autre région.
Exécuter à partir du compte source¶
Pour créer un groupe de réplication contenant les bases de données et les partages à répliquer dans une autre région, exécutez l’instruction SQL suivante.
Note
Si vous avez précédemment activé la réplication pour une base de données individuelle, vous devez désactiver la réplication de base de données pour la base de données avant de l’ajouter à un groupe de réplication. Pour plus de détails, voir Transition de la réplication de base de données à la réplication par groupe.
Créez un groupe de réplication my_rg
qui inclut la base de données db1
et le partage share1
à répliquer dans le compte account_2
de l’org acme
.
USE ROLE ACCOUNTADMIN;
CREATE REPLICATION GROUP my_rg
OBJECT_TYPES = databases, shares
ALLOWED_DATABASES = db1
ALLOWED_SHARES = share1
ALLOWED_ACCOUNTS = acme.account_2;
Exécuter à partir du compte cible¶
Depuis le compte cible de l’autre région, exécutez les instructions SQL suivantes.
Créez un groupe de réplication secondaire dans
account_2
:USE ROLE ACCOUNTADMIN; CREATE REPLICATION GROUP my_rg AS REPLICA OF acme.account1.my_rg;
CopyActualisez manuellement le groupe de réplication pour répliquer les bases de données et les partages dans
account_2
:ALTER REPLICATION GROUP my_rg REFRESH;
CopyAjoutez un ou plusieurs comptes consommateurs à
share1
:ALTER SHARE share1 ADD ACCOUNTS = consumer_org.consumer_account_name;
Copy
Vous pouvez automatiser les opérations d’actualisation en définissant le paramètre REPLICATION_SCHEDULE du groupe de réplication principal à l’aide de la commande ALTER REPLICATION GROUP dans le compte source. Pour plus d’informations, voir Planification de réplication.
Exemple 2 : Partager un sous-ensemble de données d’une base de données¶
Acme, un fournisseur de données, souhaite partager un sous-ensemble de données avec des consommateurs de données d’une autre région. Pour réduire les coûts de réplication, ils souhaitent uniquement répliquer les lignes pertinentes de leur table principale. La réplication étant effectuée au niveau de la base de données, cet exemple montre comment Acme peut utiliser les flux et les tâches pour copier les lignes souhaitées de la base de données principale dans une nouvelle base de données, créer un partage et accorder des privilèges sur la vue, puis répliquer les deux dans un groupe de réplication dans un compte situé dans une région différente pour que les consommateurs puissent y accéder. Dans ce scénario, la nouvelle base de données et le nouveau partage sont désignés comme objets principaux de la réplication de données.
Exécuter à partir du compte source¶
Utilisez les commandes SQL suivantes pour créer une nouvelle base de données dans le compte source et activer la réplication.
Note
Si vous avez précédemment activé la réplication pour une base de données individuelle, vous devez désactiver la réplication de base de données pour la base de données avant de l’ajouter à un groupe de réplication. Pour plus de détails, voir Transition de la réplication de base de données à la réplication par groupe.
Sur votre compte local, créez une base de données
db1
avec un sous-ensemble de données provenant de la base de données contenant les données sources :USE ROLE ACCOUNTADMIN; CREATE DATABASE db1; CREATE SCHEMA db1.sch; CREATE TABLE db1.sch.table_b AS SELECT customerid, user_order_count, total_spent FROM source_db.sch.table_a WHERE REGION='azure_eastus2';
CopyCréez une vue sécurisée avec les données à partager :
CREATE SECURE VIEW db1.sch.view1 AS SELECT customerid, user_order_count, total_spent FROM db1.sch.table_b;
CopyCréez un flux pour enregistrer les modifications apportées à la table source :
CREATE STREAM mystream ON TABLE source_db.sch.table_a APPEND_ONLY = TRUE;
CopyCréez une tâche pour insérer des données dans la table de
db1
avec les modifications des données sources :CREATE TASK mytask1 WAREHOUSE = mywh SCHEDULE = '5 minute' WHEN SYSTEM$STREAM_HAS_DATA('mystream') AS INSERT INTO table_b(CUSTOMERID, USER_ORDER_COUNT, TOTAL_SPENT) SELECT customerid, user_order_count, total_spent FROM mystream WHERE region='azure_eastus2' AND METADATA$ACTION = 'INSERT';
CopyDémarrez la tâche de mise à jour des données :
ALTER TASK mytask1 RESUME;
CopyCréez un partage et accordez des privilèges sur le partage :
CREATE SHARE share1; GRANT USAGE ON DATABASE db1 TO SHARE share1; GRANT USAGE ON SCHEMA db1.sch TO SHARE share1; GRANT SELECT ON VIEW db1.sch.view1 TO SHARE share1;
CopyCréez un groupe de réplication principal avec la base de données et le partage :
CREATE REPLICATION GROUP my_rg OBJECT_TYPES = DATABASES, SHARES ALLOWED_DATABASES = db1 ALLOWED_SHARES = share1 ALLOWED_ACCOUNTS = acme_org.account_2;
Copy
Exécuter à partir du compte cible¶
Exécutez les commandes SQL suivantes depuis le compte cible dans l’autre région.
Créez un groupe de réplication secondaire pour répliquer les bases de données et les partages du compte source :
USE ROLE ACCOUNTADMIN; CREATE REPLICATION GROUP my_rg AS REPLICA OF acme_org.account_1.my_rg;
CopyActualisez manuellement le groupe pour répliquer les objets sur le compte actuel :
ALTER REPLICATION GROUP my_rg REFRESH;
CopyAjoutez un ou plusieurs comptes consommateurs au partage :
ALTER SHARE share1 ADD ACCOUNTS = consumer_org.consumer_account_name;
Copy
Vous pouvez automatiser les opérations d’actualisation en définissant le paramètre REPLICATION_SCHEDULE du groupe de réplication principal à l’aide de la commande ALTER REPLICATION GROUP dans le compte source. Pour plus d’informations, voir Planification de réplication.
Exemple 3 : Partager des données provenant de plusieurs bases de données¶
Acme, un fournisseur de données, souhaite partager des données provenant de plusieurs bases de données avec des consommateurs de données d’une autre région. Il crée une vue et un partage sécurisés (pour des instructions, voir Partage des données de plusieurs bases de données), puis réplique l’ensemble des bases de données et du partage dans un groupe de réplication afin de répliquer les données dans des comptes situés dans d’autres régions.
Exécuter à partir du compte source¶
Créez un groupe de réplication my_rg
qui inclut les bases de données et le partage de Exemple 1 : Créer et partager une vue sécurisée dans une base de données existante pour les répliquer dans account_2
de l’org acme
:
CREATE REPLICATION GROUP my_rg
OBJECT_TYPES = databases, shares
ALLOWED_DATABASES = database1, database2, database3
ALLOWED_SHARES = share1
ALLOWED_ACCOUNTS = acme.account_2;
Exécuter à partir du compte cible¶
Exécutez les commandes SQL suivantes depuis le compte cible dans l’autre région.
Créez un groupe de réplication secondaire pour répliquer les bases de données et les partages du compte source :
USE ROLE ACCOUNTADMIN; CREATE REPLICATION GROUP my_rg AS REPLICA OF acme_org.account_1.my_rg;
CopyActualisez manuellement le groupe pour répliquer les objets sur le compte actuel :
ALTER REPLICATION GROUP my_rg REFRESH;
CopyAjoutez un ou plusieurs comptes consommateurs au partage :
ALTER SHARE share1 ADD ACCOUNTS = consumer_org.consumer_account_name;
Copy
Vous pouvez automatiser les opérations d’actualisation en définissant le paramètre REPLICATION_SCHEDULE du groupe de réplication principal à l’aide de la commande ALTER REPLICATION GROUP dans le compte source. Pour plus d’informations, voir Planification de réplication.