

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.

# Remplissage et gestion des tables transactionnelles
<a name="populate-otf"></a>

[Apache Iceberg](https://iceberg.apache.org/), [Apache Hudi](https://hudi.incubator.apache.org/) et Linux Foundation [Delta Lake](https://delta.io/) sont des formats de table open source conçus pour gérer l’analytique des données à grande échelle et les charges de travail des lacs de données dans Apache Spark. 

Vous pouvez remplir les tables Iceberg, Hudi et Delta Lake à l' AWS Glue Data Catalog aide des méthodes suivantes : 
+ AWS Glue crawler; — AWS Glue crawler s peut automatiquement découvrir et renseigner les métadonnées des tables Iceberg, Hudi et Delta Lake dans le catalogue de données. Pour de plus amples informations, veuillez consulter [Utilisation de robots pour alimenter le catalogue de données](add-crawler.md).
+ AWS Glue Tâches ETL : vous pouvez créer des tâches ETL pour écrire des données dans les tables Iceberg, Hudi et Delta Lake et renseigner leurs métadonnées dans le catalogue de données. Pour plus d'informations, consultez la section [Utilisation de frameworks de lacs de données avec des tâches AWS Glue ETL](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-datalake-native-frameworks.html).
+ AWS Glue console, AWS Lake Formation console AWS CLI ou API : vous pouvez utiliser la AWS Glue console, la console Lake Formation ou l'API pour créer et gérer les définitions de tables Iceberg dans le catalogue de données.

**Topics**
+ [Création de tables Apache Iceberg](#creating-iceberg-tables)
+ [Optimisation des tables Iceberg](table-optimizers.md)
+ [Optimisation des performances des requêtes pour les tables Iceberg](iceberg-column-statistics.md)

## Création de tables Apache Iceberg
<a name="creating-iceberg-tables"></a>

Vous pouvez créer des tables Apache Iceberg qui utilisent le format de données Apache Parquet dans l’ AWS Glue Data Catalog avec des données résidant dans Amazon S3. Une table dans le catalogue de données correspond à la définition des métadonnées qui représente les données dans un entrepôt de données. Par défaut, AWS Glue crée des tables Iceberg v2. Pour connaître la différence entre les tables v1 et v2, consultez la section [Modifications de version de format](https://iceberg.apache.org/spec/#appendix-e-format-version-changes) dans la documentation Apache Iceberg.

 [Apache Iceberg](https://iceberg.apache.org/) est un format de table ouvert pour les jeux de données analytiques très volumineux. Iceberg permet de modifier facilement votre schéma, également ce que l’on appelle l’évolution du schéma, ce qui signifie que les utilisateurs peuvent ajouter, renommer ou supprimer des colonnes d’une table de données sans perturber les données sous-jacentes. Iceberg fournit également une prise en charge pour la gestion des versions des données, ce qui permet aux utilisateurs de suivre les modifications apportées aux données au fil du temps. Cela active la fonctionnalité Time Travel, qui permet aux utilisateurs d’accéder aux versions historiques des données, de les interroger, mais aussi d’analyser les modifications apportées aux données entre les mises à jour et les suppressions.

Vous pouvez utiliser AWS Glue la console Lake Formation ou l'`CreateTable`opération de l' AWS Glue API pour créer une table Iceberg dans le catalogue de données. Pour plus d'informations, consultez [CreateTable action (Python : create\$1table](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-CreateTable)).

Lorsque vous créez une table Iceberg dans le catalogue de données, vous devez spécifier le format de la table et le chemin d’accès au fichier de métadonnées dans Amazon S3 pour pouvoir effectuer des lectures et des écritures.

 Vous pouvez utiliser Lake Formation pour sécuriser votre table Iceberg à l'aide d'autorisations de contrôle d'accès précises lorsque vous enregistrez l'emplacement des données Amazon S3 auprès de celui-ci. AWS Lake Formation Pour les données source dans Amazon S3 et les métadonnées qui ne sont pas enregistrées auprès de Lake Formation, l'accès est déterminé par les politiques d'autorisation IAM pour Amazon S3 et AWS Glue les actions. Pour plus d’informations, consultez [Managing permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-permissions.html). 

**Note**  
Le catalogue de données ne prend pas en charge la création de partitions ni l’ajout de propriétés de table Iceberg.

### Conditions préalables
<a name="iceberg-prerequisites"></a>

 Pour créer des tables Iceberg dans le catalogue de données et configurer les autorisations d’accès aux données de Lake Formation, vous devez remplir les conditions suivantes : 

1. 

**Autorisations requises pour créer des tables Iceberg sans les données enregistrées auprès de Lake Formation :**

   Outre les autorisations requises pour créer une table dans le catalogue de données, le créateur de table exige les autorisations suivantes :
   + `s3:PutObject` sur la ressource arn:aws:s3:::\$1bucketName\$1
   + `s3:GetObject` sur la ressource arn:aws:s3:::\$1bucketName\$1
   + `s3:DeleteObject` sur la ressource arn:aws:s3:::\$1bucketName\$1

1. 

**Autorisations requises pour créer des tables Iceberg avec des données enregistrées auprès de Lake Formation :**

   Pour utiliser Lake Formation afin de gérer et de sécuriser les données de votre lac de données, enregistrez votre site Amazon S3 contenant les données pour les tables auprès de Lake Formation. Cela permet à Lake Formation de vendre des informations d'identification à AWS des services d'analyse tels qu'Athena, Redshift Spectrum et Amazon EMR pour accéder aux données. Pour plus d’informations sur l’enregistrement d’un emplacement Amazon S3, consultez [Adding an Amazon S3 location to your data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html). 

   Un principal qui lit et écrit les données sous-jacentes enregistrées auprès de Lake Formation doit disposer des autorisations suivantes :
   + `lakeformation:GetDataAccess`
   + `DATA_LOCATION_ACCESS`

     Un principal qui possède des autorisations de localisation des données sur un emplacement possède également des autorisations d’emplacement sur tous les sites enfant.

     Pour plus d’informations sur les autorisations d’emplacement des données, consultez l’ulink [Underlying data access control](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html#data-location-permissions).

 Pour activer le compactage, le service doit endosser un rôle IAM autorisé à mettre à jour les tables dans le catalogue de données. Pour plus d’informations, consultez [Conditions préalables requises pour l’optimisation des tables](optimization-prerequisites.md). 

### Création d’une table Iceberg
<a name="create-iceberg-table"></a>

Vous pouvez créer des tables Iceberg v1 et v2 à l'aide AWS Glue de la console Lake Formation ou AWS Command Line Interface comme indiqué sur cette page. Vous pouvez également créer des tables Iceberg à l’aide d’ AWS Glue crawler. Pour plus d’informations, consultez [Data Catalog and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) dans le Guide du développeur AWS Glue .

**Pour créer une table Iceberg**

------
#### [ 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. Sous catalogue de données, choisissez **Tables**, puis utilisez le bouton **Créer une table** pour spécifier les attributs suivants :
   + **Nom de table** : saisissez un nom pour la table. Si vous utilisez Athena pour accéder à des tables, utilisez ces [conseils de dénomination](https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html) figurant dans le Guide de l’utilisateur Amazon Athena.
   + **Base de données** : choisissez une base de données existante ou créez-en une.
   + **Description** : description de la table. Vous pouvez écrire une description vous aidant à comprendre le contenu de la table.
   + **Format de tableau** : pour **Format de tableau**, choisissez Apache Iceberg.
   + **Activer le compactage** : choisissez **Activer le compactage** pour compacter les petits objets Amazon S3 de la table en objets plus grands.
   + **Rôle IAM** : pour exécuter le compactage, le service endosse un rôle IAM en votre nom. Vous pouvez choisir un rôle IAM à l'aide de la liste déroulante. Assurez-vous que le rôle dispose des autorisations requises pour activer le compactage.

     Pour en savoir plus sur les autorisations nécessaires, consultez [Conditions préalables requises pour l’optimisation des tables](optimization-prerequisites.md).
   + **Emplacement** : indiquez le chemin d’accès au dossier dans Amazon S3 qui stocke la table de métadonnées. Iceberg a besoin d’un fichier de métadonnées et d’un emplacement dans le catalogue de données pour pouvoir effectuer des lectures et des écritures.
   + **Schéma** : choisissez **Ajouter des colonnes** pour ajouter des colonnes et les types de données des colonnes. Vous avez la possibilité de créer une table vide et de mettre à jour le schéma ultérieurement. Le catalogue de données prend en charge les types de données Hive. Pour plus d’informations, consultez [Hive data types](https://cwiki.apache.org/confluence/plugins/servlet/mobile?contentId=27838462#content/view/27838462). 

      Iceberg vous permet de faire évoluer le schéma et la partition après avoir créé la table. Vous pouvez utiliser des [requêtes Athena](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-evolving-table-schema.html) pour mettre à jour le schéma de table et des [requêtes Spark](https://iceberg.apache.org/docs/latest/spark-ddl/#alter-table-sql-extensions) pour mettre à jour les partitions. 

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

```
aws glue create-table \
    --database-name iceberg-db \
    --region us-west-2 \
    --open-table-format-input '{
      "IcebergInput": { 
           "MetadataOperation": "CREATE",
           "Version": "2"
         }
      }' \
    --table-input '{"Name":"test-iceberg-input-demo",
            "TableType": "EXTERNAL_TABLE",
            "StorageDescriptor":{ 
               "Columns":[ 
                   {"Name":"col1", "Type":"int"}, 
                   {"Name":"col2", "Type":"int"}, 
                   {"Name":"col3", "Type":"string"}
                ], 
               "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/"
            }
        }'
```

------

**Topics**
+ [Conditions préalables](#iceberg-prerequisites)
+ [Création d’une table Iceberg](#create-iceberg-table)

# Optimisation des tables Iceberg
<a name="table-optimizers"></a>

AWS Glue prend en charge plusieurs options d'optimisation des tables afin d'améliorer la gestion et les performances des tables Apache Iceberg utilisées par les moteurs AWS d'analyse et les tâches ETL. Ces optimiseurs permettent d’utiliser efficacement le stockage, d’améliorer les performances des requêtes et de gérer efficacement les données. Il existe trois types d'optimiseurs de table disponibles dans AWS Glue : 
+ **Compactage** : le compactage des données compacte les petits fichiers de données afin de réduire l’utilisation du stockage et d’améliorer les performances de lecture. Les fichiers de données sont fusionnés et réécrits pour supprimer les données obsolètes et regrouper les données fragmentées dans des fichiers plus volumineux et plus efficaces. Vous pouvez configurer le compactage pour qu’il s’exécute automatiquement. 

  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. Le compactage prend également en charge les stratégies de tri et d’ordre Z qui regroupent des données similaires. Le tri organise les données en fonction de colonnes spécifiées, améliorant ainsi les performances des requêtes pour les opérations filtrées. L’ordre Z crée des jeux de données triés qui améliorent les performances des requêtes lorsque plusieurs colonnes sont interrogées simultanément. Les trois stratégies de compactage (Binpak, Tri et Ordre Z) réduisent la quantité de données numérisées par les moteurs de requêtes, réduisant ainsi les coûts de traitement des requêtes.
+ **Conservation des instantanés** : les instantanés sont des versions horodatées d’une table Iceberg. Les configurations de conservation des instantanés permettent aux clients de définir la durée de conservation des instantanés et le nombre d’instantanés à conserver. La configuration d’un optimiseur de conservation des instantanés peut aider à gérer la charge de stockage en supprimant les instantanés plus anciens et inutiles, ainsi que leurs fichiers sous-jacents associés.
+ **Suppression de fichiers orphelins** : les fichiers orphelins sont des fichiers qui ne sont plus référencés par les métadonnées de la table Iceberg. Ces fichiers peuvent s’accumuler au fil du temps, en particulier après des opérations telles que la suppression de tables ou l’échec de tâches ETL. L'activation de la suppression des fichiers orphelins permet AWS Glue d'identifier et de supprimer périodiquement ces fichiers inutiles, libérant ainsi de l'espace de stockage.

La configuration d'optimisation au niveau du catalogue est disponible via la console Lake Formation et à l'aide de l'opération AWS Glue `UpdateCatalog` API. Vous pouvez activer ou désactiver le compactage, la conservation des instantanés et les optimiseurs de suppression de fichiers orphelins pour les tables Iceberg individuelles du catalogue de données à l'aide de la AWS Glue console ou des opérations de l'API AWS CLI. AWS Glue 

 La vidéo suivante montre comment configurer des optimiseurs pour les tables Iceberg dans le catalogue de données. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/xOXE7AS-pNA?si=lKvt_TSlPkoc6OXn/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/xOXE7AS-pNA?si=lKvt_TSlPkoc6OXn)


**Topics**
+ [Conditions préalables requises pour l’optimisation des tables](optimization-prerequisites.md)
+ [Optimiseurs de tables au niveau du catalogue](catalog-level-optimizers.md)
+ [Optimisation du compactage](compaction-management.md)
+ [Optimisation de la conservation des instantanés](snapshot-retention-management.md)
+ [Suppression des fichiers orphelins](orphan-file-deletion.md)
+ [Affichage des détails de l’optimisation](view-optimization-status.md)
+ [Afficher Amazon CloudWatch les métriques](view-optimization-metrics.md)
+ [Suppression d'un optimiseur](delete-optimizer.md)
+ [Considérations et restrictions](optimizer-notes.md)
+ [Régions prises en charge pour les optimiseurs de tables](regions-optimizers.md)

# Conditions préalables requises pour l’optimisation des tables
<a name="optimization-prerequisites"></a>

L'optimiseur de table utilise les autorisations du rôle Gestion des identités et des accès AWS (IAM) que vous spécifiez lorsque vous activez les options d'optimisation (compactage, conservation des instantanés et suppression de fichiers orphelins) pour une table. Vous pouvez soit créer un rôle unique pour tous les optimiseurs, soit créer des rôles distincts pour chaque optimiseur.

**Note**  
L’optimiseur de suppression de fichiers orphelins ne nécessite pas les autorisations `glue:updateTable` ou `s3:putObject`. Les optimiseurs d’expiration et de compactage des instantanés nécessitent le même ensemble d’autorisations.

Le rôle IAM doit être autorisé à lire les données et à mettre à jour les métadonnées dans le catalogue de données. Vous pouvez créer un rôle IAM et y attacher les stratégies en ligne suivantes :
+ Ajoutez la politique intégrée suivante qui accorde à Amazon S3 des read/write autorisations sur l'emplacement pour les données qui ne sont pas enregistrées auprès AWS Lake Formation de celui-ci. Cette politique inclut également des autorisations pour mettre à jour le tableau dans le catalogue de données, ainsi que AWS Glue pour autoriser l'ajout de journaux dans les Amazon CloudWatch journaux et la publication de métriques. Pour les données sources dans Amazon S3 qui ne sont pas enregistrées auprès de Lake Formation, l’accès est déterminé par les stratégies d’autorisation IAM pour Amazon S3 et les actions AWS Glue . 

  Dans les stratégies en ligne suivantes, remplacez le `bucket-name` par le nom de votre compartiment Amazon S3, `aws-account-id` et `region` par un numéro valide du compte AWS et une région du catalogue de données, `database_name` par le nom de votre base de données et `table_name` par le nom de la table.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket/*"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "glue:UpdateTable",
                  "glue:GetTable"
              ],
              "Resource": [
                  "arn:aws:glue:us-east-1:111122223333:table/<database-name>/<table-name>",
                  "arn:aws:glue:us-east-1:111122223333:database/<database-name>",
                  "arn:aws:glue:us-east-1:111122223333:catalog"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogGroup",
                  "logs:CreateLogStream",
                  "logs:PutLogEvents"
              ],
              "Resource": [
                  "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-compaction/logs:*",
                  "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-retention/logs:*",
                  "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*"
              ]
          }
      ]
  }
  ```

------
+ Utilisez la stratégie suivante pour activer le compactage des données enregistrées auprès de Lake Formation. 

  Si le rôle d’optimisation ne dispose pas d’autorisations de groupe `IAM_ALLOWED_PRINCIPALS` accordées sur la table, le rôle nécessite des autorisations Lake Formation `ALTER`, `DESCRIBE`, `INSERT` et `DELETE` sur la table. 

  Pour plus d’informations sur l’enregistrement d’un compartiment Amazon S3 auprès de Lake Formation, consultez [Adding an Amazon S3 location to your data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html).

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lakeformation:GetDataAccess"
        ],
        "Resource": "*"
      },
      {
        "Effect": "Allow",
        "Action": [
          "glue:UpdateTable",
          "glue:GetTable"
        ],
        "Resource": [
          "arn:aws:glue:us-east-1:111122223333:table/databaseName/tableName",
          "arn:aws:glue:us-east-1:111122223333:database/databaseName",
          "arn:aws:glue:us-east-1:111122223333:catalog"
        ]
      },
      {
        "Effect": "Allow",
        "Action": [
          "logs:CreateLogGroup",
          "logs:CreateLogStream",
          "logs:PutLogEvents"
        ],
        "Resource": [
          "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-compaction/logs:*",
          "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-retention/logs:*",
          "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*"
        ]
      }
    ]
  }
  ```

------
+ (Facultatif) Pour optimiser des tables Iceberg avec des données contenues dans des compartiments Amazon S3 chiffrés à l’aide du [chiffrement côté serveur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html), le rôle de compactage nécessite des autorisations pour déchiffrer les objets Amazon S3 et générer une nouvelle clé de données pour écrire des objets dans les compartiments chiffrés. Ajoutez la politique suivante à la AWS KMS clé souhaitée. Nous prenons uniquement en charge le chiffrement au niveau du compartiment.

  ```
  {
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>"
      },
      "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
      ],
      "Resource": "*"
  }
  ```
+  (Facultatif) Pour l’emplacement des données enregistré auprès de Lake Formation, le rôle utilisé pour enregistrer l’emplacement nécessite des autorisations pour déchiffrer les objets Amazon S3 et générer une nouvelle clé de données pour écrire des objets dans les compartiments chiffrés. Pour plus d’informations, consultez la rubrique [Enregistrement d’un emplacement Amazon S3 chiffré](https://docs.aws.amazon.com/lake-formation/latest/dg/register-encrypted.html). 
+ (Facultatif) Si la AWS KMS clé est stockée dans un autre AWS compte, vous devez inclure les autorisations suivantes pour le rôle de compactage.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
        ],
        "Resource": [
          "arn:aws:kms:us-east-1:111122223333:key/key-id"
        ]
      }
    ]
  }
  ```

------
+  Le rôle que vous utilisez pour exécuter le compactage doit disposer de l’autorisation `iam:PassRole` correspondante. 

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "iam:PassRole"
        ],
        "Resource": [
          "arn:aws:iam::111122223333:role/<optimizer-role-name>"
        ]
      }
    ]
  }
  ```

------
+ Ajoutez la politique de confiance suivante au rôle afin que le AWS Glue service assume le rôle IAM pour exécuter le processus de compactage.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "",
        "Effect": "Allow",
        "Principal": {
          "Service": "glue.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
  ```

------
+ <a name="catalog-optimizer-requirement"></a> (Facultatif) Pour mettre à jour les paramètres du catalogue de données afin de permettre l'optimisation des tables au niveau du catalogue, le rôle IAM utilisé doit disposer de l'`glue:UpdateCatalog`autorisation ou AWS Lake Formation `ALTER CATALOG` de l'autorisation sur le catalogue racine. Vous pouvez utiliser l’API `GetCatalog` pour vérifier les propriétés du catalogue. 

# Optimiseurs de tables au niveau du catalogue
<a name="catalog-level-optimizers"></a>

Avec une configuration de catalogue unique, vous pouvez configurer des optimiseurs automatiques tels que le compactage, la conservation des instantanés et la suppression des fichiers orphelins pour toutes les tables Apache Iceberg nouvelles et mises à jour dans l’ AWS Glue Data Catalog. Les configurations d’optimiseur au niveau du catalogue vous permettent d’appliquer des paramètres d’optimisation cohérents à toutes les tables d’un catalogue, éliminant ainsi le besoin de configurer les optimiseurs individuellement pour chaque table.

Les administrateurs de lac de données peuvent configurer les optimiseurs de table en sélectionnant le catalogue par défaut dans la console Lake Formation et en activant les optimiseurs à l’aide de l’option `Table optimization`. Lorsque vous créez des tables ou que vous mettez à jour des tables existantes dans le catalogue de données, ce dernier exécute automatiquement les optimisations des tables afin de réduire la charge opérationnelle.

Si vous avez configuré l’optimisation au niveau de la table ou si vous avez précédemment supprimé les paramètres d’optimisation des tables pour une table, ces paramètres propres à la table ont priorité sur les paramètres du catalogue par défaut pour l’optimisation des tables. Si aucun paramètre de configuration n’est défini au niveau de la table ou du catalogue, la valeur de propriété de la table Iceberg sera appliquée. Ce paramètre s’applique à la conservation des instantanés et à l’optimiseur de suppression de fichiers orphelins.

Tenez compte des éléments suivants lorsque vous activez les optimisateurs au niveau du catalogue :
+ Lorsque vous configurez les paramètres d’optimisation au moment de la création du catalogue, puis que vous désactivez les optimisations par le biais d’une demande de mise à jour du catalogue, l’opération se répercute sur toutes les tables du catalogue.
+ Si vous avez déjà configuré des optimiseurs pour une table donnée, l’opération de désactivation au niveau du catalogue n’aura aucun impact sur cette table.
+ Lorsque vous désactivez les optimiseurs au niveau du catalogue, les tables présentant des configurations d’optimiseur existantes conservent leurs paramètres spécifiques et ne sont pas affectées par les modifications apportées au niveau du catalogue. Toutefois, les tables dépourvues de leur propre configuration d’optimiseur hériteront de l’état désactivé au niveau du catalogue.
+ Étant donné que les optimiseurs de conservation des instantanés et de suppression de fichiers orphelins peuvent être basés sur un calendrier, les mises à jour introduiront un retard aléatoire dans le début de leur calendrier. Cela entraînera le démarrage de chaque optimiseur à des heures légèrement différentes, répartissant ainsi la charge et réduisant le risque de dépassement des limites de service.
+ Les paramètres de l'optimiseur au niveau du catalogue ne sont pas automatiquement hérités par les tables lorsque le AWS Glue Data Catalog chiffrement est activé. Si le chiffrement des métadonnées est activé dans votre catalogue, vous devez configurer les optimiseurs de table individuellement pour chaque table. Pour utiliser l'héritage de l'optimiseur au niveau du catalogue, le chiffrement des métadonnées doit être désactivé dans le catalogue.

**Topics**
+ [Activation de l’optimisation automatique des tables au niveau du catalogue](enable-auto-table-optimizers.md)
+ [Affichage des optimisations au niveau du catalogue](view-catalog-optimizations.md)
+ [Désactivation de l’optimisation des tables au niveau du catalogue](disable-auto-table-optimizers.md)

# Activation de l’optimisation automatique des tables au niveau du catalogue
<a name="enable-auto-table-optimizers"></a>

 Vous pouvez activer l’optimisation automatique des tables pour toutes les nouvelles tables Apache Iceberg du catalogue de données. Après avoir créé la table, vous pouvez également mettre à jour manuellement de manière explicite les paramètres d’optimisation des tables. 

 Pour mettre à jour les paramètres du catalogue de données afin de permettre l’optimisation des tables au niveau du catalogue, le rôle IAM utilisé doit disposer de l’autorisation `glue:UpdateCatalog` sur le catalogue racine. Vous pouvez utiliser l’API `GetCatalog` pour vérifier les propriétés du catalogue. 

 Pour les tables gérées par Lake Formation, le rôle IAM sélectionné lors de la configuration d’optimisation du catalogue a besoin des autorisations Lake Formation `ALTER`, `DESCRIBE`, `INSERT` et `DELETE` pour toute nouvelle table ou pour les tables mises à jour. 

## Pour activer les optimiseurs au niveau du catalogue (console)
<a name="enable-catalog-optimizers-console"></a>

1. Ouvrez la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dans le panneau de navigation, choisissez **catalogue de données**.

1. Sélectionnez l’onglet **Catalogues**.

1. Choisissez le catalogue au niveau du compte.

1. Choisissez **Optimisations des tables**, puis **Modifier** sous l’onglet **Optimisations des tables**. Vous pouvez également choisir **Modifier les optimisations** dans **Actions**.  
![\[La capture d’écran montre l’option de modification permettant d’activer les optimisations au niveau du catalogue.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/catalog-edit-optimizations.png)

1. Sur la page **Optimisation des tables**, configurez les options suivantes :  
![\[La capture d’écran montre les options d’optimisation au niveau du catalogue.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/catalog-optimization-options.png)

   1. Configurez les paramètres de **compactage** :
      + Activez/désactivez le compactage.
      + Choisissez le rôle IAM disposant des autorisations nécessaires pour exécuter les optimiseurs.

        Pour en savoir plus sur les autorisations requises pour le rôle IAM, consultez [Conditions préalables requises pour l’optimisation des tables](optimization-prerequisites.md).

   1. Configurez les paramètres de **conservation des instantanés** :
      + Activez/désactivez la conservation.
      + Définissez la période de conservation des instantanés en jours. La valeur par défaut est de cinq jours.
      + Définissez le nombre d’instantanés à retenir. La valeur par défaut est d’un instantané.
      + Activez/désactivez le nettoyage des fichiers expirés.

   1. Configurez les paramètres de **suppression des fichiers orphelins** :
      + Activez/désactivez la suppression des fichiers orphelins.
      + Définissez la période de conservation des fichiers orphelins en jours. La valeur par défaut est de trois jours.

1. Choisissez **Enregistrer**.

## Activation des optimiseurs au niveau du catalogue via AWS CLI
<a name="catalog-auto-optimizers-cli"></a>

Utilisez la commande CLI suivante pour mettre à jour un catalogue existant avec les paramètres de l’optimiseur :

**Example Mise à jour du catalogue avec les paramètres de l’optimiseur**  

```
aws glue update-catalog \
   --name catalog-id \
  --catalog-input \
  '{
    "CatalogId": "111122223333",
    "CatalogInput": {
        "CatalogProperties": {
            "CustomProperties": {
                "ColumnStatistics.Enabled": "false",
                "ColumnStatistics.RoleArn": "arn:aws:iam::111122223333:role/service-role/stats-role-name"
            },
            "IcebergOptimizationProperties": {
                "RoleArn": "arn:aws:iam::111122223333:role/optimizer-role-name",
                "Compaction": {
                    "enabled": "true"
                },
                "Retention": {
                    "enabled": "true",
                    "snapshotRetentionPeriodInDays": "10",
                    "numberOfSnapshotsToRetain": "5",
                    "cleanExpiredFiles": "true"
                },
                "OrphanFileDeletion": {
                    "enabled": "true",
                    "orphanFileRetentionPeriodInDays": "3"
                }
            }
        }
    }
}'
```

Si vous rencontrez des problèmes avec les optimiseurs au niveau du catalogue, vérifiez les points suivants :
+ Assurez-vous que le rôle IAM dispose des autorisations appropriées, comme indiqué dans la section Conditions préalables.
+ Consultez les CloudWatch journaux pour détecter tout message d'erreur lié aux opérations de l'optimiseur.

   Pour de plus amples informations, consultez [Affichage des métriques disponibles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) dans le *Guide de l'utilisateur Amazon CloudWatch *. 
+ Vérifiez que les paramètres du catalogue ont été correctement appliqués en vérifiant la configuration du catalogue.
+ En cas d'échec d'accès aux tables, consultez les CloudWatch journaux et EventBridge les notifications pour obtenir des informations détaillées sur les erreurs.

# Affichage des optimisations au niveau du catalogue
<a name="view-catalog-optimizations"></a>

 Lorsque l'optimisation des tables au niveau du catalogue est activée, chaque fois qu'une table Apache Iceberg est créée ou mise à jour via le `CreateTable` SDK ou AWS Glue crawler qu'un paramètre de niveau de table équivalent est créé pour cette table. `UpdateTable` APIs AWS Management Console

 Après avoir créé ou mis à jour une table, vous pouvez vérifier ses détails pour confirmer son optimisation. `Table optimization` affiche la propriété `Configuration source` définie comme `Catalog`. 

![\[Une image d’une table Apache Iceberg avec une configuration d’optimisation au niveau du catalogue a été appliquée.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/catalog-optimization-enabled.png)


# Désactivation de l’optimisation des tables au niveau du catalogue
<a name="disable-auto-table-optimizers"></a>

 Vous pouvez désactiver l'optimisation des tables pour les nouvelles tables à l'aide de la AWS Lake Formation console, l'`glue:UpdateCatalog`API. 

**Pour désactiver les optimisations des tables au niveau du catalogue**

1. Ouvrez la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dans la barre de navigation de gauche, choisissez **Catalogues**.

1. Sur la page **Résumé du catalogue**, choisissez **Modifier** sous **Optimisations des tables**.

1. Sur la page **Modifier l’optimisation**, désélectionnez les **options d’optimisation**.

1. Choisissez **Enregistrer**.

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

------

# Optimisation de la conservation des instantanés
<a name="snapshot-retention-management"></a>

La fonctionnalité de conservation des instantanés Apache Iceberg permet aux utilisateurs d’interroger les données historiques à des moments précis et d’annuler les modifications indésirables apportées à leurs tables. Dans le catalogue de AWS Glue données, la configuration de conservation des instantanés contrôle la durée de conservation de ces instantanés (versions des données de table) avant leur expiration et leur suppression. Cela permet de gérer les coûts de stockage et la surcharge de métadonnées en supprimant automatiquement les anciens instantanés en fonction d’une période de conservation configurée ou du nombre maximal d’instantanés à conserver. 

Vous pouvez configurer la période de conservation en jours et le nombre maximal de clichés à conserver pour une table. AWS Glue supprime les instantanés antérieurs à la période de rétention spécifiée des métadonnées de la table, tout en préservant les instantanés les plus récents dans les limites configurées. Après avoir supprimé les anciens instantanés des métadonnées, AWS Glue supprime les données et les fichiers de métadonnées correspondants qui ne sont plus référencés et uniques aux instantanés expirés. Cela permet d’autoriser les requêtes Time Travel uniquement jusqu’aux instantanés conservés restants, tout en récupérant l’espace de stockage utilisé par les données d’instantanés expirés.

**Topics**
+ [Activation de l’optimiseur de conservation des instantanés](enable-snapshot-retention.md)
+ [Mise à jour de l’optimiseur de conservation des instantanés](update-snapshot-retention.md)
+ [Désactivation de l’optimiseur de conservation des instantanés](disable-snapshot-retention.md)

# Activation de l’optimiseur de conservation des instantanés
<a name="enable-snapshot-retention"></a>

 Vous pouvez utiliser AWS Glue la console ou l' AWS API pour activer les optimiseurs de rétention des instantanés pour vos tables Apache Iceberg dans le catalogue de données. AWS CLI Pour les nouvelles tables, vous pouvez choisir Apache Iceberg comme format de table et activer l’optimiseur de conservation des instantanés lors de la création de la table. La conservation des instantanés est désactivée par défaut pour les nouvelles tables.

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

**Pour activer l’optimiseur de conservation des instantanés**

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 Iceberg pour laquelle vous souhaitez activer l’optimiseur de conservation des instantanés, puis dans le menu **Actions**, choisissez **Activer** sous **Optimisation**.

   Vous pouvez également activer l’optimisation en sélectionnant la table et en ouvrant 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 la conservation des instantanés**. 

1. Sur la page **Activer l’optimisation**, sous **Configuration de l’optimisation**, vous avez deux options : **Utiliser les paramètres par défaut** ou **Personnaliser les paramètres**. Si vous choisissez d'utiliser les paramètres par défaut, AWS Glue utilise les propriétés définies dans la configuration de la table Iceberg pour déterminer la période de conservation des instantanés et le nombre de clichés à conserver. En l'absence de cette configuration, AWS Glue conserve un instantané pendant cinq jours et supprime les fichiers associés aux instantanés expirés.

1.  Ensuite, choisissez un rôle IAM qui AWS Glue peut assumer en votre nom l'exécution de l'optimiseur. Pour en savoir plus sur les autorisations requises pour le rôle IAM, consultez la section [Conditions préalables requises pour l’optimisation des tables](optimization-prerequisites.md).

   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 préférez définir les valeurs de la **configuration de conservation des instantanés** manuellement, choisissez **Personnaliser les paramètres**.   
![\[Page de détails de la table Apache Iceberg avec l’option Activer la conservation > Personnaliser les paramètres.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/table-enable-retention.png)

1. Cochez la case **Appliquer le rôle IAM sélectionné aux optimiseurs sélectionnés** pour utiliser un seul rôle IAM pour tout en activant tous les optimiseurs.

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. Ensuite, sous **Configuration de conservation des instantanés**, choisissez d'utiliser les valeurs spécifiées dans la [configuration de la table Iceberg](https://iceberg.apache.org/docs/1.5.2/configuration/#table-behavior-properties) ou de spécifier des valeurs personnalisées pour la période de conservation des instantanés (history.expire). max-snapshot-age-ms), nombre minimum de clichés (history.expire. min-snapshots-to-keep) à conserver, ainsi que le délai en heures entre deux exécutions consécutives de suppression d'instantanés.

1.  Choisissez **Supprimer les fichiers associés** pour supprimer les fichiers sous-jacents lorsque l’optimiseur de table supprime les anciens instantanés des métadonnées de la table.

    Si vous ne choisissez pas cette option, lorsque les anciens instantanés sont supprimés des métadonnées de la table, les fichiers associés resteront dans le stockage en tant que fichiers orphelins. 

1. Ensuite, lisez la mise en garde, puis choisissez **Je confirme** pour continuer.
**Note**  
 Dans le catalogue de données, l’optimiseur de conservation des instantanés respecte le cycle de vie contrôlé par les politiques de conservation au niveau des branches et des balises. Pour plus d’informations, consultez la section [Branching and tagging](https://iceberg.apache.org/docs/latest/branching/#overview) dans la documentation Iceberg.

1. Examinez la configuration et choisissez **Activer l’optimisation**.

   Attendez quelques minutes que l’optimiseur de conservation s’exécute et que les anciens instantanés expirent en fonction de la configuration.

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

 Pour activer la conservation des instantanés pour les nouvelles tables Iceberg dans AWS Glue, vous devez créer un optimiseur de table de type `retention` et définir le `enabled` champ sur `true` dans le. `table-optimizer-configuration` Vous pouvez le faire à l'aide de la AWS CLI commande `create-table-optimizer` ou`update-table-optimizer`. En outre, vous devez spécifier les champs de configuration de conservation tels que `snapshotRetentionPeriodInDays` et `numberOfSnapshotsToRetain` en fonction de vos besoins.

L’exemple suivant montre comment activer l’optimiseur de conservation des instantanés. 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 le nom de AWS ressource (ARN) du rôle IAM et le nom du rôle IAM disposant des autorisations requises pour exécuter l'optimiseur de rétention des instantanés. 

```
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"}, "retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7,"numberOfSnapshotsToRetain":3,"cleanExpiredFiles":'true'}}}'\
  --type retention
```

 Cette commande crée un optimiseur de conservation pour la table Iceberg spécifiée dans le catalogue, la base de données et la région donnés. table-optimizer-configurationSpécifie l'ARN du rôle IAM à utiliser, active l'optimiseur et définit la configuration de rétention. Dans cet exemple, il conserve les instantanés pendant sept jours, garde au moins trois instantanés et nettoie les fichiers expirés. 
+  snapshotRetentionPeriodInDays : le nombre de jours pendant lesquels les instantanés sont conservés avant leur expiration. La valeur par défaut est `5`. 
+ numberOfSnapshotsToRetain — Le nombre minimum de clichés à conserver, même s'ils sont antérieurs à la période de conservation. La valeur par défaut est `1`. 
+ cleanExpiredFiles — Un booléen indiquant s'il faut supprimer les fichiers de données expirés après l'expiration des instantanés. La valeur par défaut est `true`.

   Lorsque ce paramètre est défini sur true, les anciens instantanés sont supprimés des métadonnées de la table et leurs fichiers sous-jacents sont supprimés. Si ce paramètre est défini sur false, les anciens instantanés sont supprimés des métadonnées de la table, mais leurs fichiers sous-jacents restent dans le stockage en tant que fichiers orphelins.. 

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

[CreateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-CreateTableOptimizer)Opération d'appel pour activer l'optimiseur de rétention des instantanés pour une table.

------

Après avoir activé le compactage, l’onglet **Optimisation des tables** affiche les détails de compactage suivants (après environ 15 à 20 minutes) :

L’heure de début  
L’heure à laquelle l’optimiseur de conservation des instantanés a démarré. La valeur est un horodatage selon le fuseau UTC. 

Durée de l'exécution  
Le temps indique la durée nécessaire à l’optimiseur pour terminer la tâche. La valeur est un horodatage selon le fuseau UTC. 

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

Fichiers de données supprimés  
Nombre total de fichiers supprimés.

Fichiers manifestes supprimés  
Nombre total de fichiers manifestes supprimés.

Listes de manifestes supprimées  
Nombre total de listes de manifestes supprimées.

# Mise à jour de l’optimiseur de conservation des instantanés
<a name="update-snapshot-retention"></a>

 Vous pouvez mettre à jour la configuration existante d'un optimiseur de rétention des instantanés pour une table Apache Iceberg particulière à l'aide de la AWS Glue console ou de l' UpdateTableOptimizerAPI. AWS CLI

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

**Pour mettre à jour la configuration de la conservation des instantanés**

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. Choisissez **Catalogue de données**, puis choisissez **Tables**. Dans la liste des tables, choisissez la table Iceberg dont vous souhaitez mettre à jour la configuration de l’optimiseur de conservation des instantanés.

1. Dans la section inférieure de la page **Détails des tables**, sélectionnez l’onglet **Optimisation des tables**, puis **Modifier**. Vous pouvez également choisir **Modifier** sous **Optimisation** dans le menu **Actions** situé dans le coin supérieur droit de la page.

1.  Sur la page **Modifier l’optimisation**, apportez les modifications souhaitées. 

1.  Choisissez **Enregistrer**. 

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

 Pour mettre à jour un optimiseur de conservation des instantanés à l'aide de AWS CLI, vous pouvez utiliser la commande suivante : 

```
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":'true', "vpcConfiguration":{"glueConnectionName":"glue_connection_name"},"retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7,"numberOfSnapshotsToRetain":3,"cleanExpiredFiles":'true'}}}' \
 --type retention
```

 Cette commande met à jour la configuration de rétention pour la table spécifiée dans le catalogue, la base de données et la région donnés. Les principaux paramètres sont les suivants : 
+  snapshotRetentionPeriodInDays : le nombre de jours pendant lesquels les instantanés sont conservés avant leur expiration. La valeur par défaut est `1`. 
+ numberOfSnapshotsToRetain — Le nombre minimum de clichés à conserver, même s'ils sont antérieurs à la période de conservation. La valeur par défaut est `5`. 
+ cleanExpiredFiles — Un booléen indiquant s'il faut supprimer les fichiers de données expirés après l'expiration des instantanés. La valeur par défaut est `true`. 

   Lorsque ce paramètre est défini sur true, les anciens instantanés sont supprimés des métadonnées de la table et leurs fichiers sous-jacents sont supprimés. Si ce paramètre est défini sur false, les anciens instantanés sont supprimés des métadonnées de la table, mais leurs fichiers sous-jacents restent dans le stockage en tant que fichiers orphelins.. 

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

Pour mettre à jour un optimiseur de table, vous pouvez utiliser l’API `UpdateTableOptimizer`. Cette API vous permet de mettre à jour la configuration d’un optimiseur de table existant pour le compactage, la conservation ou la suppression de fichiers orphelins. Les paramètres de demande comprennent :
+ catalogId (obligatoire) : l’ID du catalogue contenant la table 
+  databaseName (facultatif) : le nom de la base de données contenant la table 
+  tableName (facultatif) : le nom de la table 
+  type (obligatoire) : le type d’optimiseur de table (compaction, retention ou orphan\$1file\$1delete) 
+  retentionConfiguration (obligatoire) : configuration mise à jour de l’optimiseur de table, y compris l’ARN du rôle, l’état activé, la configuration de la conservation et la configuration de suppression des fichiers orphelins 

------

# Désactivation de l’optimiseur de conservation des instantanés
<a name="disable-snapshot-retention"></a>

 Vous pouvez désactiver l'optimiseur de rétention des instantanés pour une table Apache Iceberg particulière à l'aide de AWS Glue la console ou. AWS CLI

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

**Pour désactiver la conservation des instantanés**

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. Choisissez **Catalogue de données**, puis choisissez **Tables**. Dans la liste des tables, choisissez la table Iceberg dont vous souhaitez désactiver l’optimiseur pour la conservation des instantanés.

1. Dans la section inférieure de la page des **Détails des tables**, choisissez **Optimisation des tables** et **Désactiver**, **Conservation des instantanés** sous **Actions**.

   Vous pouvez également choisir **Désactiver** sous **Optimisation** dans le menu **Actions** situé dans le coin supérieur droit de la page.

1.  Choisissez **Désactiver** dans le message de confirmation. Vous pouvez réactiver l’optimiseur de conservation des instantanés ultérieurement. 

    Une fois que vous avez confirmé, l’optimiseur de conservation des instantanés est désactivé et l’état de conservation des instantanés revient à `Not enabled`.

------
#### [ 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 l'optimiseur de rétention.

```
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", "vpcConfiguration":{"glueConnectionName":"glue_connection_name"}, "enabled":'false'}'\ 
  --type retention
```

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

[UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer)Opération d'appel pour désactiver l'optimiseur de rétention des instantanés pour une table spécifique.

------

# Suppression des fichiers orphelins
<a name="orphan-file-deletion"></a>

 AWS Glue Data Catalog vous permet de supprimer les fichiers orphelins de vos tables Iceberg. Les fichiers orphelins sont des fichiers non référencés qui existent dans votre source de données Amazon S3 à l’emplacement de la table spécifié, qui ne sont pas suivis par les métadonnées de la table Iceberg et qui sont plus anciens que la limite d’âge que vous avez configurée. Ces fichiers orphelins peuvent s’accumuler au fil du temps en cas d’échec d’opérations telles que le compactage, la suppression de partitions ou la réécriture de tables, et occuper un espace de stockage inutile.

L'optimiseur de suppression des fichiers orphelins AWS Glue analyse les métadonnées de la table et les fichiers de données réels, identifie les fichiers orphelins et les supprime pour récupérer de l'espace de stockage. L’optimiseur supprime uniquement les fichiers créés après la date de création de l’optimiseur qui répondent également aux critères de suppression configurés. Les fichiers créés avant ou à la date de création de l’optimiseur ne sont jamais supprimés.

**Logique de suppression de fichiers orphelins**

1. Vérification de la date : compare la date de création du fichier avec la date de création de l’optimiseur. Si le fichier est antérieur ou égal à la date de création de l’optimiseur, il est ignoré.

1. Vérification de la configuration de l’optimiseur : si le fichier est plus récent que la date de création de l’optimiseur, il évalue le fichier par rapport à la limite d’âge configurée. L’optimiseur supprime le fichier s’il répond aux critères de suppression. Ignore le fichier s’il ne correspond pas aux critères.

 Vous pouvez initier la suppression des fichiers orphelins en créant un optimiseur de table de suppression de fichiers orphelins dans le catalogue de données.

**Important**  
 Par défaut, la suppression des fichiers orphelins évalue les fichiers situés à l'emplacement de votre AWS Glue table. Bien que vous puissiez configurer un sous-préfixe pour limiter la portée de l’évaluation à l’aide d’un paramètre d’API, vous devez vous assurer que l’emplacement de votre table ne contient pas de fichiers provenant d’autres sources de données ou tables. Si l’emplacement de votre table chevauche celui d’autres sources de données, le service peut identifier et supprimer des fichiers non liés en tant qu’orphelins. 

**Topics**
+ [Activation de la suppression des fichiers orphelins](enable-orphan-file-deletion.md)
+ [Mise à jour de l’optimiseur de suppression de fichiers orphelins](update-orphan-file-deletion.md)
+ [Désactivation de la suppression des fichiers orphelins](disable-orphan-file-deletion.md)

# Activation de la suppression des fichiers orphelins
<a name="enable-orphan-file-deletion"></a>

 Vous pouvez utiliser AWS Glue la console ou l' AWS API pour activer la suppression des fichiers orphelins pour vos tables Apache Iceberg dans le catalogue de données. AWS CLI Pour les nouvelles tables, vous pouvez choisir Apache Iceberg comme format de table et activer l’optimiseur de suppression de fichiers orphelins lors de la création de la table. La conservation des instantanés est désactivée par défaut pour les nouvelles tables.

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

**Pour activer la suppression des fichiers orphelins**

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 Iceberg dans laquelle vous souhaitez activer la suppression des fichiers orphelins.

   Choisissez l’onglet **Optimisation des tables** dans la partie inférieure de la page, puis sélectionnez **Activer**, **Suppression des fichiers orphelins** dans **Actions**. 

   Vous pouvez également choisir **Activer** sous **Optimisation** dans le menu **Actions** situé dans le coin supérieur droit de la page.

1. Sur la page **Activer l’optimisation**, sélectionnez **Suppression des fichiers orphelins** sous **Options d’optimisation**.

1. Si vous choisissez d’utiliser les **paramètres par défaut**, tous les fichiers orphelins seront supprimés au bout de trois jours. Si vous souhaitez conserver les fichiers orphelins pendant un certain nombre de jours, choisissez **Personnaliser les paramètres**.

1. Choisissez ensuite un rôle IAM avec les autorisations requises pour supprimer les fichiers orphelins.

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. Si vous choisissez **Personnaliser les paramètres**, entrez le nombre de jours pendant lesquels les fichiers doivent être conservés avant leur suppression dans **Configuration de la suppression des fichiers orphelins**. Vous pouvez également indiquer l’intervalle entre deux exécutions d’optimiseur consécutives. La valeur par défaut est 24 heures.

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

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

 Pour activer la suppression des fichiers orphelins pour une table Iceberg dans AWS Glue, vous devez créer un optimiseur de table de type `orphan_file_deletion` et définir le `enabled` champ sur true. Pour créer un optimiseur de suppression de fichiers orphelins pour une table Iceberg à l'aide de AWS CLI, vous pouvez utiliser la commande suivante :

```
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"}, "orphanFileDeletionConfiguration":{"icebergConfiguration":{"orphanFileRetentionPeriodInDays":3, "location":'S3 location'}}}'\
 --type orphan_file_deletion
```

 Cette commande crée un optimiseur de suppression de fichiers orphelins pour la table Iceberg spécifiée. Les principaux paramètres sont les suivants :
+ roleArn : l’ARN du rôle IAM autorisé à accéder au compartiment S3 et aux ressources Glue.
+ enabled : définissez cette valeur sur true pour activer l’optimiseur.
+ orphanFileRetentionPeriodInDays — Le nombre de jours pendant lesquels les fichiers orphelins sont conservés avant de les supprimer (minimum 1 jour).
+ type : définissez la valeur sur orphan\$1file\$1deletion pour créer un optimiseur de suppression de fichiers orphelins.

 Après avoir créé l’optimiseur de table, les fichiers orphelins seront supprimés périodiquement (une fois par jour si cette option reste activée). Vous pouvez vérifier les exécutions à l’aide de l’API `list-table-optimizer-runs`. La tâche de suppression des fichiers orphelins identifiera et supprimera les fichiers qui ne sont pas suivis dans les métadonnées Iceberg de la table.

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

[CreateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-CreateTableOptimizer)Opération d'appel pour créer l'optimiseur de suppression de fichiers orphelins pour une table spécifique.

------

# Mise à jour de l’optimiseur de suppression de fichiers orphelins
<a name="update-orphan-file-deletion"></a>

 Vous pouvez modifier la configuration de l'optimiseur de suppression de fichiers orphelins, par exemple en modifiant la période de conservation des fichiers orphelins ou le rôle IAM utilisé par l'optimiseur à l'aide de la AWS Glue console ou de l'opération. AWS CLI`UpdateTableOptimizer` 

------
#### [ AWS Management Console ]

**Pour mettre à jour l’optimiseur de suppression de fichiers orphelins**

1.  Choisissez **Catalogue de données**, puis choisissez **Tables**. Dans la liste des tables, choisissez la table dont vous souhaitez mettre à jour la configuration de l’optimiseur de suppression des fichiers orphelins.

1. Dans la section inférieure de la page **Détails des tables**, choisissez **Optimisation des tables**, puis sélectionnez **Modifier**. 

1.  Sur la page **Modifier l’optimisation**, apportez les modifications souhaitées. 

1.  Choisissez **Enregistrer**. 

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

 Vous pouvez utiliser l'`update-table-optimizer`appel pour mettre à jour l'optimiseur de suppression de fichiers orphelins dans AWS Glue, vous pouvez utiliser l'appel. Cela vous permet de modifier la `OrphanFileDeletionConfiguration` dans le champ `icebergConfiguration` dans lequel vous pouvez spécifier la `OrphanFileRetentionPeriodInDays` mise à jour pour définir le nombre de jours pendant lesquels les fichiers orphelins seront conservés, afin de spécifier l’emplacement de la table Iceberg dans laquelle les fichiers orphelins seront supprimés. 

```
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":true, "vpcConfiguration":{"glueConnectionName":"glue_connection_name"},"orphanFileDeletionConfiguration":{"icebergConfiguration":{"orphanFileRetentionPeriodInDays":5}}}' \
 --type orphan_file_deletion
```

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

Appelez l'[UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer)opération pour mettre à jour l'optimiseur de suppression de fichiers orphelins pour une table.

------

 

# Désactivation de la suppression des fichiers orphelins
<a name="disable-orphan-file-deletion"></a>

 Vous pouvez désactiver l'optimiseur de suppression de fichiers orphelins pour une table Apache Iceberg particulière à l'aide AWS Glue de la console ou. AWS CLI

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

**Pour désactiver la suppression des fichiers orphelins**

1. Choisissez **Catalogue de données**, puis choisissez **Tables**. Dans la liste des tables, choisissez la table Iceberg dont vous souhaitez désactiver l’optimiseur pour la suppression des fichiers orphelins.

1. Dans la section inférieure de la page des **Détails des tables**, choisissez l’onglet **Optimisation des tables**.

1. Choisissez **Actions**, puis sélectionnez **Désactiver**, **Suppression des fichiers orphelins**.

   Vous pouvez également choisir **Désactiver** sous **Optimisation** depuis le menu **Actions**.

1.  Choisissez **Désactiver** dans le message de confirmation. Vous pouvez réactiver l’optimiseur de suppression des fichiers orphelins ultérieurement. 

    Une fois que vous avez confirmé, l’optimiseur de suppression des fichiers orphelins est désactivé et l’état de suppression des fichiers orphelins revient à `Not enabled`.

------
#### [ 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 désactiver l'optimiseur.

```
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'}'\ 
  --type orphan_file_deletion
```

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

Appelez l'[UpdateTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-UpdateTableOptimizer)opération pour désactiver l'optimiseur de rétention des instantanés pour une table spécifique.

------

# Affichage des détails de l’optimisation
<a name="view-optimization-status"></a>

Vous pouvez consulter l'état d'optimisation des tables Apache Iceberg dans la AWS Glue console ou à l'aide des opérations d' AWS API. AWS CLI

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

**Pour afficher l’état d’optimisation des tables Iceberg (console)**
+ Vous pouvez consulter l'état d'optimisation des tables Iceberg sur la AWS Glue console en choisissant une table Iceberg dans la liste des **tables** sous Catalogue de **données**. Sous **Optimisation des tables**. Choisissez l’option **Afficher tout**.  
![\[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-list-compaction-status.png)

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

Vous pouvez consulter les détails de l'optimisation à l'aide de AWS CLI.

Dans les exemples suivants, remplacez l'ID de compte par un ID de AWS compte valide, le nom de la base de données et le nom de la table par le nom réel de la table Iceberg. Pour `type`, indiquez un type d’optimisation. Les valeurs acceptables sont `compaction`, `retention` et `orphan-file-deletion`.
+ **Pour obtenir les détails de la dernière exécution du compactage d’une table**

  ```
  aws get-table-optimizer \
    --catalog-id 123456789012 \
    --database-name iceberg_db \
    --table-name iceberg_table \
    --type compaction
  ```
+ Utilisez l’exemple suivant pour récupérer l’historique d’un optimiseur pour une table spécifique.

  ```
  aws list-table-optimizer-runs \
    --catalog-id 123456789012 \
    --database-name iceberg_db \
    --table-name iceberg_table \
    --type compaction
  ```
+ L’exemple suivant montre comment récupérer les détails de l’exécution de l’optimisation et de la configuration de plusieurs optimiseurs. Vous pouvez spécifier un maximum de 20 optimiseurs.

  ```
  aws glue batch-get-table-optimizer \
  --entries '[{"catalogId":"123456789012", "databaseName":"iceberg_db", "tableName":"iceberg_table", "type":"compaction"}]'
  ```

------
#### [ API ]
+ Utilisez l’opération `GetTableOptimizer` pour récupérer les détails de la dernière exécution d’un optimiseur. 
+  Utilisez l’opération `ListTableOptimizerRuns` pour récupérer l’historique d’un optimiseur donné sur une table spécifique. Vous pouvez spécifier 20 optimiseurs en un seul appel d’API. 
+ Utilisez cette [BatchGetTableOptimizer](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-table-optimizers.html#aws-glue-api-table-optimizers-BatchGetTableOptimizer)opération pour récupérer les détails de configuration de plusieurs optimiseurs de votre compte. 

------

# Afficher Amazon CloudWatch les métriques
<a name="view-optimization-metrics"></a>

 Après avoir exécuté les optimisateurs de tables avec succès, le service crée des métriques Amazon CloudWatch sur les performances de la tâche d’optimisation. Vous pouvez accéder aux **CloudWatch métriques** et choisir **Metrics**, **All metrics**. Vous pouvez filtrer les métriques en fonction de l'espace de noms spécifique (par exemple AWS Glue), du nom de la table ou du nom de la base de données.

 Pour de plus amples informations, consultez [Affichage des métriques disponibles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) dans le *Guide de l'utilisateur Amazon CloudWatch *. 

****Compactage****
+ Nombre d’octets compactés 
+ Nombre de fichiers compactés
+ Nombre de DPU allouées à la tâche 
+ Durée de la tâche (heures) 

****Conservation des instantanés****
+ Nombre de fichiers de données supprimés 
+ Nombre de fichiers manifestes supprimés
+ Nombre de listes de manifestes supprimées 
+ Durée de la tâche (heures)

****Suppression de fichiers orphelins****
+ Nombre de fichiers orphelins supprimés 
+ Durée de la tâche (heures) 

# Suppression d'un optimiseur
<a name="delete-optimizer"></a>

Vous pouvez supprimer un optimiseur et les métadonnées associées à la table à l'aide d' AWS CLI une opération d' AWS API.

Exécutez la AWS CLI commande suivante pour supprimer l'historique d'optimisation d'une table. Vous devez spécifier l’optimiseur `type`, ainsi que l’ID du catalogue, le nom de la base de données et le nom de la table. Les valeurs acceptables sont `compaction`, `retention` et `orphan_file_deletion`.

```
aws glue delete-table-optimizer \
  --catalog-id 123456789012 \
  --database-name iceberg_db \
  --table-name iceberg_table \
  --type compaction
```

 Utilisez l'opération `DeleteTableOptimizer` pour supprimer un optimiseur pour une table.

# Considérations et restrictions
<a name="optimizer-notes"></a>

 Cette section inclut les éléments à prendre en compte lors de l’utilisation d’optimiseurs de tables dans AWS Glue Data Catalog. 

## Durabilité et exactitude
<a name="durability-correctness"></a>

**Emplacements des tables S3 :**

Lorsque plusieurs AWS Glue Data Catalog tables partagent le même emplacement Amazon S3 et que les optimiseurs sont activés, l'optimiseur de conservation des instantanés ou de suppression de fichiers orphelins pour une table peut supprimer les fichiers qui sont toujours référencés par l'autre table. Assurez-vous que chaque table sur laquelle les optimiseurs sont activés possède un emplacement Amazon S3 unique qui n'est partagé avec aucune autre table, y compris les tables de différentes bases de données.

**Expiration du cycle de vie S3 :**

Les règles d'expiration du cycle de vie d'Amazon S3 qui s'appliquent aux emplacements de stockage des tables Iceberg peuvent supprimer le manifeste et les fichiers de données qui sont toujours référencés par des instantanés actifs. Si votre bucket comporte des règles d'expiration du cycle de vie, assurez-vous qu'elles excluent le chemin de stockage des tables Iceberg.

## Formats pris en charge et restrictions pour le compactage de données géré
<a name="compaction-notes"></a>

Le compactage des données prend en charge divers types de fichiers et formats de compression pour la lecture et l’écriture de données, y compris la lecture de données provenant de tables chiffrées.

**Contrôle de la simultanéité :**

 Apache Iceberg prend en charge un contrôle de simultanéité optimiste, permettant à plusieurs rédacteurs d'effectuer des opérations simultanément. Les conflits sont détectés et résolus au moment de la validation. Lorsque vous travaillez avec des pipelines de streaming, configurez les paramètres de nouvelle tentative appropriés via les propriétés des tables et les paramètres de compactage afin de gérer efficacement les écritures simultanées. Pour obtenir des conseils détaillés, consultez le blog AWS Big Data sur la [gestion des écritures simultanées dans les tables Iceberg](https://aws.amazon.com/blogs/big-data/manage-concurrent-write-conflicts-in-apache-iceberg-on-the-aws-glue-data-catalog/). 

**Nouvelles tentatives de compactage :**

 Lorsque les opérations de compactage échouent quatre fois de suite, l'optimisation de la table de AWS Glue catalogue suspend automatiquement l'optimiseur pour éviter une consommation inutile de ressources informatiques. Examinez d'abord les journaux et essayez de comprendre pourquoi le compactage échoue à plusieurs reprises. Pour reprendre l'optimisation du compactage, vous pouvez réactiver l'optimiseur via la AWS Glue console ou l'API. 

 **Le compactage des données prend en charge :**
+ **Chiffrement** : le compactage des données prend uniquement en charge le chiffrement Amazon S3 (SSE-S3) et le chiffrement KMS côté serveur (SSE-KMS).
+ **Stratégies de compactage** : binpack, tri et tri par ordre Z
+ Vous pouvez exécuter le compactage depuis le compte où réside le catalogue de données lorsque le compartiment Amazon S3 qui stocke les données sous-jacentes se trouve dans un autre compte. Pour ce faire, le rôle de compactage nécessite l’accès au compartiment Amazon S3.

 **Le compactage des données ne prend pas en charge actuellement :** 
+ **Compactage sur des tables entre comptes** : vous ne pouvez pas exécuter le compactage sur des tables entre comptes.
+ **Compactage sur des tables entre régions** : vous ne pouvez pas exécuter le compactage sur des tables entre régions.
+ **Activation du compactage sur des liens de ressources**
+ **Tables de la classe de stockage Amazon S3 Express One Zone** : vous ne pouvez pas exécuter le compactage sur les tables Amazon S3 Express One Zone Iceberg. 
+ **La stratégie de compactage par ordre Z ne prend pas en charge les types de données suivants :**
  + Décimal
  + TimestampWithoutZone

## Considérations relatives à la conservation des instantanés et aux optimiseurs de suppression de fichiers orphelins
<a name="retention-notes"></a>

Les considérations suivantes s’appliquent à la conservation des instantanés et aux optimiseurs de suppression des fichiers orphelins. 
+ Les processus de conservation des instantanés et de suppression de fichiers orphelins ont une limite maximale de suppression de 1 000 000 fichiers par exécution. Lorsque vous supprimez des instantanés expirés, si le nombre de fichiers éligibles à la suppression dépasse 1 000 000, tous les fichiers restants au-delà de ce seuil continueront d’exister dans le stockage de la table en tant que fichiers orphelins. 
+ Les instantanés sont conservés par l’optimiseur de conservation d’instantanés seulement lorsque les deux critères suivants sont remplis : le nombre minimum d’instantanés à conserver et la période de conservation spécifiée.
+ L’optimiseur de conservation d’instantanés supprime les métadonnées des instantanés expirés d’Apache Iceberg, empêchant ainsi les requêtes d’historique d’instantanés expirés et supprimant éventuellement les fichiers de données associés.
+  L’optimiseur de suppression des fichiers orphelins supprime les fichiers de données et de métadonnées qui ne sont plus référencés par les métadonnées Iceberg si leur date de création est antérieure à la période de conservation des fichiers orphelins à compter de l’exécution de l’optimiseur.
+ Apache Iceberg facilite le contrôle des versions grâce à des branches et des balises, qui sont des pointeurs nommés vers des états d’instantanés spécifiques. Chaque branche et balise suit son propre cycle de vie indépendant, régi par des politiques de conservation définies à leurs niveaux respectifs. Les AWS Glue Data Catalog optimiseurs tiennent compte de ces politiques de cycle de vie, garantissant ainsi le respect des règles de conservation spécifiées. Les politiques de conservation au niveau des branches et des balises ont priorité sur les configurations de l’optimiseur. 

   Pour plus d’informations, consultez [Branching and Tagging](https://iceberg.apache.org/docs/nightly/branching/) dans la documentation Apache Iceberg. 
+ Les optimiseurs de conservation des instantanés et de suppression de fichiers orphelins supprimeront les fichiers éligibles au nettoyage conformément aux paramètres configurés. Améliorez votre contrôle sur la suppression de fichiers en mettant en œuvre des politiques de gestion des versions et de cycle de vie S3 sur les compartiments appropriés.

   Pour obtenir des instructions détaillées sur la configuration de la gestion des versions et la création de règles de cycle de vie, consultez [https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html). 
+  Pour déterminer correctement les fichiers orphelins, assurez-vous que l’emplacement de la table fourni et les éventuels sous-chemins ne se chevauchent pas ou ne contiennent pas de données provenant d’autres tables ou sources de données. Si les chemins se chevauchent, vous risquez une perte de données irrécupérable en cas de suppression involontaire de fichiers. 

## Exception de débogage OversizedAllocationException
<a name="debug-exception"></a>

Pour résoudre une exception `OversizedAllocationException` :
+ Réduisez la taille du lot du lecteur vectorisé et vérifiez. La taille du lot par défaut est de 5 000. Ceci est contrôlé dans `read.parquet.vectorization.batch-size`.
  + Si cela ne fonctionne pas même après plusieurs variations, désactivez la vectorisation. Ceci est contrôlé dans `read.parquet.vectorization.enabled`.

# Régions prises en charge pour les optimiseurs de tables
<a name="regions-optimizers"></a>

Les fonctionnalités d'optimisation des tables (compactage, conservation des instantanés et suppression de fichiers orphelins) pour AWS Glue Data Catalog sont disponibles dans les versions suivantes : Régions AWS
+ Asie-Pacifique (Tokyo)
+ Asie-Pacifique (Séoul)
+ Asie-Pacifique (Mumbai)
+ Asie-Pacifique (Singapour)
+ Asie-Pacifique (Sydney)
+ Asie-Pacifique (Jakarta)
+ Canada (Centre)
+ Europe (Irlande)
+ Europe (Londres)
+ Europe (Francfort)
+ Europe (Stockholm)
+ USA Est (Virginie du Nord)
+ USA Est (Ohio)
+ USA Ouest (Oregon)
+ Amérique du Sud (São Paulo)

# Optimisation des performances des requêtes pour les tables Iceberg
<a name="iceberg-column-statistics"></a>

Apache Iceberg est un format de table ouverte très performant pour de grands ensembles de données analytiques. AWS Glue prend en charge le calcul et la mise à jour du nombre de valeurs distinctes (NDVs) pour chaque colonne des tables Iceberg. Ces statistiques peuvent améliorer l’optimisation des requêtes, la gestion des données et l’efficacité des performances pour les ingénieurs et les scientifiques de données travaillant avec des jeux de données à grande échelle.

 AWS Glue estime le nombre de valeurs distinctes dans chaque colonne de la table Iceberg et les stocke dans des fichiers [Puffin](https://iceberg.apache.org/puffin-spec/) sur Amazon S3 associés à des instantanés de table Iceberg. Puffin est un format de fichier Iceberg conçu pour stocker des métadonnées telles que des index, des statistiques et des croquis. Le stockage de croquis dans des fichiers Puffin liés à des instantanés garantit la cohérence transactionnelle et l’actualité des statistiques NDV.

Vous pouvez configurer pour exécuter la tâche de génération de statistiques de colonne à l'aide de AWS Glue la console ou AWS CLI. Lorsque vous lancez le processus, AWS Glue démarre une tâche Spark en arrière-plan et met à jour les métadonnées de la AWS Glue table dans le catalogue de données. Vous pouvez consulter les statistiques des colonnes à l'aide de la AWS Glue console AWS CLI ou en appelant l'opération [GetColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_GetColumnStatisticsForTable.html)API.

**Note**  
Si vous utilisez AWS Lake Formation des autorisations pour contrôler l'accès à la table, le rôle assumé par la tâche de statistiques sur les colonnes nécessite un accès complet à la table pour générer des statistiques.

**Topics**
+ [Conditions préalables à la génération de statistiques de colonne](iceberg-column-stats-prereqs.md)
+ [Génération de statistiques de colonne pour les tables Iceberg](iceberg-generate-column-stats.md)
+ [Consultez aussi](#see-also-iceberg-stats)

# Conditions préalables à la génération de statistiques de colonne
<a name="iceberg-column-stats-prereqs"></a>

Pour générer ou mettre à jour des statistiques de colonne pour les tables Iceberg, la tâche de génération de statistiques assume un rôle Gestion des identités et des accès AWS (IAM) en votre nom. Sur la base des autorisations accordées au rôle, la tâche de génération de statistiques de colonne peut lire les données à partir du magasin de données Amazon S3.

Lorsque vous configurez la tâche de génération de statistiques de AWS Glue colonne, vous pouvez créer un rôle qui inclut la politique `AWSGlueServiceRole` AWS gérée ainsi que la politique en ligne requise pour la source de données spécifiée. 

Si vous spécifiez un rôle existant pour la génération de statistiques de colonne, assurez-vous qu’il inclut la politique `AWSGlueServiceRole` ou l’équivalent (ou une version limitée de cette politique), ainsi que les politiques en ligne requises.

Pour plus d’informations sur les autorisations requises, consultez [Conditions préalables à la génération de statistiques de colonne](column-stats-prereqs.md). 

# Génération de statistiques de colonne pour les tables Iceberg
<a name="iceberg-generate-column-stats"></a>

Procédez comme suit pour configurer un calendrier de génération de statistiques dans le catalogue de données à l'aide de la AWS Glue console AWS CLI ou de l'opération ou exécutez l'**StartColumnStatisticsTaskRun**opération.

**Pour générer des statistiques de colonne**

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

1. Sélectionnez **Tables** sous Catalogue de données.

1. Choisissez une table Iceberg dans la liste. 

1. Choisissez **Statistiques de colonne**, **Générer à la demande** dans le menu **Actions**.

   Vous pouvez également choisir le bouton **Générer des statistiques** sous l'onglet **Statistiques de colonne** dans la section inférieure de la page **Tables**.

1. Sur la page **Générer des statistiques**, fournissez les détails relatifs à la génération des statistiques. Suivez les étapes 6 à 11 de la section [Génération de statistiques de colonne selon un calendrier](generate-column-stats.md) pour configurer un calendrier de génération de statistiques pour les tables Iceberg. 

   Vous pouvez également choisir de générer des statistiques de colonnes à la demande en suivant les instructions de [Génération de statistiques de colonne à la demande](column-stats-on-demand.md).
**Note**  
L’option d’échantillonnage n’est pas disponible pour les tables Iceberg.

   AWS Glue calcule le nombre de valeurs distinctes pour chaque colonne de la table Iceberg dans un nouveau fichier Puffin validé avec l'ID de snapshot spécifié dans votre emplacement Amazon S3.

## Consultez aussi
<a name="see-also-iceberg-stats"></a>
+ [Affichage des statistiques de colonne](view-column-stats.md)
+ [Affichage des exécutions de tâches de statistiques de colonne](view-stats-run.md)
+ [Arrêt d'exécution de la tâche de statistiques de colonne](stop-stats-run.md)
+ [Supprimer les statistiques de colonne](delete-column-stats.md)