Monitoraggio dei carichi di lavoro di Apache Iceberg - AWS Guida prescrittiva

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à.

Monitoraggio dei carichi di lavoro di Apache Iceberg

Per monitorare i carichi di lavoro di Iceberg, hai due opzioni: analizzare le tabelle di metadati o utilizzare i reporter di metriche. I reporter di metriche sono stati introdotti nella versione 1.2 di Iceberg e sono disponibili solo per i cataloghi REST e JDBC.

Se lo utilizzi AWS Glue Data Catalog, puoi ottenere informazioni sullo stato delle tue tabelle Iceberg impostando il monitoraggio in aggiunta alle tabelle di metadati esposte da Iceberg.

Il monitoraggio è fondamentale per la gestione delle prestazioni e la risoluzione dei problemi. Ad esempio, quando una partizione in una tabella Iceberg raggiunge una certa percentuale di file di piccole dimensioni, il carico di lavoro può avviare un processo di compattazione per consolidare i file in file più grandi. In questo modo si evita che le query rallentino oltre un livello accettabile.

Monitoraggio a livello di tabella

La schermata seguente mostra una dashboard di monitoraggio delle tabelle creata in Amazon QuickSight. Questa dashboard interroga le tabelle di metadati di Iceberg utilizzando Spark SQL e acquisisce metriche dettagliate come il numero di file attivi e lo spazio di archiviazione totale. Queste informazioni vengono quindi archiviate in tabelle per scopi operativi. AWS Glue Infine, viene creata una QuickSight dashboard, come illustrato nella figura seguente, utilizzando Amazon Athena. Queste informazioni ti aiutano a identificare e risolvere problemi specifici nei tuoi sistemi.

QuickSight dashboard per il monitoraggio delle tabelle Iceberg

La QuickSight dashboard di esempio raccoglie i seguenti indicatori chiave di prestazione (KPI) per una tabella Iceberg:

KPI

Descrizione

Query

Numero di file

Il numero di file nella tabella Iceberg (per tutte le istantanee)

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

Numero di file attivi

Il numero di file attivi nell'ultima istantanea della tabella Iceberg

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

Dimensione media del file

La dimensione media dei file, in megabyte, per tutti i file della tabella Iceberg

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

Dimensione media dei file attivi

La dimensione media dei file, in megabyte, per i file attivi nella tabella Iceberg

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

Percentuale di file di piccole dimensioni

La percentuale di file attivi di dimensioni inferiori a 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

Dimensione totale dello spazio di archiviazione

La dimensione totale di tutti i file nella tabella, esclusi i file orfani e le versioni degli oggetti Amazon S3 (se abilitate)

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

Dimensione totale dello storage attivo

La dimensione totale di tutti i file nelle istantanee correnti di una determinata tabella

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

Monitoraggio a livello di database

L'esempio seguente mostra un dashboard di monitoraggio creato nel QuickSight per fornire una panoramica dei KPI a livello di database per una raccolta di tabelle Iceberg.

QuickSight dashboard per il monitoraggio a livello di database per Iceberg

Questa dashboard raccoglie i seguenti KPI:

KPI

Descrizione

Query

Numero di file

Il numero di file nel database Iceberg (per tutte le istantanee)

Questa dashboard utilizza le query a livello di tabella fornite nella sezione precedente e consolida i risultati.

Numero di file attivi

Il numero di file attivi nel database Iceberg (basato sulle ultime istantanee delle tabelle Iceberg)

Dimensione media del file

La dimensione media dei file, in megabyte, per tutti i file del database Iceberg

Dimensione media dei file attivi

La dimensione media dei file, in megabyte, per tutti i file attivi nel database Iceberg

Percentuale di file di piccole dimensioni

La percentuale di file attivi di dimensioni inferiori a 100 MB nel database Iceberg

Dimensione totale dello spazio di archiviazione

La dimensione totale di tutti i file nel database, esclusi i file orfani e le versioni degli oggetti Amazon S3 (se abilitate)

Dimensione totale dello storage attivo

La dimensione totale di tutti i file nelle istantanee correnti di tutte le tabelle del database

Manutenzione preventiva

Impostando le funzionalità di monitoraggio illustrate nelle sezioni precedenti, è possibile affrontare la manutenzione delle tabelle da un punto di vista preventivo anziché reattivo. Ad esempio, puoi utilizzare le metriche a livello di tabella e a livello di database per pianificare azioni come le seguenti:

  • Utilizzate la compattazione con imballaggio in contenitori per raggruppare file di piccole dimensioni quando una tabella raggiunge N file di piccole dimensioni.

  • Usa la compressione tramite bin packing per unire i file eliminati quando una tabella raggiunge N, elimina i file in una determinata partizione.

  • Rimuovi i file di piccole dimensioni che erano già compattati rimuovendo le istantanee quando lo spazio di archiviazione totale è X volte superiore allo storage attivo.