Actions de l’administrateur de cluster consommateur - Amazon Redshift

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.

Actions de l’administrateur de cluster consommateur

Avec Amazon Redshift, vous pouvez effectuer des tâches administratives sur des clusters de consommateurs afin de gérer l'ingestion de données et le traitement du chargement.

Si vous êtes un administrateur de cluster consommateur, procédez comme suit :

  1. Répertoriez les unités de partage des données mises à votre disposition et affichez leur contenu. Le contenu des unités de partage des données n’est disponible que lorsque l’administrateur de cluster producteur a autorisé les unités de partage des données et que l’administrateur de cluster consommateur a accepté et associé les unités de partage des données. 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 exécutez le DESC DATAHSARE en tant qu'administrateur d'un cluster de consommateurs, vous devez spécifier l'ID de compte NAMESPACE et pour afficher les partages de données entrants. Pour les unités de partage des données sortantes, spécifiez le nom de l’unité de partage des données.

    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 | 'dd8772e1-d792-4fa4-996b-1870577efc0d'
    DESC DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d'; producer_account | producer_namespace | share_type | share_name | object_type | object_name ------------------+--------------------------------------+------------+------------+-------------+--------------------------------- 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_users_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_venue_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_category_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_date_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_event_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_listing_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_sales_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | schema | public (8 rows)

    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.

    SELECT * FROM SVV_DATASHARES WHERE share_name 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 | 'dd8772e1-d792-4fa4-996b-1870577efc0d'
    SELECT * FROM SVV_DATASHARE_OBJECTS WHERE share_name LIKE 'sales%'; share_type | share_name | object_type | object_name | producer_account | producer_namespace ------------+------------+-------------+---------------------------------+------------------+-------------------------------------- INBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_category_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | schema | public | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d (8 rows)
  2. Créez des bases de données locales qui font référence aux unités de partage des données. Spécifiez l'ID du compte NAMESPACE et lors de la création de la base de données à partir du partage de données. Pour de plus amples informations, veuillez consulter CREATE DATABASE.

    CREATE DATABASE sales_db FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';

    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 4.

    CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';

    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.

  3. (Facultatif) Créez des schémas externes pour référencer et attribuer des autorisations détaillées à des schémas spécifiques de 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';
  4. 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 ou à 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 de l’unité de partage des données. 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. Vous pouvez ensuite 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 2, 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;
  5. 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, utilisez ODBC les pilotes JDBC or 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. Les clusters consommateur ne peuvent pas se connecter aux bases de données créées à partir des unités de partage des données.

    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;

    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 d’adresser des requêtes, les consommateurs peuvent créer des vues sur des objets partagés. Seules les vues à liaison tardive et 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;