Ajouter des tables de lac de données à un partage de données - 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.

Ajouter des tables de lac de données à un partage de données

Grâce à un partage de données, un producteur de données peut partager en toute sécurité des objets de base de données de granularité fine, tels que des schémas et des tables, avec des consommateurs appartenant au même AWS compte ou à des comptes différents. Le producteur peut également partager des objets entre les régions. Cette rubrique décrit comment ajouter des objets d'un lac de données, en particulier du catalogue de AWS Glue données, à un partage de données. Il couvre deux cas d'utilisation :

  • Ajouter une vue de liaison tardive à un partage de données qui fait référence à une table provenant d'un lac de données — C'est pratique pour le consommateur, car la configuration préliminaire, telle que la définition des autorisations sur les données sources externes, par exemple avec Lake Formation, est probablement déjà terminée. Un autre avantage est qu'une vue ajoutée à un partage de données permet de joindre des tables issues du lac de données à des tables natives Redshift.

  • Ajout direct d'une table à partir d'un schéma externe à un partage de données : les objets du lac de données sont ainsi mis à la disposition des consommateurs sans couches ni logique supplémentaires. Les consommateurs peuvent interroger la table ou la joindre aux tables du consommateur.

Ces cas s'appliquent une fois que vous avez référencé une table du catalogue de AWS données dans Redshift à l'aide de CREATE EXTERNAL SCHEMA. N'importe quelle table du catalogue de AWS données peut être la source.

Note

Les tables de lac de données que vous ajoutez à un partage de données peuvent inclure des tables enregistrées auprès de Lake Formation et des tables de catalogue de AWS Glue données.

Création d'un schéma externe et d'une table externe

Vous créez un schéma externe et une table externe afin de les ajouter au partage de données dans les sections qui suivent. Il s'agit d'étapes préliminaires. Si vous l'avez déjà fait, vous pouvez ignorer cette section.

  1. Sur le producteur, créez un schéma externe qui fait référence aux données du lac de données stockées dans Amazon S3. Le schéma externe fait référence au AWS Glue Data Catalog. Le rôle et la région de l'échantillon en sont des exemples :

    CREATE EXTERNAL SCHEMA external_schema_name FROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role' REGION 'us-east-1';
  2. Créez une table de lac de données dans le schéma externe.

    CREATE EXTERNAL TABLE external_schema_name.sales( salesid INTEGER, sellerid INTEGER, buyerid INTEGER, saledate DATE, pricepaid DECIMAL(8,2)) ROW FORMAT delimited FIELDS TERMINATED BY '\t' STORED AS textfile LOCATION 's3://redshift-downloads/tickit/spectrum/sales/';

    L'échantillon inclut leLOCATION. Il doit être dans le formulaire s3://{bucket_name}/{folder}/ où le dossier est spécifié. Le dossier doit comporter au moins un caractère. Vous pouvez éventuellement inclure des sous-dossiers. Pour voir d'autres exemples de création de tables dans un lac de données, consultez la section Exemples de CREATE EXTERNAL TABLE.

    Note

    Le partage n'est pris en charge que pour les tables où le rôle IAM du producteur dispose d'un accès SELECT sur la table.

Ajoutez une vue de liaison tardive qui fait référence à une table de lac de données à un partage de données

Lorsque vous créez des tables basées sur un schéma externe issu du catalogue de AWS données et que vous souhaitez les ajouter à un partage de données, la méthode la plus courante consiste à ajouter une vue de liaison tardive Redshift faisant référence à la table que vous avez créée, qui contient les données du lac de données. La procédure suivante indique les étapes à suivre :

  1. Créez une vue de liaison tardive qui fait référence à la table externe que vous avez créée précédemment :

    CREATE VIEW lbv AS select * from external_schema_name.sales, other_schema.t1 WITH NO SCHEMA BINDING;
  2. Ajoutez le schéma de vue au partage de données. Il s'agit du schéma local qui contient la vue de liaison tardive.

    ALTER DATASHARE dsx_datashare ADD SCHEMA public;
  3. Ajoutez au partage de données le schéma qui contient la table référencée par la vue de liaison tardive. L'ajout du schéma est obligatoire pour toutes les tables de base référencées dans une vue ajoutée à un partage de données, que le schéma contienne des objets de base de données locaux ou des objets provenant d'un lac de données. Notez que vous devez ajouter ce schéma avant d'ajouter la vue de liaison tardive.

    ALTER DATASHARE dsx_datashare ADD SCHEMA external_schema_name; ALTER DATASHARE dsx_datashare ADD SCHEMA other_schema;
  4. Ajoutez la vue au partage de données à l'aide d'une commande SQL. Notez que le nom de la table inclut le préfixe du schéma.

    ALTER DATASHARE my_datashare ADD TABLE public.lbv;
  5. Vérifiez que la vue et les schémas ont bien été ajoutés au partage de données :

    SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';
  6. L'administrateur du consommateur crée une base de données à partir du partage de données, puis en autorise l'utilisation aux utilisateurs consommateurs.

