

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

# Optimisation des performances des requêtes à l’aide des statistiques de colonne
<a name="column-statistics"></a>

Vous pouvez calculer des statistiques au niveau des colonnes pour AWS Glue Data Catalog des tables dans des formats de données tels que Parquet, ORC, JSON, ION, CSV et XML sans configurer de pipelines de données supplémentaires. Les statistiques de colonne vous aident à comprendre les profils de données en obtenant des informations sur les valeurs d'une colonne. 

Le catalogue de données prend en charge la génération de statistiques pour les valeurs de colonne telles que la valeur minimale, la valeur maximale, le total des valeurs nulles, le total des valeurs distinctes, la longueur moyenne des valeurs et le nombre total d'occurrences de valeurs vraies. AWS des services analytiques tels qu'Amazon Redshift et Amazon Athena peuvent utiliser ces statistiques de colonne pour générer des plans d'exécution des requêtes et choisir le plan optimal qui améliore les performances des requêtes.

Il existe trois scénarios pour générer des statistiques de colonne : 

 **Automatique**   
AWS Glue prend en charge la génération automatique de statistiques sur les colonnes au niveau du catalogue afin de pouvoir générer automatiquement des statistiques pour les nouvelles tables du. AWS Glue Data Catalog

**Programmé**  
AWS Glue prend en charge la génération de statistiques de colonne de planification afin qu'elle puisse être exécutée automatiquement selon un calendrier récurrent.   
Avec le calcul planifié des statistiques, la tâche de statistiques sur les colonnes met à jour les statistiques globales au niveau de la table, telles que min, max et avg, avec les nouvelles statistiques, fournissant aux moteurs de requêtes des statistiques précises et up-to-date permettant d'optimiser l'exécution des requêtes. 

**À la demande**  
Utilisez cette option pour générer des statistiques de colonnes à la demande chaque fois que cela s’avère nécessaire. Cela est utile pour les analyses ad hoc ou lorsque les statistiques doivent être calculées immédiatement. 

Vous pouvez configurer pour exécuter une tâche de génération de statistiques de colonne à l'aide des AWS CLI opérations de AWS Glue console et AWS Glue d'API. 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 les autorisations de Lake Formation pour contrôler l'accès à la table, le rôle assumé par la tâche de statistiques de colonne nécessite un accès complet à la table pour générer des statistiques.

 La vidéo suivante montre comment améliorer les performances des requêtes à l’aide des statistiques de colonne. 

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


**Topics**
+ [Conditions préalables à la génération de statistiques de colonne](column-stats-prereqs.md)
+ [Génération automatique de statistiques de colonne](auto-column-stats-generation.md)
+ [Génération de statistiques de colonne selon un calendrier](generate-column-stats.md)
+ [Génération de statistiques de colonne à la demande](column-stats-on-demand.md)
+ [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)
+ [Considérations et restrictions](column-stats-notes.md)

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

Pour générer ou mettre à jour les statistiques de colonne, la tâche de génération de statistiques assume un rôle (IAM) Gestion des identités et des accès AWS 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 un équivalent (ou une version limitée de cette politique), en plus des politiques en ligne requises. Pour créer un rôle IAM, procédez comme suit :

**Note**  
 Pour générer des statistiques pour les tables gérées par Lake Formation, le rôle IAM utilisé pour générer des statistiques nécessite un accès complet à la table. 

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. Vous pouvez également créer un rôle et associer les autorisations répertoriées dans la politique ci-dessous, et ajouter ce rôle à la tâche de génération de statistiques de colonne.

**Pour créer un rôle IAM pour générer des statistiques de colonne**

