Considérations et restrictions - Amazon Athena

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

    Pour plus d'informations sur l'écriture des données Hudi, consultez les ressources suivantes :

  • 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_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_restored_glacier_objects. 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_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)