Monitorando cargas de trabalho do Apache Iceberg - AWS Recomendações da

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitorando cargas de trabalho do Apache Iceberg

Para monitorar as cargas de trabalho do Iceberg, você tem duas opções: analisar tabelas de metadados ou usar relatórios de métricas. Os repórteres de métricas foram introduzidos na versão 1.2 do Iceberg e estão disponíveis somente para catálogos REST e JDBC.

Se você estiver usando AWS Glue Data Catalog, poderá obter informações sobre a integridade de suas tabelas do Iceberg configurando o monitoramento sobre as tabelas de metadados que o Iceberg expõe.

O monitoramento é crucial para o gerenciamento de desempenho e a solução de problemas. Por exemplo, quando uma partição em uma tabela do Iceberg atinge uma certa porcentagem de arquivos pequenos, sua carga de trabalho pode iniciar um trabalho de compactação para consolidar os arquivos em arquivos maiores. Isso evita que as consultas fiquem mais lentas além de um nível aceitável.

Monitoramento em nível de tabela

A tela a seguir mostra um painel de monitoramento de tabelas criado na Amazon QuickSight. Esse painel consulta as tabelas de metadados do Iceberg usando o Spark SQL e captura métricas detalhadas, como o número de arquivos ativos e o armazenamento total. Essas informações são então armazenadas em AWS Glue tabelas para fins operacionais. Por fim, um QuickSight painel, conforme mostrado na ilustração a seguir, é criado usando o Amazon Athena. Essas informações ajudam você a identificar e resolver problemas específicos em seus sistemas.

QuickSight painel para monitorar tabelas Iceberg

O QuickSight painel de exemplo coleta os seguintes indicadores-chave de desempenho (KPIs) para uma tabela Iceberg:

KPI

Descrição

Consulta

Número de arquivos

O número de arquivos na tabela Iceberg (para todos os instantâneos)

select count(*) from <catalog.database.table_name>.all_files

Número de arquivos ativos

O número de arquivos ativos no último instantâneo da tabela Iceberg

select count(*) from <catalog.database.table_name>.files

Tamanho médio do arquivo

O tamanho médio do arquivo, em megabytes, para todos os arquivos na tabela Iceberg

select avg(file_size_in_bytes)/1000000 from <catalog.database.table_name>.all_files

Tamanho médio do arquivo ativo

O tamanho médio do arquivo, em megabytes, dos arquivos ativos na tabela Iceberg

select avg(file_size_in_bytes)/1000000 from <catalog.database.table_name>.files

Porcentagem de arquivos pequenos

A porcentagem de arquivos ativos menores que 100 MB

select cast(sum(case when file_size_in_bytes < 100000000 then 1 else 0 end)*100/count(*) as decimal(10,2)) from <catalog.database.table_name>.files

Tamanho total do armazenamento

O tamanho total de todos os arquivos na tabela, excluindo arquivos órfãos e versões de objetos do Amazon S3 (se habilitado)

select sum(file_size_in_bytes)/1000000 from <catalog.database.table_name>.all_files

Tamanho total do armazenamento ativo

O tamanho total de todos os arquivos nos instantâneos atuais de uma determinada tabela

select sum(file_size_in_bytes)/1000000 from <catalog.database.table_name>.files

Monitoramento em nível de banco de dados

O exemplo a seguir mostra um painel de monitoramento que foi criado QuickSight para fornecer uma visão geral dos KPIs em nível de banco de dados para uma coleção de tabelas Iceberg.

QuickSight painel para monitoramento em nível de banco de dados para Iceberg

Esse painel coleta os seguintes KPIs:

KPI

Descrição

Consulta

Número de arquivos

O número de arquivos no banco de dados do Iceberg (para todos os instantâneos)

Esse painel usa as consultas em nível de tabela fornecidas na seção anterior e consolida os resultados.

Número de arquivos ativos

O número de arquivos ativos no banco de dados do Iceberg (com base nos últimos instantâneos das tabelas do Iceberg)

Tamanho médio do arquivo

O tamanho médio do arquivo, em megabytes, de todos os arquivos no banco de dados Iceberg

Tamanho médio do arquivo ativo

O tamanho médio do arquivo, em megabytes, de todos os arquivos ativos no banco de dados Iceberg

Porcentagem de arquivos pequenos

A porcentagem de arquivos ativos menores que 100 MB no banco de dados do Iceberg

Tamanho total do armazenamento

O tamanho total de todos os arquivos no banco de dados, excluindo arquivos órfãos e versões de objetos do Amazon S3 (se habilitado)

Tamanho total do armazenamento ativo

O tamanho total de todos os arquivos nos instantâneos atuais de todas as tabelas no banco de dados

Manutenção preventiva

Ao configurar os recursos de monitoramento discutidos nas seções anteriores, você pode abordar a manutenção da mesa de um ângulo preventivo em vez de reativo. Por exemplo, você pode usar as métricas em nível de tabela e em nível de banco de dados para programar ações como as seguintes:

  • Use a compactação de compartimentos para agrupar arquivos pequenos quando uma tabela atingir N arquivos pequenos.

  • Use a compactação de compartimentos para mesclar arquivos excluídos quando uma tabela atingir N arquivos excluídos em uma determinada partição.

  • Remova arquivos pequenos que já foram compactados removendo instantâneos quando o armazenamento total for X vezes maior que o armazenamento ativo.