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.
Partage de données Amazon Redshift sous licence sur AWS Data Exchange
Lors de la création de AWS Data Exchange partages de données et de leur ajout à un AWS Data Exchange produit, les fournisseurs peuvent octroyer des licences sur des données dans Amazon Redshift que les consommateurs peuvent découvrir, consulter et consulter sur Amazon up-to-date Redshift lorsqu'ils ont des abonnements actifs. AWS Data Exchange
Lorsque des AWS Data Exchange partages de données sont ajoutés à un AWS Data Exchange produit, les consommateurs ont automatiquement accès aux partages de données d'un produit lorsque leur abonnement commence et conservent leur accès tant que leur abonnement est actif.
Rubriques
Utilisation des partages AWS Data Exchange de données en tant que producteur
Avec Amazon Redshift, vous pouvez partager des produits de données en temps réel en AWS Data Exchange tant que producteur en créant et en gérant des partages de données.
Si vous êtes administrateur d'un cluster de producteurs, suivez ces étapes pour gérer les partages AWS Data Exchange de données sur la console Amazon Redshift :
Créez des partages de données dans votre cluster pour partager des données AWS Data Exchange et autoriser l'accès AWS Data Exchange à ces partages de données.
Les super-utilisateurs de cluster et les propriétaires de base de données peuvent créer des datashares. Chaque datashare est associé à une base de données lors de sa création. Seuls les objets de cette base de données peuvent être partagés dans ce datashare. Plusieurs datashares peuvent être créés sur la même base de données avec la même précision d'objets ou une précision différente. Il n’y a pas de limite au nombre d’unités de partage des données que vous pouvez créer sur un cluster.
Vous pouvez également créer des datashares via la console Amazon Redshift. Pour de plus amples informations, veuillez consulter Créer des unités de partage des données.
Utilisez l'MANAGEDBYADXoption pour accorder implicitement l'accès au partage de données AWS Data Exchange lors de l'exécution de l'instruction. CREATE DATASHARE Cela indique que ce partage de données est AWS Data Exchange géré. Vous ne pouvez utiliser MANAGEDBY ADX cette option que lorsque vous créez un nouveau partage de données. Vous ne pouvez pas utiliser l'ALTERDATASHAREinstruction pour modifier un partage de données existant afin d'ajouter l'MANAGEDBYADXoption. Une fois qu'un partage de données est créé avec MANAGEDBY ADX cette option, seul le partage de données AWS Data Exchange peut y accéder et le gérer.
CREATE DATASHARE salesshare [[SET] MANAGEDBY [=] {ADX} ];
Ajouter des objets aux unités de partage des données. L'administrateur du producteur continue de gérer les objets de partage de données disponibles dans un AWS Data Exchange partage de données.
Pour ajouter des objets à une unité de partage des données, ajoutez le schéma avant d’ajouter des objets. Lorsque vous ajoutez un schéma, Amazon Redshift n’ajoute pas tous les objets qu’il contient. Vous devez les ajouter explicitement. Pour plus d'informations, consultez ALTER DATASHARE.
ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;
Vous pouvez également ajouter des vues à une unité de partage des données.
CREATE VIEW public.sales_data_summary_view AS SELECT * FROM public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD TABLE public.sales_data_summary_view;
ALTERDATASHAREÀ utiliser pour partager des schémas, des tables, des vues et des fonctions dans un schéma donné. Les superutilisateurs, les propriétaires de partage de données ou les utilisateurs disposant d'ALLautorisations sur le partage de données peuvent modifier le partage de données pour y ajouter des objets ALTER ou en supprimer. Les utilisateurs doivent avoir les autorisations nécessaires pour ajouter ou supprimer des objets de l’unité de partage des données. Les utilisateurs doivent également être les propriétaires des objets ou avoir SELECT ou USAGE des ALL autorisations sur les objets.
Utilisez la INCLUDENEW clause pour ajouter au partage de données les nouvelles tables, vues ou fonctions SQL définies par l'utilisateur (UDFs) créées dans un schéma spécifié. Seuls les super-utilisateurs peuvent modifier cette propriété pour chaque paire datashare-schéma.
ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare SET INCLUDENEW = TRUE FOR SCHEMA PUBLIC;
Vous pouvez également utiliser la console Amazon Redshift pour ajouter ou supprimer des objets des unités de partage des données. Pour plus d’informations, consultez Ajouter des objets d’unité de partage des données aux unités de partage des données, Supprimer des objets d’unité de partage des données des unités de partage des données et Modification de partages AWS Data Exchange de données.
Pour autoriser l'accès aux partages de données pour AWS Data Exchange, effectuez l'une des opérations suivantes :
Autorisez explicitement l'accès au partage de données pour AWS Data Exchange en utilisant le
ADX
mot clé dans le.aws redshift authorize-data-share
API Cela permet AWS Data Exchange de reconnaître le partage de données dans le compte de service et de gérer l'association des consommateurs au partage de données.aws redshift authorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier ADX
Vous pouvez utiliser une clé conditionnelle
ConsumerIdentifier
pour autoriser ou refuser explicitement AWS Data Exchange d'appeler les deux entités APIs de la IAM politique.AuthorizeDataShare
DeauthorizeDataShare
APIs{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "redshift:ConsumerIdentifier": "ADX" } } } ] }
Utilisez la console Amazon Redshift pour autoriser ou supprimer l'autorisation des partages de AWS Data Exchange données. Pour de plus amples informations, veuillez consulter Autoriser ou supprimer l’autorisation des unités de partage des données.
Vous pouvez éventuellement autoriser implicitement l'accès au partage de AWS Data Exchange données lors de l'importation du partage de données dans un ensemble de données. AWS Data Exchange
Pour supprimer l'autorisation d'accès aux partages AWS Data Exchange de données, utilisez le
ADX
mot clé dans l'aws redshift deauthorize-data-share
APIopération. Ainsi, vous autorisez AWS Data Exchange à reconnaître l’unité de partage des données dans le compte de service et de gérer l’association de suppression depuis l’unité de partage des données.aws redshift deauthorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier ADX
Répertorie les unités de partage des données créées dans le cluster et examine le contenu de l’unité de partage des données.
L’exemple suivant montre comment afficher les informations d’une unité de partage des données nommée salesshare. Pour plus d’informations, consultez DESC DATASHARE et SHOW DATASHARES.
DESC DATASHARE salesshare; producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new -------------------+--------------------------------------+------------+------------+-------------+--------------------------------+------------------- 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_category_redshift| 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | schema | public | t 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | view | public.sales_data_summary_view |
L'exemple suivant montre comment afficher les datashares sortants dans un cluster producteur.
SHOW DATASHARES LIKE 'sales%';
La sortie ressemble à ce qui suit.
share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace -----------+--------------+-----------------+-------------------+------------+---------------------+----------------------+-----------+------------------+--------------------------------------- salesshare | 100 | dev | | OUTBOUND | 2020-12-09 02:27:08 | True | | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d
Pour plus d’informations, consultez DESC DATASHARE et SHOW DATASHARES.
Vous pouvez également utiliser SVV_DATASHARES, SVV_DATASHARE_CONSUMERS, et SVV_DATASHARE_OBJECTS pour afficher les datashares, les objets du datashare et les consommateurs de datashare.
Supprimer des unités de partage des données. Nous vous recommandons de ne pas supprimer un partage de AWS Data Exchange données partagé avec d'autres personnes à Comptes AWS l'DROPDATASHAREaide de cette instruction. Ces comptes perdront l’accès à l’unité de partage des données. Cette action est irréversible. Cela pourrait enfreindre les conditions de l'offre de produits de données AWS Data Exchange. Si vous souhaitez supprimer un partage de AWS Data Exchange données, consultez. DROPDATASHAREnotes d'utilisation
L’exemple suivant montre la suppression d’une unité de partage des données appelé salesshare.
DROP DATASHARE salesshare; ERROR: Drop of ADX-managed datashare salesshare requires session variable datashare_break_glass_session_var to be set to value '620c871f890c49'
Pour autoriser la suppression d'un partage de données, définissez la AWS Data Exchange variable datashare_break_glass_session_var et réexécutez l'instruction. DROP DATASHARE Si vous souhaitez supprimer un partage de AWS Data Exchange données, consultez. DROPDATASHAREnotes d'utilisation
Vous pouvez également utiliser la console Amazon Redshift pour supprimer des unités de partage des données. Pour de plus amples informations, veuillez consulter Supprimer les AWS Data Exchange partages de données créés dans votre compte.
ALTERDATASHAREÀ utiliser pour supprimer des objets d'un partage de données à tout moment du partage de données. Utilisez REVOKE USAGE ON pour révoquer les autorisations relatives au partage de données accordées à certains consommateurs. Il révoque USAGE les autorisations sur les objets d'un partage de données et arrête instantanément l'accès à tous les clusters de consommateurs. Répertorier des unités de partage des données et des requêtes de métadonnées, telles que la liste des bases de données et des tables, ne renvoie pas les objets partagés après la révocation de l’accès.
ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;
Vous pouvez également utiliser la console Amazon Redshift pour modifier les datashares. Pour de plus amples informations, veuillez consulter Modification de partages AWS Data Exchange de données.
Accorder ou révoquer des partages GRANT USAGE de AWS Data Exchange données. Vous ne pouvez pas accorder ou révoquer un partage GRANT USAGE de AWS Data Exchange données. L'exemple suivant montre une erreur lorsque l'GRANTUSAGEautorisation est accordée Compte AWS à un datashare qui AWS Data Exchange gère.
CREATE DATASHARE salesshare MANAGEDBY ADX;
GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '012345678910'; ERROR: Permission denied to add/remove consumer to/from datashare salesshare. Datashare consumers are managed by ADX.
Si vous êtes administrateur d'un cluster de producteurs, procédez comme suit pour créer et publier un produit de partage de données sur la AWS Data Exchange console :
Lorsque le AWS Data Exchange partage de données a été créé, le producteur crée un nouvel ensemble de données, importe des actifs, crée une révision, puis crée et publie un nouveau produit.
Utilisez la console Amazon Redshift pour créer des jeux de données. Pour de plus amples informations, veuillez consulter Création d'ensembles de données sur AWS Data Exchange.
Pour plus d'informations, voir Fournir des produits de données sur AWS Data Exchange.
Travailler avec des AWS Data Exchange partages de données en tant que consommateur
Avec Amazon Redshift, vous pouvez accéder à des ensembles de données et les analyser AWS Data Exchange sans avoir à stocker ou à gérer des copies des données.
Si vous êtes un consommateur, suivez ces étapes pour découvrir les produits de données contenant des partages de AWS Data Exchange données et interroger les données Amazon Redshift :
Sur la AWS Data Exchange console, découvrez les produits de données contenant des partages de données et abonnez-vous à ces produits AWS Data Exchange .
Une fois votre abonnement lancé, vous pouvez accéder aux données Amazon Redshift sous licence qui sont importées sous forme d'actifs dans des ensembles de données contenant des partages de données. AWS Data Exchange
Pour plus d'informations sur la façon de commencer à utiliser des produits de données contenant des partages de AWS Data Exchange données, voir Abonnement à des produits de données sur. AWS Data Exchange
Sur la console Amazon Redshift, créez un cluster Amazon Redshift, si nécessaire.
Pour plus d’informations sur la création d’un cluster, consultez Création d’un cluster.
Répertorier les unités de partage des données mises à votre disposition et afficher leur contenu. Pour plus d’informations, consultez DESC DATASHARE et SHOW DATASHARES.
L’exemple suivant montre comment afficher les informations des unités de partage des données entrants d’un espace de noms producteur spécifié. Lorsque vous vous lancez DESC DATASHARE en tant qu'administrateur d'un cluster de consommateurs, vous devez spécifier l'NAMESPACEoption ACCOUNT et pour afficher les partages de données entrants.
DESC DATASHARE salesshare of ACCOUNT '123456789012' NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d'; producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new -------------------+--------------------------------------+------------+------------+-------------+---------------------------------+------------------ 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_category_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | schema | public | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | view | public.sales_data_summary_view |
Seuls les super-utilisateurs de cluster peuvent le faire. Vous pouvez également utiliser SVV _ DATASHARES pour afficher les partages de données et SVV _ DATASHARE _ OBJECTS pour afficher les objets contenus dans le partage de données.
L'exemple suivant affiche les datashares entrants dans un cluster consommateur.
SHOW DATASHARES LIKE 'sales%'; share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace ------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+-------------------------------------- salesshare | | | | INBOUND | | t | | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d
Créez des bases de données locales qui font référence aux unités de partage des données. Vous devez spécifier l'NAMESPACEoption ACCOUNT and pour créer des bases de données locales pour les partages AWS Data Exchange de données. Pour de plus amples informations, veuillez consulter CREATE DATABASE.
CREATE DATABASE sales_db FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
Si vous souhaitez un contrôle plus précis de l'accès aux objets de la base de données locale, utilisez la WITH PERMISSIONS clause lors de la création de la base de données. Cela vous permet d’accorder des autorisations de niveau objet pour les objets de la base de données à l’étape 6.
CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
Vous pouvez voir les bases de données que vous avez créées à partir de l’unité de partage des données en interrogeant la vue SVV_REDSHIFT_DATABASES. Vous pouvez vous connecter directement à ces bases de données ou vous connecter à une base de données locale sur votre cluster client et effectuer une requête entre bases de données pour interroger les données des bases de données partagées. Vous ne pouvez pas créer une unité de partage des données au-dessus des objets de base de données créés à partir d’une unité de partage des données existant. Toutefois, vous pouvez copier les données dans une table distincte du cluster consommateur, effectuer le traitement nécessaire, puis partager les nouveaux objets créés.
Vous pouvez également utiliser la console Amazon Redshift pour créer des bases de données à partir des unités de partage des données. Pour plus d'informations, consultez Créer des bases de données à partir d’unités de partage des données.
(Facultatif) Créez des schémas externes pour faire référence et attribuer des autorisations détaillées à des schémas spécifiques dans la base de données consommateur importée sur le cluster consommateur. Pour de plus amples informations, veuillez consulter CREATE EXTERNAL SCHEMA.
CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE 'sales_db' SCHEMA 'public';
Selon les besoins, accordez aux utilisateurs et rôles du cluster consommateur des autorisations sur les bases de données et références de schéma créées à partir des unités de partage des données. Pour plus d’informations, consultez GRANT ou REVOKE.
GRANT USAGE ON DATABASE sales_db TO Bob;
GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
Si vous avez créé votre base de données sans WITHPERMISSIONS, vous ne pouvez attribuer des autorisations sur l'ensemble de la base de données créée à partir du partage de données qu'à vos utilisateurs et à vos rôles. Dans certains cas, vous avez besoin de contrôles précis sur un sous-ensemble d'objets de base de données créés à partir du datashare. Si tel est le cas, vous pouvez créer une référence de schéma externe tournée vers des schémas spécifiques dans l’unité de partage des données (comme décrit à l’étape précédente) et fournir des autorisations détaillées au niveau du schéma.
Vous pouvez également créer des vues à liaison tardive sur les objets partagés et les utiliser pour attribuer des autorisations détaillées. Vous pouvez également envisager que les clusters producteur créent des unités de partage des données supplémentaires pour vous avec la précision requise. Vous pouvez créer autant de références de schéma à la base de données créée à partir de l’unité de partage des données que vous le souhaitez.
Si vous avez créé votre base de données WITH PERMISSIONS à l'étape 4, vous devez attribuer des autorisations au niveau des objets de la base de données partagée. Un utilisateur disposant uniquement de l'USAGEautorisation ne peut accéder à aucun objet d'une base de données créée avec WITH PERMISSIONS tant qu'il n'a pas obtenu d'autorisations supplémentaires au niveau des objets.
GRANT SELECT ON sales_db.public.tickit_sales_redshift to Bob;
Interroger les données dans les objets partagés dans les unités de partage des données.
Les utilisateurs et les rôles disposant d’autorisations sur les bases de données consommateur et les schémas sur les clusters consommateur peuvent explorer et naviguer entre les métadonnées de tous les objets partagés. Ils peuvent également explorer et naviguer entre les objets locaux dans un cluster consommateur. Pour ce faire, ils utilisent ODBC les pilotes JDBC or, les SHOW commandes ou les REDSHIFT vues SVV SVV _ ALL et _.
Les clusters producteur peuvent avoir de nombreux schémas dans la base de données, les tables et les vues au sein de chaque schéma. Les utilisateurs du côté consommateur ne peuvent voir que le sous-ensemble d’objets mis à disposition via l’unité de partage des données. Ces utilisateurs ne peuvent pas voir l’intégralité des métadonnées du cluster producteur. Cette approche permet de fournir un contrôle détaillé de la sécurité des métadonnées avec le partage des données.
Vous continuez à vous connecter aux bases de données de cluster locales. Mais maintenant, vous pouvez également lire à partir des bases de données et des schémas qui sont créés à partir de l’unité de partage des données en utilisant la notation database.schema.table en trois parties. Vous pouvez effectuer des requêtes qui s’étendent sur toutes les bases de données qui sont visibles pour vous. Il peut s’agir de bases de données locales sur le cluster ou de bases de données créées à partir des unités de partage des données. Vous pouvez également vous connecter directement à ces bases de données de consommateurs et exécuter des requêtes sur les objets partagés avec une notation partielle.
Vous pouvez accéder aux données à l’aide d’une qualification complète. Pour de plus amples informations, veuillez consulter Exemples de requêtes entre bases de données.
SELECT * FROM sales_db.public.tickit_sales_redshift ORDER BY 1,2 LIMIT 5; salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission | saletime ---------+--------+----------+---------+---------+--------+---------+-----------+------------+--------------------- 1 | 1 | 36861 | 21191 | 7872 | 1875 | 4 | 728.00 | 109.20 | 2008-02-18 02:36:48 2 | 4 | 8117 | 11498 | 4337 | 1983 | 2 | 76.00 | 11.40 | 2008-06-06 05:00:16 3 | 5 | 1616 | 17433 | 8647 | 1983 | 2 | 350.00 | 52.50 | 2008-06-06 08:26:17 4 | 5 | 1616 | 19715 | 8647 | 1986 | 1 | 175.00 | 26.25 | 2008-06-09 08:38:52 5 | 6 | 47402 | 14115 | 8240 | 2069 | 2 | 154.00 | 23.10 | 2008-08-31 09:17:02
Vous ne pouvez utiliser SELECT des instructions que sur des objets partagés. Toutefois, vous pouvez créer des tables dans le cluster consommateur en interrogeant les données des objets partagés dans une base de données locale différente.
En plus des requêtes, les consommateurs peuvent créer des vues sur des objets partagés. Seules les vues à liaison tardive ou les vues matérialisées sont prises en charge. Amazon Redshift ne prend pas en charge les vues standard sur les données partagées. Les vues créées par les consommateurs peuvent s’étendre sur plusieurs bases de données locales ou bases de données créées à partir d’unités de partage des données. Pour de plus amples informations, veuillez consulter CREATE VIEW.
// Connect to a local cluster database // Create a view on shared objects and access it. CREATE VIEW sales_data AS SELECT * FROM sales_db.public.tickit_sales_redshift WITH NO SCHEMA BINDING; SELECT * FROM sales_data;