View a markdown version of this page

Référencement des tables Iceberg dans Amazon Redshift - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le billet de blog .

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.

Référencement des tables Iceberg dans Amazon Redshift

Amazon Redshift propose plusieurs méthodes pour référencer les tables Apache Iceberg stockées dans votre lac de données. Vous pouvez utiliser des schémas externes pour créer des références aux bases de données du catalogue de données contenant des tables Iceberg, ou utiliser une notation en trois parties pour accéder directement aux catalogues montés automatiquement.

Utilisation de schémas externes pour référencer les tables Iceberg

Les schémas externes permettent de référencer les tables de votre catalogue de données depuis Amazon Redshift. Lorsque vous créez un schéma externe, vous établissez une connexion entre votre base de données Amazon Redshift et une base de données Data Catalog spécifique qui contient vos tables Iceberg.

Pour créer un schéma externe pour les tables Iceberg :

CREATE EXTERNAL SCHEMA schema_name FROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::account-id:role/role-name';

Après avoir créé le schéma externe, vous pouvez interroger les tables Iceberg à l'aide d'une notation en deux parties :

SELECT * FROM schema_name.iceberg_table_name;

Vous pouvez également associer des tables Iceberg à des tables Amazon Redshift locales :

SELECT r.customer_id, i.order_date, r.customer_name FROM local_customers r JOIN schema_name.iceberg_orders i ON r.customer_id = i.customer_id;

Utilisation de la notation en trois parties avec des catalogues montés automatiquement

La notation en trois parties vous permet de référencer directement des tables dans des catalogues montés automatiquement sans créer de schémas externes. Cette méthode est particulièrement utile lorsque vous travaillez avec des compartiments de table Amazon S3 fédérés avec. AWS Lake Formation Pour plus d'informations sur la configuration du montage automatique du catalogue de données, consultez Simplifier l'accès aux objets externes dans Amazon Redshift à l'aide du montage automatique du. AWS Glue Data Catalog

La syntaxe de la notation en trois parties est la suivante :

"catalog_name".database_name.table_name

Par exemple, pour interroger une table Iceberg dans un catalogue de tables Amazon S3 monté automatiquement :

SELECT * FROM "my_table_bucket@s3tablescatalog".my_database.my_iceberg_table;

Pour plus d'informations sur l'intégration des compartiments de tables Amazon S3 à Amazon Redshift, consultez la section Intégration des tables S3 à Amazon Redshift dans le guide de l'utilisateur Amazon S3.

Vous pouvez également utiliser l'USEinstruction pour définir un catalogue et une base de données par défaut :

USE "my_table_bucket@s3tablescatalog".my_database; SELECT * FROM my_iceberg_table;

Pour définir un chemin de recherche pour la résolution du schéma, procédez comme suit :

USE "my_table_bucket@s3tablescatalog"; SET search_path TO my_database; SELECT * FROM my_iceberg_table;

Bonnes pratiques pour référencer les tables Iceberg

Tenez compte des meilleures pratiques suivantes lorsque vous référencez des tables Iceberg dans Amazon Redshift :

  • Utiliser des noms de schéma descriptifs : lors de la création de schémas externes, utilisez des noms qui indiquent clairement la source et le but des données, tels que sales_data_lake oucustomer_analytics.

  • Tirez parti des statistiques des tables : assurez-vous que les statistiques des colonnes sont générées pour vos tables Iceberg AWS Glue afin d'optimiser les performances des requêtes. Amazon Redshift utilise ces statistiques pour la planification et l'optimisation des requêtes.

  • Tenez compte de l'actualité des données : les tables Iceberg peuvent être mises à jour par d'autres services pendant que vous les interrogez. Amazon Redshift assure la cohérence transactionnelle, vous garantissant ainsi un instantané cohérent des données lors de l'exécution de votre requête.

  • Utilisez les autorisations IAM appropriées : assurez-vous que votre cluster ou groupe de travail Amazon Redshift dispose des autorisations IAM nécessaires pour accéder aux emplacements Amazon S3 où sont stockées vos tables Iceberg, ainsi qu'aux métadonnées du catalogue de données.

  • Surveillez les performances des requêtes : utilisez les fonctionnalités de surveillance des requêtes d'Amazon Redshift pour suivre les performances des requêtes par rapport aux tables Iceberg et les optimiser selon les besoins.

Modèles de référencement courants

Les exemples suivants illustrent les modèles courants de référencement des tables Iceberg :

Agrégation des données dans plusieurs tables Iceberg :

SELECT region, SUM(sales_amount) as total_sales, COUNT(*) as transaction_count FROM data_lake.sales_transactions WHERE transaction_date >= '2024-01-01' GROUP BY region ORDER BY total_sales DESC;

Joindre des tables Iceberg à des tables Amazon Redshift locales :

SELECT c.customer_name, c.customer_tier, SUM(o.order_amount) as total_orders FROM customers c JOIN data_lake.order_history o ON c.customer_id = o.customer_id WHERE o.order_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY c.customer_name, c.customer_tier;

Utilisation de la notation en trois parties avec des requêtes complexes :

WITH recent_orders AS ( SELECT customer_id, order_date, order_amount FROM "analytics_bucket@s3tablescatalog".ecommerce.orders WHERE order_date >= CURRENT_DATE - INTERVAL '7 days' ) SELECT customer_id, COUNT(*) as order_count, AVG(order_amount) as avg_order_value FROM recent_orders GROUP BY customer_id HAVING COUNT(*) > 1;