Considérations et restrictions
Tenez compte des points suivants lors de la lecture de tables Apache Hudi à l’aide d’Athena :
-
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 non créée dans AWS Glue, utilisez ALTER 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: class org.apache.hadoop.io.ArrayWritable cannot be cast to class org.apache.hadoop.hive.serde2.io.TimestampWritableV2 (org.apache.hadoop.io.ArrayWritable and org.apache.hadoop.hive.serde2.io.TimestampWritableV2 are in unnamed module of loader io.trino.server.PluginClassLoader @75c67992)