

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Surveillance des charges de travail Apache Iceberg
<a name="monitoring"></a>

Pour surveiller les charges de travail d'Iceberg, deux options s'offrent à vous : analyser les [tables de métadonnées](https://iceberg.apache.org/docs/latest/spark-queries/#inspecting-tables) ou utiliser des rapports de [mesures](https://iceberg.apache.org/javadoc/latest/index.html?org/apache/iceberg/metrics/MetricsReporter.html). Les reporters de métriques ont été introduits dans la version 1.2 d'Iceberg et ne sont disponibles que pour les catalogues REST et JDBC.

Si vous en utilisez AWS Glue Data Catalog, vous pouvez obtenir des informations sur l'état de vos tables Iceberg en configurant une surveillance au-dessus des tables de métadonnées exposées par Iceberg.

La surveillance est essentielle pour la gestion des performances et le dépannage. Par exemple, lorsqu'une partition d'une table Iceberg atteint un certain pourcentage de petits fichiers, votre charge de travail peut démarrer une tâche de compactage pour consolider les fichiers en fichiers plus volumineux. Cela empêche les requêtes de ralentir au-delà d'un niveau acceptable.

## Surveillance au niveau de la table
<a name="table-level-monitoring"></a>

L'écran suivant montre un tableau de bord de surveillance des tables créé dans Amazon Quick Sight. Ce tableau de bord interroge les tables de métadonnées d'Iceberg à l'aide de Spark SQL et capture des métriques détaillées telles que le nombre de fichiers actifs et le stockage total. Ces informations sont ensuite stockées dans AWS Glue des tables à des fins opérationnelles. Enfin, un tableau de bord Quick Sight, comme illustré ci-dessous, est créé à l'aide d'Amazon Athena. Ces informations vous aident à identifier et à résoudre les problèmes spécifiques de vos systèmes.

![\[Tableau de bord Quick Sight pour surveiller les tables Iceberg\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/apache-iceberg-on-aws/images/quicksight-table.png)


L'exemple de tableau de bord Quick Sight collecte les indicateurs de performance clés suivants (KPIs) pour une table Iceberg :


| **KPI** | **Description** | **Interrogation** | 
| --- |--- |--- |
| **Nombre de fichiers** | Le nombre de fichiers dans la table Iceberg (pour tous les instantanés) | <pre>select count(*) <br />from <catalog.database.table_name>.all_files</pre> | 
| **Nombre de fichiers actifs** | Le nombre de fichiers actifs dans le dernier instantané de la table Iceberg | <pre>select count(*) <br />from <catalog.database.table_name>.files</pre> | 
| **Taille de fichier moyenne** | Taille moyenne des fichiers, en mégaoctets, pour tous les fichiers de la table Iceberg | <pre>select avg(file_size_in_bytes)/1000000 <br />from <catalog.database.table_name>.all_files</pre> | 
| **Taille moyenne du fichier actif** | Taille moyenne des fichiers, en mégaoctets, pour les fichiers actifs de la table Iceberg | <pre>select avg(file_size_in_bytes)/1000000 <br />from <catalog.database.table_name>.files</pre> | 
| **Pourcentage de petits fichiers** | Pourcentage de fichiers actifs dont la taille est inférieure à 100 Mo | <pre>select cast(sum(case when file_size_in_bytes < 100000000 then 1 else 0 end)*100/count(*) as decimal(10,2)) <br />from <catalog.database.table_name>.files</pre> | 
| **Taille totale de stockage** | Taille totale de tous les fichiers du tableau, à l'exception des fichiers orphelins et des versions d'objets Amazon S3 (si activé) | <pre>select sum(file_size_in_bytes)/1000000 <br />from <catalog.database.table_name>.all_files</pre> | 
| **Taille totale du stockage actif** | La taille totale de tous les fichiers dans les instantanés actuels d'une table donnée | <pre>select sum(file_size_in_bytes)/1000000 <br />from <catalog.database.table_name>.files</pre> | 

Pour plus d'informations sur la création de tableaux de bord, consultez la [documentation de Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html).

## Surveillance au niveau de la base de données
<a name="database-level-monitoring"></a>

L'exemple suivant montre un tableau de bord de surveillance créé dans Quick Sight pour fournir une vue d'ensemble au niveau de la base de données KPIs pour une collection de tables Iceberg.

![\[QuickSight tableau de bord pour la surveillance au niveau de la base de données pour Iceberg\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/apache-iceberg-on-aws/images/quicksight-database.png)


Ce tableau de bord collecte les informations suivantes KPIs :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/apache-iceberg-on-aws/monitoring.html)

## Maintenance préventive
<a name="preventive-maintenance"></a>

En configurant les fonctionnalités de surveillance décrites dans les sections précédentes, vous pouvez aborder la maintenance des tables d'un point de vue préventif plutôt que réactif. Par exemple, vous pouvez utiliser les métriques au niveau de la table et de la base de données pour planifier des actions telles que les suivantes :
+ Utilisez le compactage par bacs pour regrouper les petits fichiers lorsqu'une table atteint N petits fichiers.
+ Utilisez le compactage par bacs pour fusionner les fichiers de suppression lorsqu'une table atteint N fichiers de suppression dans une partition donnée.
+ Supprimez les petits fichiers déjà compactés en supprimant les instantanés lorsque le stockage total est X fois supérieur au stockage actif.