Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Informations sur les partages de données pour Amazon Redshift
Avec Amazon Redshift, vous pouvez partager des données en temps réel en toute sécurité entre des clusters Amazon Redshift sans avoir à copier ou à transférer des données. Datashares for Amazon Redshift vous permet de partager les résultats de requêtes en direct, y compris les mises à jour des données sources, avec n'importe quel cluster Amazon Redshift appartenant à des comptes et régions identiques ou différents. AWS AWS
Rubriques
- Valeurs de statut du partage de données dans Amazon Redshift
- Partage de données au sein des clusters et entre eux
- Utiliser les vues dans le partage de données Amazon Redshift
- Gestion de l'accès aux API opérations de partage de données à IAM l'aide de politiques
- Interrogation d’unités de partage des données
Valeurs de statut du partage de données dans Amazon Redshift
Cette rubrique décrit les statuts possibles que les partages de données peuvent avoir dans Amazon Redshift.
Avec les unités de partage des données entre comptes, il existe différents statuts des unités de partage des données qui nécessitent votre intervention. Votre partage de données peut avoir le statut « actif », « action requise » ou « inactif ».
Le paragraphe ci-dessous décrit chaque statut d’unité de partage des données et les actions requises :
Lorsqu’un administrateur de cluster producteur crée uneunité de partage des données, le statut de l’unité de partage des données sur le cluster producteur est Pending authorization (Autorisation en attente). L’administrateur du cluster producteur peut autoriser les consommateurs de données à accéder à l’unité de partage des données. L’administrateur du cluster consommateur n’a aucune action à effectuer.
Lorsqu’un administrateur de cluster producteur autorise l’unité de partage des données, le statut devient Authorized (Autorisé) sur le cluster producteur. L’administrateur du cluster producteur n’a aucune action à effectuer. Lorsqu’il existe au moins une association avec un consommateur de données pour l’unité de partage des données, l’état de l’unité de partage des données passe de Authorized (Autorisé) à Active (Actif).
L’état de partage de l’unité de partage des données passe alors à Available (Action required on the Amazon Redshift console) (Disponible (Action requise sur la console Amazon Redshift)) sur le cluster consommateur. L’administrateur de cluster consommateur peut associer l’unité de partage des données à des consommateurs de données, ou rejeter l’unité de partage des données. L’administrateur de cluster consommateur peut également utiliser la commande AWS CLI
describeDatashareforConsumer
pour afficher l’état des unités de partage des données. L'administrateur peut également utiliser la CLI commandedescribeDatashare
et fournir le nom de ressource Amazon du partage de données (ARN) pour afficher l'état du partage de données.Lorsque l’administrateur de cluster consommateur associe une unité de partage des données à des consommateurs de données, l’état de l’unité de partage des données passe à Active (Actif) sur le cluster producteur. Lorsqu’il existe au moins une association avec un consommateur de données pour l’unité de partage des données, l’état de l’unité de partage des données passe de Authorized (Autorisé) à Active (Actif). Aucune action n’est requise pour l’administrateur du cluster producteur.
L’état de l’unité de partage des données devient Active (Actif) sur le cluster consommateur. Aucune action n’est requise pour l’administrateur du cluster consommateur.
Lorsque l’administrateur de cluster consommateur supprime une association de consommateurs d’une unité de partage des données, l’état de l’unité de partage des données passe à Active (Actif) ou Authorized (Autorisé). Il devient Active (Actif) lorsqu’il existe au moins une association pour l’unité de partage des données avec un autre consommateur de données. Il devient Authorized (Autorisé) lorsqu’il n’existe pas d’association de consommateurs avec l’unité de partage des données sur le cluster producteur. L’administrateur du cluster producteur n’a aucune action à effectuer.
L’état de l’unité de partage des données passe à Action required (Action requise) sur le cluster consommateur si toutes les associations sont supprimées. L’administrateur du cluster consommateur peut réassocier une unité de partage des données avec des consommateurs de données lorsque l’unité de partage des données est disponible pour les consommateurs.
Lorsqu’un administrateur de cluster consommateur refuse une unité de partage des données, l’état de l’unité de partage des données sur le cluster producteur passe à Action required (Action requise) et Declined (Refusé) sur le cluster consommateur. L’administrateur du cluster producteur peut réautoriser l’unité de partage des données. L’administrateur du cluster consommateur n’a aucune action à effectuer.
Lorsque l’administrateur du cluster producteur supprime l’autorisation d’une unité de partage des données, l’état de l’unité de partage des données passe à Action required (Action requise) sur le cluster producteur. L’administrateur du cluster producteur peut choisir de ré-autoriser l’unité de partage des données, si nécessaire. Aucune action n’est requise pour l’administrateur du cluster consommateur.
Partage de données au sein des clusters et entre eux
Vous n’avez besoin d’unités de partage de données que pour partager des données entre différents clusters mis en service ou des groupes de travail sans serveur Amazon Redshift. Dans un même cluster, vous pouvez interroger une autre base de données en utilisant une notation simple en trois parties database.schema.table
, à condition de disposer des autorisations nécessaires sur les objets de l’autre base de données.
Gestion des autorisations pour les unités de partage des données dans Amazon Redshift
En tant qu’administrateur de cluster producteur, vous conservez le contrôle des jeux de données que vous partagez. Vous pouvez ajouter de nouveaux objets à l’unité de partage des données ou en supprimer. Vous pouvez également accorder ou révoquer l'accès aux partages de données dans leur ensemble pour les clusters de consommateurs, les AWS comptes ou les régions. AWS Lorsque les autorisations sont révoquées, les clusters de consommateurs perdent immédiatement l'accès aux objets partagés et ne les voient plus dans la liste des partages de INBOUND données dans _. SVV DATASHARES
L'exemple suivant crée le partage de donnéessalesshare
, ajoute le schéma public
et ajoute la table public.tickit_sales_redshift
à. salesshare
Il accorde également des autorisations d'utilisation sur salesshare
l'espace de noms de cluster spécifié.
CREATE DATASHARE salesshare; ALTER DATASHARE salesshare ADD SCHEMA public; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
En effet CREATEDATASHARE, les superutilisateurs et les propriétaires de bases de données peuvent créer des partages de données. Pour de plus amples informations, veuillez consulter CREATE DATASHARE. En ALTER DATASHARE effet, le propriétaire du partage de données disposant des autorisations requises sur les objets de partage de données à ajouter ou à supprimer peut modifier le partage de données. Pour plus d’informations, veuillez consulter ALTER DATASHARE.
En tant qu’administrateur de producteurs, lorsque vous supprimez une unité de partage des données, il cesse d’être répertorié sur les clusters consommateur. Les bases de données et les références de schéma créées sur le cluster consommateur à partir de l’unité de partage des données supprimé continuent d’exister sans objet. L’administrateur de cluster consommateur doit supprimer ces bases de données manuellement.
Côté consommateur, un administrateur de cluster consommateur peut déterminer quels utilisateurs et groupes doivent avoir accès aux données partagées en créant une base de données dans l’unité de partage des données. En fonction des options que vous choisissez lors de la création de la base de données, vous pouvez contrôler l’accès à celle-ci comme suit. Pour plus d’informations sur la création d’une base de données à partir d’une unité de partage des données, consultez CREATE DATABASE.
Pour plus d'informations sur la configuration d'un partage de données et la lecture des données d'un consommateur, voir Partage de l'accès en lecture aux données d'un AWS compte.
Création de la base de données sans la WITH PERMISSIONS clause
Un administrateur peut contrôler l’accès au niveau de la base de données ou du schéma. Pour contrôler l’accès au niveau du schéma, l’administrateur doit créer un schéma externe à partir de la base de données Amazon Redshift créée à partir de l’unité de partage des données.
L’exemple suivant accorde des autorisations pour accéder à une table partagée au niveau de la base de données et du schéma.
GRANT USAGE ON DATABASE sales_db TO Bob; CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE sales_db SCHEMA 'public'; GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
Pour restreindre davantage l’accès, vous pouvez créer des vues au-dessus des objets partagés, en exposant uniquement les données nécessaires. Vous pouvez ensuite utiliser ces vues pour donner accès aux utilisateurs et aux rôles.
Une fois que les utilisateurs auront accès à la base de données ou au schéma, ils auront accès à tous les objets partagés de cette base de données ou de ce schéma.
Création de la base de données avec la WITH PERMISSIONS clause
Après avoir accordé des droits d’utilisation sur la base de données ou le schéma, un administrateur peut contrôler davantage l’accès en utilisant le même processus d’octroi d’autorisations que sur une base de données ou un schéma local. Sans autorisations d'objets individuels, les utilisateurs ne peuvent accéder à aucun objet de la base de données ou du schéma partagé, même après avoir obtenu l'USAGEautorisation.
L’exemple suivant octroie des autorisations pour accéder à une table partagée au niveau de la base de données.
GRANT USAGE ON DATABASE sales_db TO Bob; GRANT USAGE FOR SCHEMAS IN DATABASE sales_db TO Bob; GRANT SELECT ON sales_db.public.tickit_sales_redshift TO Bob;
Après avoir obtenu l’accès à la base de données ou au schéma, les utilisateurs doivent toujours disposer des autorisations appropriées pour tous les objets de la base de données ou du schéma auxquels vous souhaitez qu’ils accèdent.
Partage granulaire à l'aide de WITH PERMISSIONS
Autoriser les clusters ou groupes de travail sans serveur d’interroger l’unité de partage des données
Cette étape suppose que l’unité de partage des données provient d’un autre cluster ou d’un autre espace de noms Amazon Redshift sans serveur de votre compte, ou qu’il provient d’un autre compte et a été associé à l’espace de noms que vous utilisez.
L’administrateur de la base de données consommateur peut créer une base de données à partir de l’unité de partage des données.
CREATE DATABASE my_ds_db [WITH PERMISSIONS] FROM DATASHARE my_datashare OF NAMESPACE 'abc123def';
Si vous créez une base de données, WITH PERMISSIONS vous pouvez accorder des autorisations détaillées sur les objets de partage de données à différents utilisateurs et rôles. Sans cela, tous les utilisateurs et rôles USAGE autorisés sur la base de données de partage de données obtiennent toutes les autorisations sur tous les objets de la base de données de partage de données.
Voici comment accorder des autorisations à un rôle ou à un utilisateur de base de données Redshift. Vous devez être connecté à une base de données locale pour exécuter ces instructions. Vous ne pouvez pas exécuter ces instructions si vous exécutez une USE commande sur la base de données de partage de données avant d'exécuter les instructions grant.
GRANT USAGE ON DATABASE my_ds_db TO ROLE data_eng; GRANT CREATE, USAGE ON SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng; GRANT ALL ON ALL TABLES IN SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng; GRANT USAGE ON DATABASE my_ds_db TO bi_user; GRANT USAGE ON SCHEMA my_ds_db.my_shared_schema TO bi_user; GRANT SELECT ON my_ds_db.my_shared_schema.table1 TO bi_user;
Utiliser les vues dans le partage de données Amazon Redshift
Un cluster producteur peut partager des vues standard, à liaison tardive et matérialisées. Lorsque vous partagez des vues standard ou à liaison tardive, vous n’avez pas besoin de partager les tables de base. Le tableau suivant montre comment les vues sont prises en charge avec le partage de données.
Nom de la vue | Est-ce que cette vue peut être ajoutée à une unité de partage des données ? | Un consommateur peut-il créer cette vue sur des objets d’unité de partage des données entre des clusters ? |
---|---|---|
Vue standard | Oui | Non |
Vues à liaison tardive | Oui | Oui |
Vues matérialisées | Oui | Oui, mais uniquement avec une actualisation complète |
La requête suivante affiche la sortie d’une vue standard prise en charge par le partage de données. Pour plus d’informations sur la définition des vues régulières, consultez CREATE VIEW.
SELECT * FROM tickit_db.public.myevent_regular_vw ORDER BY eventid LIMIT 5; eventid | eventname ----------+------------- 3835 | LeAnn Rimes 3967 | LeAnn Rimes 4856 | LeAnn Rimes 4948 | LeAnn Rimes 5131 | LeAnn Rimes
La requête suivante affiche la sortie d’une vue à liaison tardive prise en charge par le partage de données. Pour plus d’informations sur la définition des vues à liaison tardive, consultez CREATE VIEW.
SELECT * FROM tickit_db.public.event_lbv ORDER BY eventid LIMIT 5; eventid | venueid | catid | dateid | eventname | starttime --------+---------+-------+--------+------------------------------+--------------------- 1 | 305 | 8 | 1851 | Gotterdammerung | 2008-01-25 14:30:00 2 | 306 | 8 | 2114 | Boris Godunov | 2008-10-15 20:00:00 3 | 302 | 8 | 1935 | Salome | 2008-04-19 14:30:00 4 | 309 | 8 | 2090 | La Cenerentola (Cinderella) | 2008-09-21 14:30:00 5 | 302 | 8 | 1982 | Il Trovatore | 2008-06-05 19:00:00
La requête suivante affiche la sortie d’une vue matérialisée prise en charge par le partage de données. Pour plus d’informations sur la définition des vues matérialisées, consultez CREATE MATERIALIZED VIEW.
SELECT * FROM tickit_db.public.tickets_mv; catgroup | qtysold ----------+--------- Concerts | 195444 Shows | 149905
Vous pouvez gérer des tables communes à tous les locataires d’un cluster producteur. Vous pouvez également partager des sous-ensembles de données filtrées par colonnes de dimension, tels que tenant_id
(account_id
ou namespace_id
), aux clusters consommateur. Pour ce faire, vous pouvez définir une vue sur la table de base avec un filtre sur ces colonnes d’ID, par exemple current_aws_account = tenant_id
. Côté consommateur, lorsque vous interrogez la vue, vous ne voyez que les lignes correspondant à votre compte. Pour ce faire, vous pouvez utiliser les fonctions contextuelles Amazon Redshift current_aws_account
et current_namespace
.
La requête suivante renvoie l’ID de compte dans lequel réside le cluster Amazon Redshift actuel. Vous pouvez exécuter cette requête si vous êtes connecté à Amazon Redshift.
select current_user, current_aws_account; current_user | current_aws_account -------------+-------------------- dwuser | 111111111111 (1row)
La requête suivante renvoie l’espace de noms du cluster Amazon Redshift actuel. Vous pouvez exécuter cette requête si vous êtes connecté à la base de données.
select current_user, current_namespace; current_user | current_namespace -------------+-------------------------------------- dwuser | 86b5169f-01dc-4a6f-9fbb-e2e24359e9a8 (1 row)
Actualisation incrémentielle des vues matérialisées dans un partage de données
Amazon Redshift prend en charge l'actualisation incrémentielle des vues matérialisées dans un partage de données client lorsque les tables de base sont partagées. L'actualisation incrémentielle est une opération au cours de laquelle Amazon Redshift identifie les modifications apportées à la table de base ou aux tables après l'actualisation précédente et met à jour uniquement les enregistrements correspondants dans la vue matérialisée. Pour plus d'informations sur ce comportement, consultez CREATEMATERIALIZEDVIEW.
Gestion de l'accès aux API opérations de partage de données à IAM l'aide de politiques
Pour contrôler l'accès aux API opérations de partage de données, utilisez des politiques IAM basées sur l'action. Pour plus d'informations sur la gestion des IAM politiques, consultez la section Gestion des IAM politiques dans le Guide de IAM l'utilisateur.
Pour plus d'informations sur les autorisations requises pour utiliser les API opérations de partage de données, consultez la section Autorisations requises pour utiliser les API opérations de partage de données dans le guide de gestion Amazon Redshift.
Pour sécuriser le partage de données entre comptes, vous pouvez utiliser une clé conditionnelle ConsumerIdentifier
pour les DeauthorizeDataShare
API opérations AuthorizeDataShare
et. Ce faisant, vous pouvez contrôler de manière explicite qui Comptes AWS peut appeler les deux API opérations.
Vous pouvez refuser l’autorisation ou l’annulation du partage de données pour tout consommateur qui n’est pas votre propre compte. Pour ce faire, spécifiez le Compte AWS numéro dans la IAM politique.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare" ], "Resource": "*", "Condition": { "StringNotEquals": { "redshift:ConsumerIdentifier": "555555555555" } } } ] }
Vous pouvez autoriser un producteur possédant un DataShareArn testshare2
à partager explicitement avec un consommateur dont la politique contient un Compte AWS numéro 111122223333. IAM
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare" ], "Resource": "arn:aws:redshift:us-east-1:666666666666:datashare:af06285e-8a45-4ee9-b598-648c218c8ff1/testshare2", "Condition": { "StringEquals": { "redshift:ConsumerIdentifier": "111122223333" } } } ] }
Interrogation d’unités de partage des données
Accès aux données partagées dans Amazon Redshift
Vous pouvez découvrir des données partagées à l'aide d'SQLinterfaces standard, JDBC ou de ODBC pilotes, et des donnéesAPI. Vous pouvez également interroger des données avec des performances élevées à partir d’outils d’analytique et de Business Intelligence (BI) familiers. Vous pouvez effectuer des requêtes en faisant référence aux objets d’autres bases de données Amazon Redshift qui se trouvent dans votre cluster ou à distance et pour lesquels vous disposez des autorisations d’accès.
Vous pouvez le faire simplement en restant connecté aux bases de données locales de votre cluster. Vous pouvez ensuite créer des bases de données de consommateurs à partir des unités de partage des données afin de consommer les données partagées.
Ensuite, vous pouvez vous connecter à la base de données des consommateurs et interroger les objets partagés à l'aide d'une notation partielle. Vous pouvez également vous connecter à une base de données de cluster locale et interroger des objets dans des bases de données grand public à l'aide de la notation en trois parties (
). Vous pouvez également effectuer des requêtes à l’aide de liens de schéma externes vers des schémas de la base de données grand public. Vous pouvez interroger à la fois des données locales et des données partagées à partir d’autres clusters au sein de la même requête. Une telle requête peut référencer des objets de la base de données connectée actuelle et d’autres bases de données non connectées, y compris des bases de données grand public créées à partir d’unités de partage des données. consumer_database_name
.schema_name
.table_name
Accès aux métadonnées pour unités de partage des données dans Amazon Redshift
Pour aider les administrateurs de cluster à découvrir les unités de partage des données, Amazon Redshift fournit un ensemble de vues de métadonnées pour répertorier les unités de partage des données. Ces vues répertorient les unités de partage des données créées dans votre cluster, ainsi que celles reçues d’autres clusters au sein du même compte, d’autres comptes ou d’autres régions AWS . Ces vues affichent les informations suivantes :
Unités de partage des données partagées et reçues par les clusters
Contenu des objets de base de données dans les unités de partage des données, y compris les métadonnées de partage de base, les objets et les consommateurs
Permet SHOW SCHEMAS d'afficher la liste des schémas partagés dans le partage de données associé à la base de données connectée. Pour de plus amples informations, veuillez consulter SHOW SCHEMAS.
Permet SHOW TABLES d'afficher la liste des tables d'un schéma partagé à partir du partage de données associé à la base de données connectée. Pour de plus amples informations, veuillez consulter SHOW TABLES.
Permet SHOW COLUMNS d'afficher la liste des colonnes d'une table partagée dans le partage de données associé à la base de données connectée. Pour de plus amples informations, veuillez consulter SHOW COLUMNS.
Utilisez SVV _ DATASHARES pour afficher la liste de tous les partages de données créés dans votre cluster (sortants) et partagés par d'autres (entrants). Pour de plus amples informations, veuillez consulter SVV_DATASHARES.
Utilisez SVV _ DATASHARE _ CONSUMERS pour afficher la liste des consommateurs de données. Pour de plus amples informations, veuillez consulter SVV_DATASHARE_CONSUMERS.
Utilisez SVV _ DATASHARE _ OBJECTS pour afficher la liste des objets de tous les partages de données créés dans votre cluster (sortants) et partagés par d'autres (entrants). Pour de plus amples informations, veuillez consulter SVV_DATASHARE_OBJECTS.
Intégrer le partage de données Amazon Redshift aux outils de business intelligence
Pour intégrer le partage de données aux outils de business intelligence (BI), nous vous recommandons d'utiliser Amazon Redshift JDBC ou ODBC des pilotes.
Amazon Redshift JDBC et ODBC les pilotes prennent en charge le GetCatalogs
API fonctionnement des pilotes, qui renvoient la liste de toutes les bases de données, y compris celles créées à partir de partages de données. Les pilotes prennent également en charge les opérations en aval, telles que GetSchemas
, GetTables
, etc., qui renvoient des données de toutes les bases de données renvoyées par GetCatalogs
. Les pilotes fournissent cette prise en charge même lorsque le catalogue n’est pas explicitement spécifié dans l’appel. Pour plus d'informations sur nos JDBC ODBC pilotes, consultez la section Configuration des connexions dans Amazon Redshift dans le guide de gestion Amazon Redshift.
Vous pouvez vous connecter aux bases de données de consommateurs créées à partir de partages de données directement de la même manière que n'importe quelle autre base de données. Si votre outil comporte une interface utilisateur de commutation de connexion, la liste des bases de données doit inclure les bases de données créées à partir de partages de données. Vous pouvez découvrir ces bases de données de consommateurs à l'aide de SVV REDSHIFT _ _DATABASES.