1. Pour créer un rôle IAM, consultez [Création d'un rôle IAM pour AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html).

1. Pour mettre à jour un rôle existant, dans la console IAM, accédez au rôle IAM utilisé par le processus de génération de statistiques de colonne.

1. Dans la section **Ajouter des autorisations**, choisissez **Attacher des stratégies**. Dans la fenêtre du navigateur qui vient d'être ouverte, choisissez la politique `AWSGlueServiceRole` AWS gérée.

1. Vous devez également inclure les autorisations pour lire les données à partir de l’emplacement de données Amazon S3.

   Dans la section **Ajouter des autorisations**, choisissez **Créer une stratégie**. 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 stratégie**, choisissez l’onglet **JSON**. Copiez le code `JSON` suivant dans le champ de l’éditeur de stratégie.
**Note**  
Dans les politiques suivantes, remplacez l'ID de compte par un identifiant valide Compte AWS, puis `region` remplacez-le par la région du tableau et `bucket-name` par le nom du compartiment Amazon S3.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "S3BucketAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject"
               ],
               "Resource": [
               	"arn:aws:s3:::amzn-s3-demo-bucket/*",
   							"arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           }
        ]
   }
   ```

------

1. (Facultatif) Si vous utilisez les autorisations Lake Formation pour accéder à vos données, le rôle IAM nécessite des autorisations `lakeformation:GetDataAccess`.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "LakeFormationDataAccess",
         "Effect": "Allow",
         "Action": "lakeformation:GetDataAccess",
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

    Si l’emplacement des données Amazon S3 est enregistré auprès de Lake Formation et que le rôle IAM assumé par la tâche de génération de statistiques de colonne ne dispose pas d’autorisations de groupe `IAM_ALLOWED_PRINCIPALS` accordées sur la table, le rôle nécessite Lake Formation `ALTER` et des autorisations `DESCRIBE` sur la table. Le rôle utilisé pour enregistrer le compartiment Amazon S3 nécessite Lake Formation `INSERT` et des autorisations `DELETE` sur la table. 

   Si l’emplacement des données Amazon S3 n’est pas enregistré auprès de Lake Formation et que le rôle IAM ne dispose pas d’autorisations de groupe `IAM_ALLOWED_PRINCIPALS` accordées sur la table, le rôle nécessite les autorisations Lake Formation `ALTER`, `DESCRIBE`, `INSERT` et `DELETE` sur la table. 

1. Si vous avez activé l’option `Automatic statistics generation` au niveau du catalogue, le rôle IAM doit disposer de l’autorisation `glue:UpdateCatalog` ou de l’autorisation `ALTER CATALOG` Lake Formation sur le catalogue de données par défaut. Vous pouvez utiliser l’opération `GetCatalog` pour vérifier les propriétés du catalogue. 

1. (Facultatif) La tâche de génération de statistiques de colonne qui écrit Amazon CloudWatch Logs chiffré nécessite les autorisations suivantes dans la stratégie de clé.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "CWLogsKmsPermissions",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:AssociateKmsKey"
         ],
         "Resource": [
           "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue:*"
         ]
       },
       {
         "Sid": "KmsPermissions",
         "Effect": "Allow",
         "Action": [
           "kms:GenerateDataKey",
           "kms:Decrypt",
           "kms:Encrypt"
         ],
         "Resource": [
           "arn:aws:kms:us-east-1:111122223333:key/arn of key used for ETL cloudwatch encryption"
         ],
         "Condition": {
           "StringEquals": {
             "kms:ViaService": [
               "glue.us-east-1.amazonaws.com"
             ]
           }
         }
       }
     ]
   }
   ```

------

