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
Ajouter des tables de lac de données à une unité de partage des données
Avec une unité de partage des 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 compte AWS 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 données AWS Glue, à une unité de partage des données. Il prend en charge deux cas d’utilisation :
-
Ajout d’une vue à liaison tardive à une unité de partage des 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 à une unité de partage des 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 à une unité de partage des 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 données AWS dans Redshift à l’aide de CREATE EXTERNAL SCHEMA. N’importe quelle table du catalogue de données AWS peut être la source.
Note
Les tables de lac de données que vous ajoutez à une unité de partage des données peuvent inclure des tables enregistrées auprès de Lake Formation et des tables de catalogue de données AWS Glue.
Créer un schéma externe et une table externe
Vous créez un schéma externe et une table externe afin de les ajouter à l’unité de partage des données dans les sections qui suivent. Il s’agit d’étapes préliminaires. Si vous les avez déjà effectuées, vous pouvez ignorer cette section.
-
Sur le producteur, créez un schéma externe qui fait référence aux données de lac des données stockées dans Amazon S3. Le schéma externe référence le catalogue de données AWS Glue. Le rôle et la région de l’exemple 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'; -
Créer 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’exemple de inclut la
LOCATION. Elle doit être dans le formulaires3://{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 Exemples pour 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 à liaison tardive qui référence une table de lac de données à une unité de partage des données
Lorsque vous créez des tables basées sur un schéma externe issu du catalogue de données AWS et que vous souhaitez les ajouter à une unité de partage des données, la méthode la plus courante consiste à ajouter une vue à liaison tardive Redshift qui référence la table que vous avez créée, laquelle contient les données du lac de données. La procédure suivante montre les étapes :
-
Créez une vue à liaison tardive qui 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; -
Ajoutez le schéma de vue à une unité de partage des données. Il s’agit du schéma local qui contient la vue à liaison tardive.
ALTER DATASHARE dsx_datashare ADD SCHEMA public; -
Ajoutez le schéma qui contient la table référencée par la vue à liaison tardive à l’unité de partage des données. L’ajout du schéma est obligatoire pour toutes les tables de base référencées dans une vue ajoutée à une unité de partage des 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 à liaison tardive.
ALTER DATASHARE dsx_datashare ADD SCHEMA external_schema_name; ALTER DATASHARE dsx_datashare ADD SCHEMA other_schema; -
Ajoutez la vue de l’unité de partage des 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; -
Vérifiez que la vue et les schémas ont bien été ajoutés à l’unité de partage des données :
SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare'; -
L’administrateur consommateur crée une base de données à partir de l’unité de partage des 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 l’unité de partage des données peuvent interroger les données.
Ajouter une table de lac de données directement dans une unité de partage des données
L’ajout d’une table dans un schéma externe à une unité de partage des 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 à une unité de partage des données à l’aide de SQL.
-
Créez un schéma externe et une table externe, comme décrit dans la première section de cette rubrique.
-
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'; -
Ajoutez le schéma externe à l’unité de partage des données :
ALTER DATASHARE my_datashare ADD SCHEMA external_schema_name; -
Ajoutez la table externe à l’unité de partage des 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; -
Vérifiez que la table a bien été ajoutée à l’unité de partage des 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 compte AWS.
-
Sur le consommateur, qui est la base de données recevant les données partagées, l’administrateur associe l’unité de partage des 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 d’unités de partage des 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 à une unité de partage des données
Lorsque vous utilisez des tables et des vues issues d’un lac de données dans une unité de partage des données, vous devez tenir compte de plusieurs points :
-
Connexion avec AWS CloudTrail : le compte du producteur de données peut utiliser des journaux AWS CloudTrail pour vérifier l’accès aux tables de lacs de données partagées via une unité de partage des données :
-
Utilisation des données des journaux pour contrôler l’accès aux données : les journaux CloudTrail enregistrent des informations sur les personnes qui accèdent aux tables partagées, y compris les producteurs et les consommateurs d’unités de partage des données Redshift. Les identifiants sont disponibles dans le champ
ExternalIdsous les journaux CloudTrailAssumeRole. 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 comptes AWS appartenant à 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 à une unité de partage des données
Ce qui suit 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 une unité de partage des 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 alloué, Redshift utilise Redshift Spectrum pour analyser les données Amazon S3. Par conséquent, le coût de Spectrum est facturé au compte du consommateur.
-
Lorsque le consommateur est un groupe de travail Amazon Redshift sans serveur, 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 sur la facturation Amazon Redshift sans serveur, consultez Facturation pour Amazon Redshift sans serveur. Des informations supplémentaires sur la facturation et la tarification sont disponibles sur Tarification d’Amazon Redshift