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.
Interrogez les ensembles de données Apache Hudi
Apache HudiUpsert
désigne la possibilité d'insérer des registres dans un jeu de données existant s'ils n'existent pas encore ou de les mettre à jour s'ils existent déjà.
Hudi traite les événements d'insertion et de mise à jour des données sans créer de nombreux petits fichiers qui peuvent entraîner des problèmes de performance pour les analyses. Apache Hudi suit automatiquement les modifications et fusionne les fichiers afin qu'ils conservent une taille optimale. Cela évite de devoir créer des solutions personnalisées qui contrôlent et réécrivent de nombreux petits fichiers en un nombre réduit de gros fichiers.
Les jeux de données Hudi sont adaptés pour les cas d'utilisation suivants :
-
Respecter les réglementations relatives à la confidentialité, telles que le règlement général sur la protection des données
(GDPR) et la loi californienne sur la protection de la vie privée des consommateurs (CCPA), qui font respecter le droit des personnes de supprimer des informations personnelles ou de modifier la façon dont leurs données sont utilisées. -
Utilisation des données de streaming provenant de capteurs et d'autres appareils IoT (Internet des objets) nécessitant des événements d'insertion et de mise à jour spécifiques.
-
Implémentation d'un système de capture des données de modification (CDC)
.
Les jeux de données gérés par Hudi sont stockés dans Amazon S3 en utilisant des formats de stockage ouverts. Actuellement, Athena peut lire des jeux de données Hudi compactés, mais pas écrire des données Hudi. Athena prend en charge jusqu'à la version 0.8.0 de Hudi avec la version 2 du moteur Athena, et la version 0.14.0 de Hudi avec la version 3 du moteur Athena. Cela est susceptible de changer. 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 la gestion des versions du moteur Athena, voir Gestion des versions du moteur Athena. Pour plus d’informations sur les fonctions et la gestion des versions de Hudi, voir la documentation Hudi
Un jeu de données Hudi peut être l'un des types suivants :
-
Copie sur écriture (CoW) – Les données sont stockées dans un format en colonnes (Parquet) et chaque mise à jour crée une nouvelle version des fichiers lors d'une écriture.
-
Fusion sur lecture (MoR) – Les données sont stockées en utilisant une combinaison de formats en colonnes (Parquet) et en lignes (Avro). Les mises à jour sont enregistrées dans les fichiers
delta
en lignes et sont compactées si nécessaire pour créer de nouvelles versions des fichiers en colonnes.
Avec les ensembles de données CoW, chaque fois qu'une mise à jour est apportée à un enregistrement, le fichier qui contient l'enregistrement est réécrit avec les valeurs mises à jour. Avec un jeu de données MoR, chaque fois qu'une mise à jour a lieu, Hudi écrit uniquement la ligne du registre modifié. Le type de stockage MoR est mieux adapté aux charges de travail donnant lieu à de nombreuses écritures ou modifications avec moins de lectures. Le type de stockage CoW est mieux adapté aux charges de travail lourdes en lecture sur des données qui changent moins fréquemment.
Hudi propose trois types de requêtes pour accéder aux données :
-
Requêtes d'instantané – Requêtes qui affichent le dernier instantané de la table à partir d'une action de validation ou de compactage donnée. Pour les tables MoR, les requêtes d'instantané exposent l'état le plus récent de la table en fusionnant les fichiers de base et delta de la dernière tranche de fichiers au moment de la requête.
-
Requête progressives – Les requêtes ne portent que sur les nouvelles données écrites dans la table, depuis une validation/un compactage donné. Cela fournit efficacement des flux de modifications pour activer les pipelines de données (Data Pipelines) progressives.
-
Requêtes à lecture optimisée – Pour les tables MoR, les requêtes portent sur les dernières données compactées. Pour les tables CoW, les requêtes portent sur les dernières données validées.
La table suivante montre les types de requêtes Hudi possibles pour chaque type de table.
Type de table | Types de requêtes Hudi possibles |
---|---|
Copie sur écriture | instantané, progressif |
fusion sur lecture | instantané, progressif, lecture optimisée |
Actuellement, Athena prend en charge les requêtes d'instantané et les requêtes à lecture optimisée, mais pas les requêtes progressives. 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
Changement de terminologie Hudi : les vues sont désormais des requêtes
À partir de la version 0.5.1 d'Apache Hudi, ce que l'on appelait auparavant des vues s'appelle désormais des requêtes. La table suivante résume les anciens et les nouveaux termes.
Ancien terme | Nouveau terme |
---|---|
CoW : vue à lecture optimisée MoR : vue en temps réel |
Requêtes d'instantané |
Vue progressive | Requête progressive |
Vue à lecture optimisée MoR | Requête à lecture optimisée |