1. Le rôle que vous utilisez pour exécuter les statistiques de colonne 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/columnstats-role-name"
         ]
       }
     ]
   }
   ```

------

1. Lorsque vous créez un rôle IAM pour générer des statistiques de colonne, ce rôle doit également avoir la stratégie d’approbation suivante qui permet au service d’assumer le rôle. 

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

****  

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

------

# Génération automatique de statistiques de colonne
<a name="auto-column-stats-generation"></a>

La génération automatique de statistiques de colonne vous permet de planifier et de calculer automatiquement les statistiques sur les nouvelles tables de l’ AWS Glue Data Catalog. Lorsque vous activez la génération automatique de statistiques, le catalogue de données découvre de nouvelles tables avec des formats de données spécifiques tels que Parquet, JSON, CSV, XML, ORC, ION et Apache Iceberg, ainsi que leurs chemins d’accès aux compartiments individuels. Avec une configuration de catalogue unique, le catalogue de données génère des statistiques pour ces tables.

 Les administrateurs de lac de données peuvent configurer la génération de statistiques en sélectionnant le catalogue par défaut dans la console Lake Formation et en activant les statistiques des tables à l’aide de l’option `Optimization configuration`. Lorsque vous créez de nouvelles tables ou que vous mettez à jour des tables existantes dans le catalogue de données, le catalogue de données collecte le nombre de valeurs distinctes (NDVs) pour les tables Apache Iceberg, ainsi que des statistiques supplémentaires telles que le nombre de valeurs nulles, la longueur maximale, minimale et moyenne pour les autres formats de fichiers pris en charge sur une base hebdomadaire. 

Si vous avez configuré la génération de statistiques au niveau de la table ou si vous avez précédemment supprimé les paramètres de génération de statistiques d’une table, ces paramètres propres à la table ont priorité sur les paramètres de catalogue par défaut pour la génération automatique de statistiques de colonne.

 La tâche de génération automatique de statistiques analyse 50 % des enregistrements des tables pour calculer les statistiques. La génération automatique de statistiques de colonne garantit que le catalogue de données conserve des métriques hebdomadaires qui peuvent être utilisées par les moteurs de requêtes tels qu’Amazon Athena et Amazon Redshift Spectrum pour améliorer les performances des requêtes et réaliser des économies potentielles. Il permet de planifier la génération de statistiques à l'aide AWS Glue APIs de la console, fournissant ainsi un processus automatisé sans intervention manuelle. 

**Topics**
+ [Activation de la génération automatique de statistiques au niveau du catalogue](enable-auto-column-stats-generation.md)
+ [Affichage des paramètres au niveau de la table automatisés](view-auto-column-stats-settings.md)
+ [Désactivation de la génération de statistiques de colonne au niveau du catalogue](disable-auto-column-stats-generation.md)

# Activation de la génération automatique de statistiques au niveau du catalogue
<a name="enable-auto-column-stats-generation"></a>

Vous pouvez activer la génération automatique de statistiques de colonne pour toutes les nouvelles tables Apache Iceberg et les tables dans des formats de table autres que OTF (Parquet, JSON, CSV, XML, ORC, ION) dans le catalogue de données. Après avoir créé la table, vous pouvez également mettre à jour manuellement de manière explicite les paramètres des statistiques de colonne.

 Pour mettre à jour les paramètres du catalogue de données afin de les activer au niveau du catalogue, le rôle IAM utilisé doit disposer de l'`glue:UpdateCatalog`autorisation ou de l' AWS Lake Formation `ALTER CATALOG`autorisation sur le catalogue racine. Vous pouvez utiliser l’API `GetCatalog` pour vérifier les propriétés du catalogue. 

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

**Pour activer la génération automatique de statistiques de colonne au niveau du compte**

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 **Configuration de l’optimisation**.   
![\[La capture d'écran montre les options disponibles pour générer des statistiques de colonne.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/edit-column-stats-auto.png)

1. Sur la page de **Configuration de l’optimisation des tables**, choisissez l’option **Activer la génération automatique de statistiques pour les tables du catalogue**.  
![\[La capture d'écran montre les options disponibles pour générer des statistiques de colonne.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/edit-optimization-option.jpg)

1. Choisissez un rôle IAM existant ou créez-en un autre avec les autorisations nécessaires pour exécuter la tâche de statistiques de colonne.

1. Sélectionnez **Soumettre**.

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

Vous pouvez également activer la collecte de statistiques au niveau du catalogue via l’ AWS CLI. Pour configurer la collecte de statistiques au niveau des tables à l'aide de AWS CLI, exécutez la commande suivante :

```
aws glue update-catalog --cli-input-json '{
    "name": "123456789012",
    "catalogInput": {
        "description": "Updating root catalog with role arn",
        "catalogProperties": {
            "customProperties": {
                "ColumnStatistics.RoleArn": "arn:aws:iam::"123456789012":role/service-role/AWSGlueServiceRole",
                "ColumnStatistics.Enabled": "true"
            }
        }
    }
}'
```

 La commande ci-dessus appelle AWS Glue l'`UpdateCatalog`opération, qui prend en compte une `CatalogProperties` structure avec les paires clé-valeur suivantes pour la génération de statistiques au niveau du catalogue : 
+ ColumnStatistics. RoleArn — L'ARN du rôle IAM doit être utilisé pour toutes les tâches déclenchées pour la génération de statistiques au niveau du catalogue
+ ColumnStatistics.Enabled — Booléen indiquant si les paramètres au niveau du catalogue sont activés ou désactivés

------

# Affichage des paramètres au niveau de la table automatisés
<a name="view-auto-column-stats-settings"></a>

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

 Les tables pour lesquelles la génération automatique de statistiques est activée doivent respecter l’une des propriétés suivantes :
+ Utiliser une `InputSerdeLibrary` qui commence par org.apache.hadoop et `TableType` égal à `EXTERNAL_TABLE`
+ Utiliser une `InputSerdeLibrary` qui commence par `com.amazon.ion` et `TableType` égal à `EXTERNAL_TABLE`
+ Contenir table\$1type : « ICEBERG » dans sa structure de paramètres 

 Après avoir créé ou mis à jour une table, vous pouvez vérifier ses détails pour confirmer la génération de statistiques. `Statistics generation summary` affiche la propriété `Schedule` définie comme `AUTO` et la valeur `Statistics configuration` est `Inherited from catalog`. Tout paramètre de table avec le paramètre suivant serait automatiquement déclenché par Glue en interne. 

![\[Une image d’une table Hive avec collecte de statistiques au niveau du catalogue a été appliquée et des statistiques ont été collectées.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/auto-stats-summary.png)


# Désactivation de la génération de statistiques de colonne au niveau du catalogue
<a name="disable-auto-column-stats-generation"></a>

 Vous pouvez désactiver la génération automatique de statistiques de colonne pour les nouvelles tables à l'aide de la AWS Lake Formation console, de l'`glue:UpdateCatalogSettings`API ou de l'`glue:DeleteColumnStatisticsTaskSettings`API. 

**Pour désactiver la génération automatique de statistiques de colonne au niveau du compte**

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 **Configuration de l’optimisation**. 

1. Sur la page de **Configuration de l’optimisation des tables**, désélectionnez l’option **Activer la génération automatique de statistiques pour les tables du catalogue**.

1. Sélectionnez **Soumettre**.

# Génération de statistiques de colonne selon un calendrier
<a name="generate-column-stats"></a>

Suivez ces étapes pour configurer un calendrier de génération de statistiques de colonne à l' AWS Glue Data Catalog aide de la AWS Glue console, de l' AWS CLI opération ou de l'[CreateColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings)opération.

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

**Pour générer des statistiques de colonne à l'aide de la console**

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

1. Choisissez des tables du catalogue de donnée.

1. Choisissez une table dans la liste. 

1. Dans la partie inférieure de la page **Tables**, choisissez **Statistiques de colonne**.

1. Vous pouvez également sélectionner **Générer selon le calendrier** sous **Statistiques de colonne** depuis **Actions**.

1. Sur la page **Générer des statistiques selon le calendrier** configurez un calendrier récurrent pour exécuter la tâche de statistiques de colonne en choisissant la fréquence et l’heure de début. Vous pouvez choisir une fréquence horaire, quotidienne, hebdomadaire ou définir une expression cron pour spécifier le calendrier.

   Une expression cron est une chaîne représentant un modèle de planification, composée de 6 champs séparés par des espaces :\$1 \$1 \$1 \$1 \$1 \$1 <minute><hour><day of month><month><day of week><year>Par exemple, pour exécuter une tâche tous les jours à minuit, l'expression cron serait : 0 0 \$1 \$1 ? \$1

   Pour plus d’informations, consultez [Expressions Cron](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions).  
![\[La capture d'écran montre les options disponibles pour générer des statistiques de colonne.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/generate-column-stats-schedule.png)

1. Ensuite, choisissez l’option de colonne pour générer des statistiques.
   + **Toutes les colonnes** : choisissez cette option pour générer des statistiques pour toutes les colonnes de la table.
   + **Colonnes sélectionnées** : choisissez cette option pour générer des statistiques pour des colonnes spécifiques. Vous pouvez sélectionner les colonnes dans la liste déroulante.

1. Choisissez un rôle IAM ou créez un rôle existant autorisé à générer des statistiques. AWS Glue assume ce rôle pour générer des statistiques de colonne.

   Une approche plus rapide consiste à laisser la AWS Glue console créer un rôle pour vous. Le rôle qu'il crée est spécifiquement destiné à générer des statistiques sur les colonnes et 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 un équivalent (ou une version limitée de cette politique), en plus des politiques en ligne requises. 

1. (Facultatif) Choisissez ensuite une configuration de sécurité pour activer le chiffrement au repos des journaux.

1. (Facultatif) Vous pouvez choisir une taille d’échantillon en indiquant uniquement un pourcentage spécifique de lignes dans la table pour générer des statistiques. La valeur par défaut est toutes les lignes. Utilisez les flèches haut et bas pour augmenter ou diminuer la valeur en pourcentage. 

   Nous vous recommandons d'inclure toutes les lignes de la table pour calculer des statistiques précises. Utilisez des exemples de lignes pour générer des statistiques de colonne uniquement lorsque des valeurs approximatives sont acceptables.

1. Choisissez **Générer des statistiques** pour exécuter la tâche de génération des statistiques de colonne.

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

Vous pouvez utiliser l' AWS CLI exemple suivant pour créer un calendrier de génération de statistiques de colonnes. Le nom de la base de données, le nom de la table et le rôle sont des paramètres obligatoires, tandis que les paramètres facultatifs sont le planning, l'identifiant du catalogue column-name-list, la taille de l'échantillon et la configuration de sécurité.

```
aws glue create-column-statistics-task-settings \ 
 --database-name 'database_name' \ 
 --table-name table_name \ 
 --role 'arn:aws:iam::123456789012:role/stats-role' \ 
 --schedule 'cron(0 0-5 14 * * ?)' \ 
 --column-name-list 'col-1' \  
 --catalog-id '123456789012' \ 
 --sample-size '10.0 ' \
 --security-configuration 'test-security'
