View a markdown version of this page

Fazer referência a tabelas do Iceberg no Amazon Redshift - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a publicação de blog .

Fazer referência a tabelas do Iceberg no Amazon Redshift

O Amazon Redshift fornece várias maneiras de fazer referência a tabelas do Apache Iceberg armazenadas em seu data lake. Você pode usar esquemas externos para criar referências aos bancos de dados do Catálogo de Dados contendo tabelas do Iceberg ou usar a notação em três partes para acesso direto aos catálogos montados automaticamente.

Usar esquemas externos para fazer referência a tabelas do Iceberg

Os esquemas externos oferecem uma forma de fazer referência a tabelas em seu Catálogo de Dados a partir do Amazon Redshift. Ao criar um esquema externo, você deve estabelecer conexão entre o banco de dados do Amazon Redshift e um banco de dados específico do Catálogo de Dados que inclua as tabelas do Iceberg.

Para criar um esquema externo para tabelas do Iceberg:

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

Depois de criar o esquema externo, você pode consultar as tabelas do Iceberg usando a notação em duas partes:

SELECT * FROM schema_name.iceberg_table_name;

Você também pode unir tabelas do Iceberg com tabelas locais do Amazon Redshift:

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;

Usando notação em três partes com catálogos montados automaticamente.

A notação em três partes permite que você faça referência direta a tabelas em catálogos montados automaticamente sem criar esquemas externos. Esse método é particularmente útil quando você trabalha com buckets de tabelas do Amazon S3 federados com o AWS Lake Formation. Para acessar informações sobre como configurar a montagem automática do Catálogo de Dados, consulte Simplificar o acesso a objetos externos no Amazon Redshift usando a montagem automática do AWS Glue Data Catalog.

A sintaxe da notação em três partes é:

"catalog_name".database_name.table_name

Por exemplo, para consultar uma tabela do Iceberg em um catálogo de tabelas do Amazon S3 montado automaticamente:

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

Para acessar mais informações sobre a integração de buckets de tabelas do Amazon S3 com o Amazon Redshift, consulte Integrar tabelas do S3 com o Amazon Redshift no Guia do usuário do Amazon S3.

Você também pode usar a instrução USE para definir um catálogo e um banco de dados padrão:

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

Para definir um caminho de pesquisa para resolução de esquema:

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

Práticas recomendadas para fazer referência a tabelas do Iceberg

Pense nas seguintes práticas recomendadas ao fazer referência a tabelas do Iceberg no Amazon Redshift.

  • Use nomes de esquemas descritivos: ao criar esquemas externos, use nomes que indiquem claramente a origem e a finalidade dos dados, como sales_data_lake ou customer_analytics.

  • Utilize as estatísticas da tabela: garanta que as estatísticas das colunas sejam geradas para suas tabelas do Iceberg, usando AWS Glue para otimizar a performance da consulta. O Amazon Redshift usa essas estatísticas para planejamento e otimização de consultas.

  • Pense na atualização dos dados: as tabelas do Iceberg podem ser atualizadas por outros serviços enquanto você as consulta. O Amazon Redshift oferece consistência transacional, garantindo que você veja um snapshot consistente dos dados durante a execução da consulta.

  • Use as permissões apropriadas do IAM: garanta que seu cluster ou grupo de trabalho do Amazon Redshift tenha as permissões do IAM necessárias para acessar os locais do Amazon S3 onde suas tabelas do Iceberg estão armazenadas, bem como os metadados do Catálogo de Dados.

  • Monitore a performance das consultas: use os recursos de monitoramento de consultas do Amazon Redshift para acompanhar a performance das consultas em relação às tabelas do Iceberg e otimizá-las conforme necessário.

Padrões de referência comuns

Os exemplos a seguir demonstram os padrões comuns para fazer referência a tabelas do Iceberg:

Agregar dados em várias tabelas do 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;

Unir tabelas do Iceberg com tabelas locais do 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;

Usar a notação em três partes com consultas complexas:

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;