

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.

# Considérations et restrictions
<a name="querying-hudi-in-athena-considerations-and-limitations"></a>

Tenez compte des points suivants lors de la lecture de tables Apache Hudi à l’aide d’Athena :
+ **Opérations de lecture et d'écriture** : Athena peut lire des ensembles de données Hudi compactés, mais pas écrire de données Hudi.
+ Versions **Hudi — Athena prend en charge les versions** Hudi 0.14.0 (par défaut) et 0.15.0. Athena ne peut garantir la compatibilité de lecture avec les tables créées avec des versions ultérieures de Hudi. Pour plus d’informations sur les fonctions et la gestion des versions de Hudi, voir la [documentation Hudi](https://hudi.apache.org/) sur le site Web Apache. Notez que la version 0.15.0 du connecteur Hudi sur Athena ne prend pas en charge les tables bootstrap. Pour utiliser la version 0.15.0 du connecteur Hudi, définissez la propriété de table suivante :

  ```
  ALTER TABLE table_name SET TBLPROPERTIES ('athena_enable_native_hudi_connector_implementation' = 'true')
  ```
+ **Requêtes entre comptes** : la version 0.15.0 du connecteur Hudi ne prend pas en charge les requêtes entre comptes.
+ **Types de requêtes** : Athena prend actuellement en charge les requêtes instantanées et les requêtes optimisées pour la lecture, mais pas les requêtes incrémentielles. Sur les tables MoR, toutes les données exposées aux requêtes à lecture optimisée sont compactées . Cela procure de bonnes performances, mais n'inclut pas les dernières validations delta. Les requêtes d'instantané contiennent les données les plus récentes mais entraînent une surcharge de calcul, ce qui rend ces requêtes moins performantes. Pour plus d'informations sur les compromis entre les types de tables et de requêtes, consultez [Types de tables et de requêtes](https://hudi.apache.org/docs/table_types/) dans la documentation d'Apache Hudi.
+ **Requêtes incrémentielles** : Athena ne prend pas en charge les requêtes incrémentielles.
+ **CTAS** : Athena ne prend pas en charge [CTAS](ctas.md) ou [INSERT INTO](insert-into.md) sur les données Hudi. Si vous souhaitez qu'Athena prenne en charge l'écriture des jeux de données Hudi, envoyez vos commentaires à athena-feedback@amazon.com.

  Pour plus d'informations sur l'écriture des données Hudi, consultez les ressources suivantes :
  + [Utilisation d'un jeu de données Hudi](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hudi-work-with-dataset.html) dans le [Guide de version Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
  + [Écriture de données](https://hudi.apache.org/docs/0.8.0/writing_data.html) dans la documentation d'Apache Hudi.
+ **MSCK REPAIR TABLE** : la commande MSCK REPAIR TABLE n’est pas prise en charge sur les tables Hudi dans Athena. Si vous devez charger une table Hudi qui n'a pas été créée dans AWS Glue, utilisez[ALTER TABLE ADD PARTITION](alter-table-add-partition.md).
+ **Omission des objets Amazon Glacier non prise en charge** : si des objets de la table Apache Hudi appartiennent à une classe de stockage Amazon Glacier, la définition de la propriété de table `read_restored_glacier_objects` sur `false` n’a aucun effet.

  Par exemple, supposons que vous exécutiez la commande suivante :

  ```
  ALTER TABLE table_name SET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')
  ```

  Pour les tables Iceberg et Delta Lake, la commande produit l'erreur Unsupported table property key: read\$1restored\$1glacier\$1objects. Pour les tables Hudi, la commande `ALTER TABLE` ne génère pas d’erreur, mais les objets Amazon Glacier ne sont toujours pas ignorés. L'exécution de requêtes `SELECT` après la commande `ALTER TABLE` continue de renvoyer tous les objets.
+ **Requêtes d’horodatage** : actuellement, les requêtes qui tentent de lire les colonnes d’horodatage dans des tables en temps réel Hudi échouent ou génèrent des résultats vides. Cette restriction s’applique uniquement aux requêtes qui lisent une colonne d’horodatage. Les requêtes qui contiennent uniquement des colonnes de données autres que des données d’horodatage issues de la même table aboutissent. 

  Les requêtes qui échouent renvoient un message semblable à celui présenté dans l’exemple suivant : 

  GENERIC\$1INTERNAL\$1ERROR : classe org.apache.hadoop.io. ArrayWritablene peut pas être converti en classe org.apache.hadoop.hive.serde2.io. TimestampWritableV2 (org.apache.hadoop.io. ArrayWritable et org.apache.hadoop.hive.serde2.io. TimestampWritableLes V2 se trouvent dans un module anonyme du chargeur io.trino.server. PluginClassLoader @75c67992)
+ **Permissions de formation de lacs sur le connecteur Hudi 0.15.0** — Cette limitation s'applique uniquement lorsque vous choisissez d'utiliser le connecteur Hudi natif (version 0.15.0) en définissant la propriété de la table sur. `athena_enable_native_hudi_connector_implementation` `true` Par défaut, Athena utilise le connecteur Hudi version 0.14.0, qui ne nécessite pas cette autorisation supplémentaire. Pour interroger une table protégée de Lake Formation, vous devez accorder à Lake Formation des autorisations à la fois sur l'emplacement des données de la table et sur le répertoire `.hoodie` des métadonnées. Par exemple, si votre table Hudi se trouve à`s3://bucket/hudi-table/`, vous devez vous enregistrer et accorder des autorisations à la fois `s3://bucket/hudi-table/` et `s3://bucket/hudi-table/.hoodie/` dans Lake Formation. Le `.hoodie` répertoire contient des fichiers de métadonnées (tels que`hoodie.properties`) qu'Athena doit lire lors de la planification des requêtes. Sans autorisation d'accès à l'`.hoodie`annuaire, les requêtes échoueront et entraîneront des erreurs de refus d'autorisation.