```

Vous pouvez également générer des statistiques de colonne en appelant l'[StartColumnStatisticsTaskRun](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun)opération.

------

# Gestion du calendrier de génération des statistiques de colonne
<a name="manage-column-stats-schedule"></a>

Vous pouvez gérer les opérations de planification telles que la mise à jour, le démarrage, l’arrêt et la suppression des planifications pour les statistiques de colonne générées dans AWS Glue. Vous pouvez utiliser les [opérations de l'API de statistiques de AWS Glue console ou de AWS Glue colonne](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html) pour effectuer ces tâches. AWS CLI

**Topics**
+ [Mise à jour du calendrier de génération des statistiques de colonne](#update-column-stats-shedule)
+ [Arrêt du calendrier de génération des statistiques de colonne](#stop-column-stats-schedule)
+ [Reprise du calendrier pour la génération des statistiques de colonne](#resume-column-stats-schedule)
+ [Suppression du calendrier de génération de statistiques de colonne](#delete-column-stats-schedule)

## Mise à jour du calendrier de génération des statistiques de colonne
<a name="update-column-stats-shedule"></a>

Vous pouvez mettre à jour le calendrier pour déclencher la tâche de génération des statistiques de colonne après sa création. Vous pouvez utiliser la AWS Glue console ou exécuter l'[UpdateColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-UpdateColumnStatisticsTaskSettings)opération pour mettre à jour le calendrier d'une table. AWS CLI Vous pouvez modifier les paramètres d’un calendrier existant, tels que le type de calendrier (à la demande ou planifié) et d’autres paramètres facultatifs. 

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

**Pour mettre à jour les paramètres d’une tâche de génération de 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. Choisissez la table que vous voulez mettre à jour dans la liste.

1. Dans la partie inférieure de la page de détails de la table, choisissez **Statistiques de colonne**. 

1. Sous **Actions**, choisissez **Modifier** pour mettre à jour le calendrier.

1. Apportez les modifications souhaitées au calendrier, puis cliquez sur **Enregistrer**.

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

 Si vous n'utilisez pas la fonction AWS Glue de génération de statistiques de la console, vous pouvez mettre à jour le calendrier manuellement à l'aide de la `update-column-statistics-task-settings` commande. L'exemple suivant montre comment mettre à jour les statistiques de colonne à l'aide de la AWS CLI. 

```
aws glue update-column-statistics-task-settings \ 
 --database-name 'database_name' \ 
 --table-name 'table_name' \ 
 --role arn:aws:iam::123456789012:role/stats_role \ 
 --schedule 'cron(0 0-5 16 * * ?)' \ 
 --column-name-list 'col-1' \
 --sample-size '20.0' \  
 --catalog-id '123456789012'\
 --security-configuration 'test-security'
