

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.

# Optimisation du compactage
<a name="compaction-management"></a>

 Les lacs de données Amazon S3 utilisant des formats de table ouverts comme Apache Iceberg stockent les données sous forme d’objets S3. La présence de milliers de petits objets Amazon S3 dans une table de lac de données augmente la surcharge de métadonnées et affecte les performances de lecture. AWS Glue Data Catalog fournit un compactage géré pour les tables Iceberg, en compactant de petits objets en de plus grands objets pour améliorer les performances de lecture grâce à des services AWS d'analyse tels qu' Amazon Athena Amazon EMR et à des tâches ETL. AWS Glue Le catalogue de données effectue le compactage sans interférer avec les requêtes simultanées et prend en charge le compactage uniquement pour les tables au format Parquet. 

L’optimiseur de table surveille en permanence les partitions des tables et lance le processus de compactage lorsque le seuil du nombre et de la taille des fichiers est dépassé.

Dans le catalogue de données, le processus de compactage démarre lorsqu’une table ou l’une de ses partitions contient plus de 100 fichiers. Chaque fichier doit être inférieur à 75 % de la taille du fichier cible. La taille du fichier cible est définie par la propriété de la table `write.target-file-size-bytes`, qui est par défaut de 512 Mo si elle n’est pas définie explicitement.

 Pour connaître les limitations, veuillez consulter [Formats pris en charge et restrictions pour le compactage de données géré](optimizer-notes.md#compaction-notes). 

**Topics**
+ [Activation de l’optimiseur de compactage](enable-compaction.md)
+ [Désactivation de l’optimiseur de compactage](disable-compaction.md)

# Activation de l’optimiseur de compactage
<a name="enable-compaction"></a>

 Vous pouvez utiliser AWS Glue la console ou l' AWS API pour activer le compactage de vos tables Apache Iceberg dans le catalogue de AWS Glue données. AWS CLI Pour les nouvelles tables, vous pouvez choisir Apache Iceberg comme format de table et activer le compactage lors de la création de la table. Le compactage est désactivé par défaut pour les nouvelles tables.

------
#### [ Console ]

**Pour activer le compactage**

1.  Ouvrez la AWS Glue console [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)et connectez-vous en tant qu'administrateur du lac de données, créateur de table ou utilisateur ayant obtenu les `lakeformation:GetDataAccess` autorisations `glue:UpdateTable` et sur la table. 

1. Dans le panneau de navigation, sous **Catalogue de données**, choisissez **Tables**.

1. Sur la page **Tables**, choisissez une table au format ouvert pour laquelle vous souhaitez activer le compactage, puis dans le menu **Actions**, choisissez **Optimisation**, puis **Activer**.

   Vous pouvez également activer le compactage en sélectionnant l’onglet **Optimisation des tables** sur la page **Détails de la table**. Choisissez l’onglet **Optimisation des tables** dans la partie inférieure de la page, puis sélectionnez **Activer le compactage**. 

   L’option **Activer l’optimisation** est également disponible lorsque vous créez une table Iceberg dans le catalogue de données.

1. Sur la page **Activer l’optimisation**, sélectionnez **Compactage** sous **Options d’optimisation**.  
![\[Page de détails des tables Apache Iceberg avec l’option Activer le compactage.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/table-enable-compaction.png)

1. Sélectionnez ensuite un rôle IAM dans le menu déroulant avec les autorisations indiquées dans la section [Conditions préalables requises pour l’optimisation des tables](optimization-prerequisites.md). 

   Vous pouvez aussi choisir l’option **Créer un rôle IAM** pour créer un rôle personnalisé avec des autorisations requises pour exécuter le compactage.

    Suivez les étapes ci-dessous pour mettre à jour un rôle IAM existant : 

   1.  Pour mettre à jour la stratégie d’autorisation pour le rôle IAM, dans la console IAM, accédez au rôle IAM utilisé pour exécuter le compactage. 

   1.  Dans la section **Ajouter des autorisations**, choisissez Créer une politique. Dans la fenêtre du navigateur nouvellement ouverte, créez une nouvelle stratégie à utiliser avec votre rôle. 

   1. Sur la page Créer une politique, choisissez l’onglet `JSON`. Copiez le code JSON affiché dans les prérequis dans le champ de l’éditeur de politique.

1. Si vous avez des configurations de politique de sécurité dans lesquelles l'optimiseur de table Iceberg doit accéder aux compartiments Amazon S3 à partir d'un Virtual Private Cloud (VPC) spécifique, créez AWS Glue une connexion réseau ou utilisez une connexion réseau existante.

   Si aucune connexion AWS Glue VPC n'est déjà configurée, créez-en une nouvelle en suivant les étapes de la section [Création de connexions pour les connecteurs](https://docs.aws.amazon.com/glue/latest/dg/creating-connections.html) à l'aide de la AWS Glue console ou du /SDK. AWS CLI

1. Choisissez une politique de compactage. Les options disponibles sont les suivantes :
   + **Binpack** : Binpack est la stratégie de compactage par défaut d’Apache Iceberg. Elle combine des fichiers de données plus petits dans des fichiers plus volumineux pour des performances optimales.
   + **Tri** : le tri dans Apache Iceberg est une technique d’organisation des données qui regroupe les informations au sein de fichiers en fonction de colonnes spécifiées, ce qui améliore considérablement les performances des requêtes en réduisant le nombre de fichiers à traiter. Vous définissez l’ordre de tri dans les métadonnées d’Iceberg à l’aide du champ d’ordre de tri, et lorsque plusieurs colonnes sont spécifiées, les données sont triées dans l’ordre dans lequel les colonnes apparaissent dans l’ordre de tri, ce qui garantit que les enregistrements présentant des valeurs similaires sont stockés ensemble dans des fichiers. La stratégie de tri du compactage va plus loin dans l’optimisation en triant les données dans tous les fichiers d’une partition. 
   + **Ordre Z** : l’ordre Z est un moyen d’organiser les données lorsque vous devez trier selon plusieurs colonnes de la même importance. Contrairement au tri traditionnel qui donne la priorité à une colonne par rapport aux autres, l’ordre Z donne une pondération équilibrée à chaque colonne, ce qui permet à votre moteur de requête de lire moins de fichiers lors de la recherche de données.

     La technique fonctionne en combinant les chiffres binaires de valeurs issues de différentes colonnes. Par exemple, si vous avez les chiffres 3 et 4 sur deux colonnes, l’ordre Z les convertit d’abord en binaire (3 devient 011 et 4 devient 100), puis entrelace ces chiffres pour créer une valeur : 011010. Cet entrelacement crée un modèle qui maintient les données associées physiquement proches les unes des autres.

     L’ordre Z est particulièrement efficace pour les requêtes multidimensionnelles. Par exemple, une table client triée en Z par revenu, État et code postal peut offrir des performances supérieures à celles d’un tri hiérarchique lors d’une interrogation portant sur plusieurs dimensions. Cette organisation permet aux requêtes ciblant des combinaisons spécifiques de revenus et de situation géographique de localiser rapidement les données pertinentes tout en minimisant les analyses de fichiers inutiles.

1. **Minimum de fichiers d’entrée** : nombre de fichiers de données requis dans une partition avant le déclenchement du compactage.

1. **Seuil de suppression de fichiers** : nombre minimum d’opérations de suppression requises dans un fichier de données avant qu’il ne soit éligible au compactage.

1. Choisissez **Activer l’optimisation**.

------
#### [ AWS CLI ]

 L’exemple suivant montre comment activer le compactage. Remplacez l'identifiant de compte par un identifiant de AWS compte valide. Remplacez le nom de la base de données et le nom de la table par un nom réel de la table Iceberg et le nom de la base de données. Remplacez le `roleArn` par l’ARN (Amazon Resource Name) AWS du rôle IAM et le nom du rôle IAM qui dispose des autorisations requises pour exécuter le compactage. Vous pouvez remplacer la stratégie de compactage `sort` par d’autres stratégies prises en charge, telles que `z-order` ou `binpack`.

commander en fonction de vos besoins.

```
aws glue create-table-optimizer \
  --catalog-id 123456789012 \
  --database-name iceberg_db \
  --table-name iceberg_table \
  --table-optimizer-configuration '{
    "roleArn": "arn:aws:iam::123456789012:role/optimizer_role",
    "enabled": true,
    "vpcConfiguration": {"glueConnectionName": "glue_connection_name"},
    "compactionConfiguration": {
      "icebergConfiguration": {"strategy": "sort"}
    }
  }'\
--type compaction
```

------
#### [ AWS API ]

Appelez une opération [CreateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-CreateTableOptimizer) pour activer le compactage d'une table.

------

Après avoir activé le compactage, l’onglet **Optimisation des tables** affiche les détails de compactage suivants une fois le compactage terminé :

L’heure de début  
Heure à laquelle le processus de compactage a commencé dans le catalogue de données. La valeur est un horodatage selon le fuseau UTC. 

L’heure de fin  
Heure à laquelle le processus de compactage a pris fin dans le catalogue de données. La valeur est un horodatage selon le fuseau UTC. 

Statut  
L’état d’exécution du compactage. Les valeurs sont la réussite ou l'échec.

Fichiers compactés  
Nombre total de fichiers compactés.

Octets compactés  
Nombre total d’octets compactés.

# Désactivation de l’optimiseur de compactage
<a name="disable-compaction"></a>

 Vous pouvez désactiver le compactage automatique pour une table Apache Iceberg particulière à l'aide de AWS Glue la console ou. AWS CLI

------
#### [ Console ]

1. Connectez-vous à la AWS Glue console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Dans le panneau de navigation de gauche, sous **Catalogue de données**, choisissez **Tables**. 

1. Dans la liste des tables, choisissez la table Iceberg dont vous souhaitez désactiver le compactage.

1. Choisissez l’onglet **Optimisation des tables** dans la section inférieure de la page **Détails des tables**.

1. Dans **Actions**, choisissez **Désactiver**, puis sélectionnez **Compactage**.

1.  Choisissez **Désactiver le compactage** dans le message de confirmation. Vous pouvez réactiver le compactage ultérieurement. 

    Une fois que vous avez confirmé, le compactage est désactivé et l'état de compactage de la table revient à `Disabled`.

------
#### [ AWS CLI ]

Dans l'exemple suivant, remplacez l'ID de compte par un ID de AWS compte valide. Remplacez le nom de la base de données et le nom de la table par un nom réel de la table Iceberg et le nom de la base de données. Remplacez le `roleArn` par le nom de AWS ressource (ARN) du rôle IAM et le nom réel du rôle IAM disposant des autorisations requises pour exécuter le compactage.

```
aws glue update-table-optimizer \
  --catalog-id 123456789012 \
  --database-name iceberg_db \
  --table-name iceberg_table \
  --table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012:role/optimizer_role", "enabled":'false', "vpcConfiguration":{"glueConnectionName":"glue_connection_name"}}'\ 
  --type compaction
```

------
#### [ AWS API ]

Appelez l'opération [UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer) pour désactiver le compactage d'une table spécifique.

------