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
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
sur le site Web Apache. Pour utiliser la version 0.15.0 du connecteur Hudi, définissez la propriété de table suivante : ALTER TABLEtable_nameSET 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
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 ou INSERT INTO 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 dans le Guide de version Amazon EMR.
-
Écriture de données
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, utilisezALTER TABLE ADD PARTITION.
-
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_objectssurfalsen’a aucun effet.Par exemple, supposons que vous exécutiez la commande suivante :
ALTER TABLEtable_nameSET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')Pour les tables Iceberg et Delta Lake, la commande produit l'erreur
Unsupported table property key: read_restored_glacier_objects. Pour les tables Hudi, la commandeALTER TABLEne génère pas d’erreur, mais les objets Amazon Glacier ne sont toujours pas ignorés. L'exécution de requêtesSELECTaprès la commandeALTER TABLEcontinue 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_INTERNAL_ERROR : 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)