Une fois les étapes terminées, les utilisateurs consommateurs de la base de données ayant accès à la vue de partage de données peuvent interroger les données.

Ajouter une table de lac de données directement dans un partage de données

L'ajout d'une table dans un schéma externe à un partage de données est similaire à l'ajout d'une vue. Cela fonctionne bien dans le cas où un consommateur souhaite interroger la table du lac de données dans son état d'origine, ou s'il souhaite la joindre aux tables de l'entrepôt de données des consommateurs. Les étapes suivantes vous montrent comment ajouter une table de lac de données à un partage de données à l'aide de SQL.

  1. Créez un schéma externe et une table externe, comme décrit dans la première section de cette rubrique.

  2. Découvrez les tables existantes dans le schéma externe pour vérifier que la table que vous avez créée est disponible :

    SELECT * FROM svv_external_tables WHERE schemaname = 'external_schema_name';
  3. Ajoutez le schéma externe au partage de données :

    ALTER DATASHARE my_datashare ADD SCHEMA external_schema_name;
  4. Ajoutez la table externe au partage de données. Notez que le nom de la table inclut le préfixe du schéma :

    ALTER DATASHARE my_datashare ADD TABLE external_schema_name.sales;
  5. Vérifiez que la table a bien été ajoutée au partage de données :

    SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';

    Pour des instructions plus détaillées, voir Partage de l'accès en lecture aux données d'un AWS compte.

  6. Sur le consommateur, qui est la base de données recevant les données partagées, l'administrateur associe le partage de données pour que les utilisateurs puissent les interroger sur les tables partagées. Pour plus d'informations sur la manière d'effectuer cette étape, consultez la section Gestion des partages de données provenant d'autres comptes en tant que consommateur.

Une fois que les administrateurs ont terminé les étapes, les utilisateurs de la base de données du consommateur peuvent écrire des requêtes pour récupérer les données de la table partagée et les joindre aux autres tables du consommateur.

Remarques d'utilisation relatives à l'ajout d'objets de lac de données à un partage de données

Lorsque vous utilisez des tables et des vues issues d'un lac de données dans un partage de données, vous devez tenir compte de plusieurs points :

  • Connexion avec AWS CloudTrail : le compte du producteur de données peut utiliser AWS CloudTrail des journaux pour vérifier l'accès aux tables de lacs de données partagées via un partage de données :

    • Utilisation des données des journaux pour contrôler l'accès aux données : les CloudTrail journaux enregistrent des informations sur les personnes qui accèdent aux tables partagées, y compris les producteurs et les consommateurs de partages de données Redshift. Les identifiants sont disponibles dans le ExternalId champ situé sous les AssumeRole CloudTrail journaux. Le propriétaire des données peut configurer des limites supplémentaires d'accès aux données dans une politique IAM au moyen d'actions. Pour plus d'informations sur la définition de l'accès aux données par le biais de politiques, voir Accès aux AWS comptes détenus par des tiers.

  • Sécurité et autorisations des consommateurs : pour les tables enregistrées par Lake Formation, les ressources Amazon S3 sont sécurisées par Lake Formation et mises à disposition à l'aide des informations d'identification fournies par Lake Formation.

Considérations relatives à la facturation pour l'ajout d'objets de lac de données à un partage de données

Le tableau suivant détaille la manière dont les coûts sont attribués pour le stockage et la numérisation d'objets de lac de données dans un partage de données :

  • Lorsqu'un consommateur demande des objets partagés à partir d'un lac de données, le coût de numérisation est facturé au consommateur.

    • Lorsque le consommateur est un cluster provisionné, Redshift utilise Redshift Spectrum pour analyser les données Amazon S3. Par conséquent, le coût du spectre est facturé au compte du consommateur.

    • Lorsque le consommateur est un groupe de travail Amazon Redshift Serverless, Spectrum n'est soumis à aucun frais distinct.

  • Les frais de stockage et d'exploitation d'Amazon S3, tels que la mise en vente de compartiments, sont facturés au compte propriétaire de chaque compartiment Amazon S3.

Pour plus d'informations concernant la facturation d'Amazon Redshift Serverless, consultez la section Facturation d'Amazon Redshift Serverless. Des informations supplémentaires sur la facturation et les prix sont disponibles sur la page de tarification d'Amazon Redshift.