```

------

## Arrêt du calendrier de génération des statistiques de colonne
<a name="stop-column-stats-schedule"></a>

 Si vous n’avez plus besoin des statistiques incrémentielles, vous pouvez arrêter la génération planifiée pour économiser des ressources et des coûts. La suspension du calendrier n’a aucune incidence sur les statistiques générées précédemment. Vous pouvez reprendre le calendrier à votre convenance. 

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

**Pour arrêter le calendrier pour une tâche de génération des statistiques de colonne**

1. Sur AWS Glue la console, sélectionnez **Tables** sous Catalogue de données.

1. Sélectionnez une table avec des statistiques de colonne.

1. Sur la page **Détails de la table**, choisissez **Statistiques de colonne**.

1. Sous **Actions**, choisissez **Génération planifiée**, puis **Pause**.

1. Choisissez **Pause** pour confirmer.

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

Pour arrêter le calendrier d'exécution d'une tâche de statistiques de colonne à l'aide de AWS CLI, vous pouvez utiliser la commande suivante : 

```
aws glue stop-column-statistics-task-run-schedule \
 --database-name ''database_name' \
 --table-name 'table_name'
```

Remplacez les valeurs `database_name` et `table_name` par les noms réels de la base de données et de la table pour lesquelles vous souhaitez arrêter le calendrier d’exécution de la tâche de statistiques de colonne.

------

## Reprise du calendrier pour la génération des statistiques de colonne
<a name="resume-column-stats-schedule"></a>

 Si vous avez suspendu le calendrier de génération des statistiques, vous AWS Glue permet de le reprendre à votre convenance. Vous pouvez reprendre le planning à l'aide de la AWS Glue AWS CLI console ou de l'[StartColumnStatisticsTaskRunSchedule](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRunSchedule)opération. 

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

**Pour reprendre le calendrier de génération des statistiques de colonne**

1. Sur AWS Glue la console, sélectionnez **Tables** sous Catalogue de données.

1. Sélectionnez une table avec des statistiques de colonne.

1. Sur la page **Détails de la table**, choisissez **Statistiques de colonne**.

1. Sous **Actions**, choisissez **Génération planifiée**, puis **Reprendre**.

1. Choisissez **Reprendre** pour confirmer.

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

Remplacez les valeurs `database_name` et `table_name` par les noms réels de la base de données et de la table pour lesquelles vous souhaitez arrêter le calendrier d’exécution de la tâche de statistiques de colonne.

```
aws glue start-column-statistics-task-run-schedule \
 --database-name 'database_name' \
 --table-name 'table_name'
