Utilisation d’unités de partage des données AWS Data Exchange en tant que producteur - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Utilisation d’unités de partage des données AWS Data Exchange en tant que producteur

Avec Amazon Redshift, vous pouvez partager des produits de données en temps réel avec AWS Data Exchange en tant que producteur en créant et en gérant des unités de partage des données.

Si vous êtes un administrateur producteur, procédez comme suit pour gérer des unités de partage des données AWS Data Exchange sur la console Amazon Redshift :

  1. Créez des unités de partage des données dans votre cluster pour partager des données sur AWS Data Exchange et accorder l’accès à AWS Data Exchange vers les unités de partage des 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 plus d'informations, consultez Créer une unité de partage des données.

    Utilisez l’option MANAGEDBY ADX pour accorder implicitement l’accès à l’unité de partage des données à AWS Data Exchange lors de l’exécution de l’instruction CREATE DATASHARE. Cela indique que AWS Data Exchange gère cette unité de partage des données. Vous ne pouvez utiliser l’option MANAGEDBY ADX que lorsque vous créez une unité de partage des données. Vous ne pouvez pas utiliser l’instruction ALTER DATASHARE pour modifier une unité de partage des données existante afin d’ajouter l’option MANAGEDBY ADX. Une fois qu’un partage de données est créé avec l’option MANAGEDBY ADX, seul AWS Data Exchange peut accéder à l’unité de partage des données et la gérer.

    CREATE DATASHARE salesshare [[SET] MANAGEDBY [=] {ADX} ];
  2. Ajouter des objets aux unités de partage des données. L’administrateur producteur continue de gérer les objets d’unité de partage des données disponibles dans une unité de partage des données AWS Data Exchange.

    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;

    Utilisez ALTER DATASHARE pour partager des schémas, des tables, des vues et des fonctions dans un schéma donné. Les super-utilisateurs, les propriétaires d’unité de partage des données ou les utilisateurs disposant des autorisations ALTER ou ALL sur l’unité de partage des données peuvent modifier l’unité de partage des données pour y ajouter des objets 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 disposer des autorisations SELECT, USAGE ou ALL sur les objets.

    Utilisez la clause INCLUDENEW pour ajouter des tables, des vues ou des fonctions SQL définies par l’utilisateur (UDF) créées dans un schéma spécifié à l’unité de partage des données. 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 Ajout d’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 des unités de partage des données AWS Data Exchange.

  3. Pour autoriser l’accès aux unités de partage de données pour AWS Data Exchange, effectuez l’une des actions suivantes :

    • Autorisez explicitement l’accès à l’unité de partage des données pour AWS Data Exchange en utilisant le mot clé ADX dans l’API aws redshift authorize-data-share. Cela permet à AWS Data Exchange de reconnaître l’unité de partage des données dans le compte de service et de gérer l’association des consommateurs à l’unité de partage des 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 les API AuthorizeDataShare et DeauthorizeDataShare pour autoriser ou refuser explicitement AWS Data Exchange d’effectuer des appels aux deux API dans la politique IAM.

      JSON
      { "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 d’unités de partage des données AWS Data Exchange. Pour plus d'informations, consultez Autoriser ou supprimer l’autorisation des unités de partage des données.

    • Éventuellement, vous pouvez autoriser implicitement l’accès à l’unité de partage des données AWS Data Exchange lors de l’importation de l’unité de partage des données dans un jeu de données AWS Data Exchange.

    Pour supprimer l’autorisation d’accès aux unités de partage des données AWS Data Exchange, utilisez le mot clé ADX dans l’opération d’API aws redshift deauthorize-data-share. 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
  4. 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.

  5. Supprimer des unités de partage des données. Nous vous recommandons de ne pas supprimer une unité de partage des données AWS Data Exchange partagée avec d’autres Comptes AWS à l’aide de l’instruction DROP DATASHARE. Ces comptes perdront l’accès à l’unité de partage des données. Cette action est irréversible. Cela peut entraîner une utilisation hors limites des conditions de l’offre de produits de données dans AWS Data Exchange. Si vous souhaitez supprimer une unité de partage des données AWS Data Exchange, consultez Note d’utilisation de DROP DATASHARE.

    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’une unité de partage des données AWS Data Exchange, définissez la variabl’unité de partage des données_break_glass_session_var et exécutez à nouveau l’instruction DROP DATASHARE. Si vous souhaitez supprimer une unité de partage des données AWS Data Exchange, consultez Note d’utilisation de DROP DATASHARE.

    Vous pouvez également utiliser la console Amazon Redshift pour supprimer des unités de partage des données. Pour plus d'informations, consultez Suppression des unités de partage des données AWS Data Exchange créées dans votre compte.

  6. Utilisez ALTER DATASHARE pour supprimer des objets des datashares à n'importe quel point du datashare. Utilisez REVOKE USAGE ON pour révoquer les autorisations de certains consommateurs sur l’unité de partage des données. Il révoque les autorisations USAGE sur les objets dans une unité de partage des données et arrête instantanément l’accès à tous les clusters consommateur. 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 plus d'informations, consultez Modification des unités de partage des données AWS Data Exchange.

  7. Accordez ou révoquez GRANT USE depuis les unités de partage des données AWS Data Exchange. Vous ne pouvez pas accorder ou révoquer GRANT USE pour les unités de partage des données AWS Data Exchange. L’exemple suivant montre une erreur lorsque l’autorisation GRANT USAGE est accordé à un Compte AWS pour une unité de partage des données que gère AWS Data Exchange.

    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.

    Pour plus d’informations, consultez GRANT ou REVOKE.

Si vous êtes un administrateur producteur, procédez comme suit pour créer et publier un produit d’unité de partage des données sur la console AWS Data Exchange :