Cette rubrique décrit la latence et la cohérence des données dans Apache Paimon (Paimon).
Fichiers snapshot
Les fichiers snapshot permettent d'accéder aux données d'une table Paimon. Un fichier snapshot capture l'état d'une table Paimon à un instant précis. Utilisez les fichiers snapshot générés à différents moments pour modifier l'offset du consommateur en mode streaming et implémenter la fonctionnalité de voyage dans le temps (time travel) en mode batch.
Pour savoir comment interroger les fichiers snapshot d'une table Paimon ainsi que leur heure de création, consultez la rubrique Table Snapshots.
Les fichiers snapshot servent à consommer les données des tables Paimon. Par défaut, un fichier snapshot est conservé pendant une heure avant suppression. Si la période de rétention est trop courte ou si la vitesse de consommation est faible, un fichier snapshot peut être supprimé alors qu'il est encore utilisé, ce qui génère une erreur. Pour résoudre ce problème, modifiez la période de rétention des fichiers snapshot, spécifiez un ID de consommateur ou optimisez les performances des tables Paimon.
Latence
Lors de l'écriture des données dans une table Paimon, le writer les met en cache en mémoire et dans des fichiers temporaires. Une fois que le déploiement Flink déclenche un checkpoint, le writer valide les données pour générer un fichier snapshot. En mode streaming, un consommateur en aval écoute la liste des fichiers snapshot et lit les données uniquement à partir du fichier snapshot le plus récent détecté.
La latence des données correspond au délai entre l'écriture et la consommation des données. Elle varie selon la fréquence de génération des fichiers snapshot. En l'absence de contre-pression (backpressure) dans le déploiement Flink, un fichier snapshot est généré à chaque checkpoint. La latence des données d'une table Paimon est donc égale à l'intervalle de checkpoint. Notez toutefois qu'un intervalle de checkpoint excessivement court peut affecter les performances du déploiement Flink. Nous vous recommandons de définir l'intervalle de checkpoint entre 1 et 10 minutes. Augmentez cet intervalle dans cette plage afin d'améliorer l'efficacité en lecture et en écriture selon vos besoins métier.
Cohérence
Paimon utilise un protocole de validation en deux phases pour valider les données de manière atomique. Si vous utilisez deux déploiements Flink pour écrire simultanément des données dans une table Paimon, tenez compte des points suivants :
Évitez de modifier le même bucket. Cela permet des validations concurrentes dans les deux déploiements et garantit la cohérence séquentielle.
Si vous modifiez le même bucket, Paimon déclenche un basculement (failover) pour résoudre les conflits de données et garantit uniquement l'isolation des snapshots. Aucune modification de données n'est perdue, mais l'état final de la table Paimon peut contenir des validations issues des deux déploiements.