Riferimento alle tabelle Iceberg in Amazon Redshift - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riferimento alle tabelle Iceberg in Amazon Redshift

Amazon Redshift offre diversi modi per fare riferimento alle tabelle Apache Iceberg archiviate nel tuo data lake. È possibile utilizzare schemi esterni per creare riferimenti ai database Data Catalog contenenti tabelle Iceberg o utilizzare la notazione in tre parti per l'accesso diretto ai cataloghi montati automaticamente.

Utilizzo di schemi esterni per fare riferimento alle tabelle Iceberg

Gli schemi esterni forniscono un modo per fare riferimento alle tabelle nel tuo catalogo dati direttamente da Amazon Redshift. Quando crei uno schema esterno, stabilisci una connessione tra il tuo database Amazon Redshift e uno specifico database Data Catalog che contiene le tue tabelle Iceberg.

Per creare uno schema esterno per le tabelle Iceberg:

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

Dopo aver creato lo schema esterno, puoi interrogare le tabelle Iceberg usando una notazione in due parti:

SELECT * FROM schema_name.iceberg_table_name;

Puoi anche unire le tabelle Iceberg alle tabelle Amazon Redshift locali:

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;

Utilizzo della notazione in tre parti con cataloghi montati automaticamente

La notazione in tre parti consente di fare riferimento direttamente alle tabelle nei cataloghi montati automaticamente senza creare schemi esterni. Questo metodo è particolarmente utile quando si lavora con bucket da tavolo Amazon S3 federati con. AWS Lake Formation Per informazioni sulla configurazione del montaggio automatico del Data Catalog, consulta Semplificare l'accesso agli oggetti esterni in Amazon Redshift utilizzando il montaggio automatico di. AWS Glue Data Catalog

La sintassi per la notazione in tre parti è:

"catalog_name".database_name.table_name

Ad esempio, per interrogare una tabella Iceberg in un catalogo di tabelle Amazon S3 montato automaticamente:

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

Per ulteriori informazioni sull'integrazione dei bucket di tabelle di Amazon S3 con Amazon Redshift, consulta Integrating S3 Tables with Amazon Redshift nella Amazon S3 User Guide.

Puoi anche utilizzare l'USEistruzione per impostare un catalogo e un database predefiniti:

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

Per impostare un percorso di ricerca per la risoluzione dello schema:

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

Le migliori pratiche per fare riferimento alle tabelle Iceberg

Prendi in considerazione le seguenti best practice per fare riferimento alle tabelle Iceberg in Amazon Redshift:

  • Usa nomi di schemi descrittivi: quando crei schemi esterni, usa nomi che indichino chiaramente l'origine e lo scopo dei dati, come o. sales_data_lake customer_analytics

  • Sfrutta le statistiche delle tabelle: assicurati che le statistiche delle colonne vengano generate per le tue tabelle Iceberg, AWS Glue utilizzandole per ottimizzare le prestazioni delle query. Amazon Redshift utilizza queste statistiche per la pianificazione e l'ottimizzazione delle query.

  • Considera l'aggiornamento dei dati: le tabelle Iceberg possono essere aggiornate da altri servizi mentre le interroghi. Amazon Redshift offre coerenza transazionale, garantendo un'istantanea coerente dei dati durante l'esecuzione delle query.

  • Usa le autorizzazioni IAM appropriate: assicurati che il tuo cluster o gruppo di lavoro Amazon Redshift disponga delle autorizzazioni IAM necessarie per accedere alle posizioni Amazon S3 in cui sono archiviate le tabelle Iceberg e ai metadati del Data Catalog.

  • Monitora le prestazioni delle query: utilizza le funzionalità di monitoraggio delle query di Amazon Redshift per monitorare le prestazioni delle query rispetto alle tabelle Iceberg e ottimizzarle in base alle esigenze.

Schemi di riferimento comuni

Gli esempi seguenti mostrano modelli comuni per fare riferimento alle tabelle Iceberg:

Aggregazione di dati su più tabelle 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;

Unire le tabelle Iceberg alle tabelle Amazon Redshift locali:

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;

Utilizzo della notazione in tre parti con query complesse:

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;