Je souhaite résoudre une commande MSCK REPAIR TABLE qui prend trop de temps à s'exécuter ou qui expire dans Amazon Athena.
Brève description
Lorsque vous exécutez la commande MSCK REPAIR TABLE, Athena répertorie les préfixes et les objets dans Amazon Simple Storage Service (Amazon S3). Si vous avez trop de préfixes ou d’objets Amazon S3, la commande met du temps à s’exécuter ou expire avec une erreur.
Pour résoudre ce problème, appliquez l’une des méthodes suivantes :
- Utilisez la projection Partition avec Athena.
- Utilisez un robot AWS Glue pour ajouter des partitions à vos tables Athena.
- Utiliser une instruction Athena DDL pour charger des partitions
Résolution
Utiliser la projection Partition avec Athena
Utilisez la Projection de partitions avec Athena pour générer des partitions en mémoire. Il n’est pas nécessaire d’ajouter les partitions au catalogue de données AWS Glue ou de les récupérer à partir du catalogue de données. Athena calcule la valeur de la table au lieu de parcourir une longue liste de partitions. En outre, la projection de partition calcule les valeurs et les emplacements à partir de la configuration plutôt qu’à partir d’un référentiel tel qu’AWS Glue Data Catalog.
Utilisez un robot AWS Glue pour ajouter des partitions à vos tables Athena
Pour utiliser un robot AWS Glue afin d’ajouter des partitions à vos tables Athena, procédez comme suit :
- Ouvrez la console AWS Glue.
- Dans le volet de navigation, choisissez Robots, puis choisissez Créer un robot.
- Donnez un nom au robot, puis choisissez Suivant.
- Sous Choisir les sources de données et les classificateurs, et sous Configuration des sources de données, sélectionnez Oui pour Vos données sont-elles déjà mappées aux tables Glue ?
- Sous Glue tables, sélectionnez Ajouter des tables, puis sélectionnez la base de données et la table requises. Choisissez Suivant.
- Sélectionnez ou Créez un rôle IAM pour AWS Glue. Choisissez Suivant.
- Sous Définir la sortie et la planification, développez les Options avancées, puis sélectionnez les options suivantes :
Ignorez la modification et ne mettez pas à jour le tableau dans le catalogue de données.
Mettez à jour toutes les partitions nouvelles et existantes à l'aide des métadonnées du tableau.
Ignorez la modification et ne mettez pas à jour le tableau dans le catalogue de données.
- Choisissez Suivant, puis choisissez Créer un robot pour enregistrer la configuration du robot.
- Choisissez Exécuter un robot. Lorsque vous exécutez le robot, les partitions sont chargées dans la table.
Pour plus d’informations, consultez Comment fonctionnent les robots et Analyses incrémentielles pour ajouter de nouvelles partitions dans AWS Glue.
Utiliser une instruction Athena DDL pour charger des partitions
Pour utiliser une instruction Athena DDL afin de charger des partitions, procédez comme suit :
- Ouvrez la console Amazon Athena.
- Dans l'onglet Éditeur de requêtes, exécutez la commande ALTER TABLE ADD PARTITION pour charger les partitions.
Informations connexes
Pourquoi mes requêtes Athena mettent-elles du temps à s'exécuter ?
Création de tables, mise à jour du schéma et ajout de nouvelles partitions dans le catalogue de données à partir de tâches ETL AWS Glue
Tarification d'AWS Glue