Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la publicación del blog
Tablas de Iceberg de referencia en Amazon Redshift
Amazon Redshift ofrece varias formas de hacer referencia a las tablas de Apache Iceberg almacenadas en el lago de datos. Puede usar esquemas externos para crear referencias a las bases de datos del catálogo de datos que contienen tablas de Iceberg o usar una notación de tres partes para acceder directamente a los catálogos montados automáticamente.
Uso de esquemas externos para hacer referencia a las tablas de Iceberg
Los esquemas externos proporcionan una forma de hacer referencia a las tablas del catálogo de datos desde Amazon Redshift. Cuando crea un esquema externo, establece una conexión entre la base de datos de Amazon Redshift y una base de datos de catálogo de datos específica que incluye las tablas de Iceberg.
Para crear un esquema externo para las tablas de Iceberg:
CREATE EXTERNAL SCHEMAschema_nameFROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::account-id:role/role-name';
Tras crear el esquema externo, puede consultar las tablas de Iceberg mediante una notación de dos partes:
SELECT * FROMschema_name.iceberg_table_name;
También puede unir tablas de Iceberg con tablas locales de Amazon Redshift:
SELECT r.customer_id, i.order_date, r.customer_name FROM local_customers r JOINschema_name.iceberg_ordersi ON r.customer_id = i.customer_id;
Uso de la notación de tres partes con catálogos montados automáticamente
La notación de tres partes permite hacer referencia directa a las tablas de los catálogos montados automáticamente sin crear esquemas externos. Esto resulta particularmente útil cuando se trabaja con buckets de tablas de Amazon S3 federados con AWS Lake Formation. Para obtener información sobre cómo configurar el montaje automático del catálogo de datos, consulte Simplificación del acceso a objetos externos en Amazon Redshift mediante el montaje automático de AWS Glue Data Catalog
La sintaxis de la notación de tres partes es:
"catalog_name".database_name.table_name
Por ejemplo, para consultar una tabla de Iceberg en un catálogo de tablas de Amazon S3 montado automáticamente:
SELECT * FROM "my_table_bucket@s3tablescatalog".my_database.my_iceberg_table;
Para obtener más información sobre la integración de buckets de tablas de Amazon S3 con Amazon Redshift, consulte Acceso a las tablas de Amazon S3 con Amazon Redshift en la Guía del usuario de Amazon S3.
También puede usar la instrucción USE para establecer un catálogo y una base de datos predeterminados:
USE "my_table_bucket@s3tablescatalog".my_database; SELECT * FROMmy_iceberg_table;
Para establecer una ruta de búsqueda para la resolución del esquema:
USE "my_table_bucket@s3tablescatalog"; SET search_path TOmy_database; SELECT * FROMmy_iceberg_table;
Prácticas recomendadas para hacer referencia a tablas de Iceberg
Tenga en cuenta las siguientes prácticas recomendadas al hacer referencia a tablas de Iceberg en Amazon Redshift:
-
Use nombres de esquema descriptivos: al crear esquemas externos, use nombres que indiquen claramente el origen y el propósito de los datos, como
sales_data_lakeocustomer_analytics. -
Aproveche las estadísticas de las tablas: asegúrese de que las estadísticas de las columnas se generen para las tablas de Iceberg que utilicen AWS Glue para optimizar el rendimiento de las consultas. Amazon Redshift utiliza estas estadísticas para planificar y optimizar las consultas.
-
Tenga en cuenta la actualización de los datos: otros servicios pueden actualizar las tablas de Iceberg mientras las consulta. Amazon Redshift proporciona coherencia transaccional, lo que garantiza que vea una instantánea coherente de los datos durante la ejecución de la consulta.
-
Utilice los permisos de IAM adecuados: asegúrese de que el clúster o grupo de trabajo de Amazon Redshift tenga los permisos de IAM necesarios para acceder a las ubicaciones de Amazon S3 en las que se almacenan las tablas de Iceberg, así como a los metadatos del catálogo de datos.
-
Supervise el rendimiento de las consultas: utilice las características de supervisión de consultas de Amazon Redshift para realizar un seguimiento del rendimiento de las consultas en comparación con las tablas de Iceberg y optimícelas según sea necesario.
Patrones de referencia comunes
En los siguientes ejemplos, se muestran patrones comunes para hacer referencia a las tablas de Iceberg:
Adición de datos en varias tablas de 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;
Unión de tablas de Iceberg con tablas locales de Amazon Redshift:
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;
Uso de una notación de tres partes con consultas complejas:
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;