```

------

## Suppression du calendrier de génération de statistiques de colonne
<a name="delete-column-stats-schedule"></a>

 Bien que la gestion up-to-date des statistiques soit généralement recommandée pour optimiser les performances des requêtes, il existe des cas d'utilisation spécifiques dans lesquels la suppression du calendrier de génération automatique peut être bénéfique.
+ Si les données restent relativement statiques, les statistiques des colonnes existantes peuvent rester précises pendant une période prolongée, ce qui réduit le besoin de mises à jour fréquentes. La suppression du calendrier permet d’éviter la consommation inutile de ressources et les frais généraux associés à la régénération des statistiques sur des données immuables.
+ Lorsque le contrôle manuel de la génération de statistiques est préférable. En supprimant le calendrier automatique, les administrateurs peuvent mettre à jour de manière sélective les statistiques de colonne à des intervalles spécifiques ou après des modifications importantes des données, en alignant le processus sur leurs stratégies de maintenance et leurs besoins d’allocation de ressources. 

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

**Pour supprimer le calendrier de génération des statistiques de colonne**

1. Sur AWS Glue la console, sélectionnez **Tables** sous Catalogue de données.

1. Sélectionnez une table avec des statistiques de colonne.

1. Sur la page **Détails de la table**, choisissez **Statistiques de colonne**.

1. Sous **Actions**, choisissez **Génération planifiée**, puis **Supprimer**.

1. Choisissez **Supprimer** pour confirmer.

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

Remplacez les valeurs `database_name` et `table_name` par les noms réels de la base de données et de la table pour lesquelles vous souhaitez arrêter le calendrier d’exécution de la tâche de statistiques de colonne.

Vous pouvez supprimer le calendrier des statistiques des colonnes à l'aide de l'opération [DeleteColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-DeleteColumnStatisticsTaskSettings)API ou AWS CLI. L'exemple suivant montre comment supprimer le calendrier de génération de statistiques de colonne à l'aide de AWS Command Line Interface (AWS CLI).

```
aws glue delete-column-statistics-task-settings \
    --database-name 'database_name' \
    --table-name 'table_name'
```

------

# Génération de statistiques de colonne à la demande
<a name="column-stats-on-demand"></a>

Vous pouvez exécuter la tâche de statistiques de colonnes pour la tâche de AWS Glue Data Catalog tables à la demande sans planification définie. Cette option est utile pour les analyses ad hoc ou lorsque les statistiques doivent être calculées immédiatement.

Procédez comme suit pour générer des statistiques de colonne à la demande pour les tables du catalogue de données à l'aide de AWS Glue la console ou AWS CLI.

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

**Pour générer des statistiques de colonne à l'aide de la console**

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

1. Choisissez des tables du catalogue de donnée.

1.  Choisissez une table dans la liste. 

1. Choisissez **Générer des statistiques** dans le menu **Actions**.

   Vous pouvez également choisir l’option **Générer**, **Générer à la demande** sous l’onglet **Statistiques de colonne** dans la section inférieure de la page **Table**.

1. Suivez les étapes 7 à 11 dans [Génération de statistiques de colonne selon un calendrier](generate-column-stats.md) pour générer des statistiques de colonne pour la table.

1. Sur la page **Générer des statistiques**, spécifiez les options suivantes :   
![\[La capture d'écran montre les options disponibles pour générer des statistiques de colonne.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/generate-column-stats.png)
   + **Toutes les colonnes** : choisissez cette option pour générer des statistiques pour toutes les colonnes de la table.
   + **Colonnes sélectionnées** : choisissez cette option pour générer des statistiques pour des colonnes spécifiques. Vous pouvez sélectionner les colonnes dans la liste déroulante.
   + **Rôle IAM** : choisissez **Créer un rôle IAM** doté des politiques d’autorisation requises pour exécuter la tâche de génération de statistiques de colonne. Choisissez Afficher les détails des autorisations pour examiner la déclaration de politique. Vous pouvez également sélectionner un rôle IAM dans la liste. Pour plus d’informations sur les autorisations requises, consultez [Conditions préalables à la génération de statistiques de colonne](column-stats-prereqs.md).

     AWS Glue assume les autorisations du rôle que vous spécifiez pour générer des statistiques. 

     Pour plus d'informations sur la fourniture de rôles pour AWS Glue, consultez la section [Politiques basées sur l'identité](https://docs.aws.amazon.com/glue/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies) pour. AWS Glue.
   + (Facultatif) Choisissez ensuite une configuration de sécurité pour activer le chiffrement au repos des journaux.
   + **Exemples de lignes** : choisissez uniquement un pourcentage spécifique de lignes dans la table pour générer des statistiques. La valeur par défaut est toutes les lignes. Utilisez les flèches haut et bas pour augmenter ou diminuer la valeur en pourcentage.
**Note**  
Nous vous recommandons d'inclure toutes les lignes de la table pour calculer des statistiques précises. Utilisez des exemples de lignes pour générer des statistiques de colonne uniquement lorsque des valeurs approximatives sont acceptables.

   Choisissez **Générer des statistiques** pour exécuter la tâche.

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

Cette commande déclenchera l’exécution d’une tâche de statistiques de colonne pour la table spécifiée. Vous devez indiquer le nom de la base de données, le nom de la table, un rôle IAM autorisé à générer des statistiques, et éventuellement fournir des noms de colonnes et un pourcentage de taille d’échantillon pour le calcul des statistiques.

```
aws glue start-column-statistics-task-run \ 
    --database-name 'database_name \ 
    --table-name 'table_name' \ 
    --role 'arn:aws:iam::123456789012:role/stats-role' \
    --column-name 'col1','col2'  \
    --sample-size 10.0
```

Cette commande lancera une tâche visant à générer des statistiques de colonne pour la table spécifiée. 

------

## Mise à jour des statistiques de colonne sur demande
<a name="update-column-stats-on-demand"></a>

 La gestion des statistiques des up-to-date colonnes est essentielle pour que l'optimiseur de requêtes génère des plans d'exécution efficaces, garantissant des performances de requête améliorées, une consommation de ressources réduite et de meilleures performances globales du système. Ce processus est particulièrement important après des modifications importantes des données, telles que des chargements groupés ou des modifications majeurs, qui peuvent rendre les statistiques existantes obsolètes. 

Vous devez exécuter explicitement la tâche **Générer des statistiques** depuis la AWS Glue console pour actualiser les statistiques des colonnes. Le catalogue de données n'actualise pas automatiquement les statistiques.

Si vous n'utilisez pas la fonction AWS Glue de génération de statistiques de la console, vous pouvez mettre à jour manuellement les statistiques des colonnes à l'aide de l'opération [UpdateColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateColumnStatisticsForTable.html)API ou AWS CLI. L'exemple suivant montre comment mettre à jour les statistiques de colonne à l'aide de la AWS CLI.

```
aws glue update-column-statistics-for-table --cli-input-json:

{
    "CatalogId": "111122223333",
    "DatabaseName": "database_name",
    "TableName": "table_name",
    "ColumnStatisticsList": [
        {
            "ColumnName": "col1",
            "ColumnType": "Boolean",
            "AnalyzedTime": "1970-01-01T00:00:00",
            "StatisticsData": {
                "Type": "BOOLEAN",
                "BooleanColumnStatisticsData": {
                    "NumberOfTrues": 5,
                    "NumberOfFalses": 5,
                    "NumberOfNulls": 0
                }
            }
        }
    ]
}
```

# Affichage des statistiques de colonne
<a name="view-column-stats"></a>

Une fois les statistiques générées avec succès, Data Catalog stocke ces informations pour les optimiseurs basés sur les coûts Amazon Athena et Amazon Redshift afin de faire des choix optimaux lors de l'exécution de requêtes. Les statistiques varient en fonction du type de colonne.

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

**Pour afficher les statistiques de colonne d'une table**
+ Après avoir exécuté la tâche de statistiques de colonne, l'onglet **Statistiques de colonne** de la page **Détails de la table** affiche les statistiques pour la table.   
![\[La capture d'écran montre les colonnes générées à partir de la dernière exécution.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/view-column-stats.png)

  Les statistiques suivantes sont disponibles :
  + Nom de colonne : nom de colonne utilisé pour générer des statistiques
  + Dernière mise à jour : date et heure de génération des statistiques
  + Longueur moyenne : longueur moyenne des valeurs dans la colonne
  + Valeurs distinctes : nombre total de valeurs distinctes dans la colonne. Nous estimons le nombre de valeurs distinctes dans une colonne avec une erreur relative de 5 %.
  + Valeur maximale : la plus grande valeur de la colonne.
  + Valeur minimale : la plus petite valeur de la colonne. 
  + Longueur maximale : longueur de la valeur la plus élevée dans la colonne.
  + Valeurs nulles : nombre total de valeurs nulles dans la colonne.
  + Valeurs réelles : nombre total de valeurs réelles dans la colonne.
  + Valeurs fausses : nombre total de valeurs fausses dans la colonne.
  + numFiles : nombre total de fichiers dans la table. Cette valeur est disponible sous l’onglet **Propriétés avancées**.

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

L'exemple suivant montre comment récupérer les statistiques de colonne à l'aide de la AWS CLI.

```
aws glue get-column-statistics-for-table \
    --database-name database_name \
    --table-name table_name \
    --column-names <column_name>
```

 Vous pouvez également consulter les statistiques des colonnes à l'aide de l'opération [GetColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_GetColumnStatisticsForTable.html)API. 

------

# Affichage des exécutions de tâches de statistiques de colonne
<a name="view-stats-run"></a>

Après avoir exécuté une tâche de statistiques de colonne, vous pouvez explorer les détails de l'exécution de la tâche pour une table à l'aide de AWS Glue la console AWS CLI ou à l'aide d'une [GetColumnStatisticsTaskRuns](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRun)opération.

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

**Pour afficher les détails de l'exécution de la tâche de statistiques de colonne**

1. Sur AWS Glue la console, sélectionnez **Tables** sous Catalogue de données.

1. Sélectionnez une table avec des statistiques de colonne.

1. Sur la page **Détails de la table**, choisissez **Statistiques de colonne**.

1. Choisissez **Afficher les exécutions**.

   Vous pouvez voir des informations sur toutes les exécutions associées à la table spécifiée.  
![\[La capture d'écran montre les options disponibles pour générer des statistiques de colonne.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/view-column-stats-task-runs.png)

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

Dans l'exemple suivant, remplacez les valeurs pour `DatabaseName` et `TableName` par le nom réel de la base de données et de la table.

```
aws glue get-column-statistics-task-runs --input-cli-json file://input.json
{
    "DatabaseName": "database_name",
    "TableName": "table_name"
}
```

------

# Arrêt d'exécution de la tâche de statistiques de colonne
<a name="stop-stats-run"></a>

Vous pouvez arrêter une tâche de statistiques de colonne exécutée pour une table à l'aide de AWS Glue la console AWS CLI ou à l'aide d'une [StopColumnStatisticsTaskRun](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRun)opération.

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

**Pour arrêter l'exécution d'une tâche de statistiques de colonne**

1. Sur AWS Glue la console, sélectionnez **Tables** sous Catalogue de données.

1. Sélectionnez la table dans laquelle l'exécution de la tâche de statistiques de colonne est en cours.

1. Sur la page **Détails de la table**, choisissez **Statistiques de colonne**.

1. Choisissez **Arrêter**.

   Si vous arrêtez la tâche avant la fin de l'exécution, aucune statistique de colonne ne sera générée pour la table.

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

Dans l'exemple suivant, remplacez les valeurs pour `DatabaseName` et `TableName` par le nom réel de la base de données et de la table.

```
aws glue stop-column-statistics-task-run --input-cli-json file://input.json
{
    "DatabaseName": "database_name",
    "TableName": "table_name"
}
```

------

# Supprimer les statistiques de colonne
<a name="delete-column-stats"></a>

Vous pouvez supprimer les statistiques des colonnes à l'aide de [DeleteColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_DeleteColumnStatisticsForTable.html)l'opération API ou AWS CLI. L'exemple suivant montre comment supprimer des statistiques de colonne à l'aide de AWS Command Line Interface (AWS CLI).

```
aws glue delete-column-statistics-for-table \
    --database-name 'database_name' \
    --table-name 'table_name' \
    --column-name 'column_name'
```

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

Les considérations et limites suivantes s'appliquent à la génération de statistiques de colonne.

**Considérations**
+ L'utilisation de l'échantillonnage pour générer des statistiques réduit le temps d'exécution, mais peut générer des statistiques inexactes.
+ Le catalogue de données ne stocke pas les différentes versions des statistiques.
+ Vous ne pouvez exécuter qu'une seule tâche de génération de statistiques à la fois par table.
+ Si une table est chiffrée à l'aide d'une AWS KMS clé client enregistrée dans Data Catalog, AWS Glue utilise la même clé pour chiffrer les statistiques.

**La tâche de statistiques de colonne prend en charge la génération de statistiques :**
+ Lorsque le rôle IAM dispose d'autorisations complètes sur les tables (IAM ou Lake Formation).
+ Lorsque le rôle IAM dispose d'autorisations sur la table en utilisant le mode d'accès hybride de Lake Formation.

**La tâche de statistiques de colonne ne prend pas en charge la génération de statistiques pour :**
+ Tables avec contrôle d’accès basé sur les cellules de Lake Formation
+ Lacs de données transactionnels : Linux Foundation Delta Lake, Apache Hudi.
+ Tables dans des bases de données fédérées - Hive metastore, unités de partage des données d'Amazon Redshift
+ Colonnes imbriquées, tableaux et types de données struct.
+ Table partagée avec vous depuis un autre compte