Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Paimon system tables

Dernière mise à jour :Aug 09, 2026

Apache Paimon utilise des tables système pour exposer les métadonnées et les informations de consommation de données de chaque table Paimon. Interrogez ces tables avec SQL pour inspecter les snapshots, l'historique des schémas, les partitions, les fichiers et les tags, ou pour consommer plus efficacement les données de modification (change data).

Les tables système se divisent en deux catégories :

  • Tables de métadonnées — snapshots, schemas, options, partitions, files, tags

  • Tables de consommation de données — table optimisée pour la lecture, table d'audit

Tables de métadonnées

Table snapshots

La table snapshots ($snapshots) enregistre les informations relatives à chaque snapshot, notamment son ID, sa date de création et le nombre d'enregistrements.

SELECT * FROM mycatalog.mydb.`mytbl$snapshots`;
Colonne Type de données Description
snapshot_id Long ID du snapshot.
schema_id Long ID du schéma utilisé par ce snapshot. Effectuez une jointure avec la table schemas pour obtenir les définitions de champs.
commit_time Timestamp Date de création du snapshot.
total_record_count Long Nombre total d'enregistrements dans les fichiers de données vers lesquels pointe ce snapshot.
delta_record_count Long Enregistrements ajoutés par rapport au snapshot précédent.
changelog_record_count Long Enregistrements de changelog générés par rapport au snapshot précédent.
total_record_count ne reflète pas le nombre logique d'enregistrements dans la table Paimon. Les fichiers de données sont compactés en mémoire avant d'être capturés dans un snapshot.

Table schemas

La table schemas ($schemas) enregistre chaque version de schéma d'une table Paimon. Chaque fois que vous modifiez le schéma à l'aide de ALTER TABLE, de CREATE TABLE AS ou de CREATE DATABASE AS, un nouvel enregistrement est écrit dans cette table.

SELECT * FROM mycatalog.mydb.`mytbl$schemas`;
Colonne Type de données Description
schema_id Long ID de la version du schéma.
fields String Nom et type de données de chaque colonne.
partition_keys String Nom de la clé de partition.
primary_keys String Nom de la clé primaire.
options String Valeurs actuelles des options de la table.
comment String Commentaire sur la table.
update_time Timestamp Date de la dernière modification du schéma.

Table options

La table options ($options) affiche la configuration actuelle de toutes les options de table explicitement définies.

SELECT * FROM mycatalog.mydb.`mytbl$options`;
Colonne Type de données Description
key String Nom de l'option de table.
value String Valeur de l'option de table.
Les options non répertoriées dans cette table utilisent leurs valeurs par défaut.

Table partitions

La table partitions ($partitions) affiche les partitions d'une table Paimon ainsi que leur nombre d'enregistrements et la taille totale des fichiers.

SELECT * FROM mycatalog.mydb.`mytbl$partitions`;
Colonne Type de données Description
partition String Partition au format [partition value 1, partition value 2, ...].
record_count Long Nombre total d'enregistrements dans la partition.
file_size_in_bytes Long Taille totale des fichiers dans la partition, en octets. Seuls les fichiers de données du snapshot actuel sont pris en compte.
record_count ne reflète pas le nombre logique d'enregistrements. Les fichiers de données sont compactés en mémoire avant d'être capturés dans un snapshot.

Table files

La table files ($files) répertorie tous les fichiers de données vers lesquels pointe le snapshot actuel, y compris leur format, leur nombre d'enregistrements et leur taille.

Interrogez les fichiers du snapshot le plus récent :

SELECT * FROM mycatalog.mydb.`mytbl$files`;

Interrogez les fichiers d'un snapshot spécifique (par exemple, l'ID de snapshot 5) :

SELECT * FROM mycatalog.mydb.`mytbl$files` /*+ OPTIONS('scan.snapshot-id'='5') */;
Colonne Type de données Description
partition String Partition contenant le fichier, au format [partition value 1, partition value 2, ...].
bucket Integer Bucket contenant le fichier. S'applique uniquement aux tables à clé primaire utilisant le mode de bucket fixe.
file_path String Chemin d'accès du fichier.
file_format String Format du fichier.
schema_id Long ID du schéma utilisé par ce fichier. Effectuez une jointure avec la table schemas pour obtenir les définitions de champs.
level Integer Niveau log-structured merge-tree (LSM) du fichier. S'applique uniquement aux tables à clé primaire. Une valeur de 0 indique un petit fichier ; surveillez cette colonne pour suivre la progression de la compaction dans un bucket.
record_count Long Nombre d'enregistrements dans le fichier.
file_size_in_bytes Long Taille du fichier, en octets.
La table files couvre uniquement les fichiers de données du snapshot interrogé. Les fichiers de données historiques non référencés par ce snapshot ne sont pas inclus.

Table tags

La table tags ($tags) enregistre les informations relatives aux tags, y compris le snapshot auquel chaque tag est associé.

SELECT * FROM mycatalog.mydb.`mytbl$tags`;
Colonne Type de données Description
tag_name String Nom du tag.
snapshot_id Long ID du snapshot auquel le tag est associé.
schema_id Long ID du schéma utilisé par le tag. Effectuez une jointure avec la table schemas pour obtenir les définitions de champs.
commit_time Timestamp Date de création du snapshot associé.
record_count Long Nombre d'enregistrements dans les fichiers de données.

Tables de consommation de données

Table optimisée pour la lecture

Si vous utilisez une table à clé primaire et souhaitez améliorer l'efficacité des lectures par lots ou des requêtes OLAP ad hoc, vous pouvez consommer les données depuis la table optimisée pour la lecture ($ro). Contrairement à une requête directe sur la table, qui compacte les fichiers de données en mémoire avant de renvoyer les résultats, $ro évite cette étape en analysant uniquement les fichiers déjà compactés. Cela élimine la surcharge liée à la compaction et accélère les lectures, mais les résultats peuvent ne pas inclure les derniers petits fichiers non compactés.

Pour compacter les petits fichiers à intervalles réguliers et équilibrer le débit d'écriture, les performances de lecture et la latence des données, définissez le paramètre suivant :

Paramètre Type de données Valeur par défaut Description
compaction.optimization-interval Duration Aucune Intervalle de compaction des petits fichiers. Définissez cette valeur sur une durée supérieure à 30 min pour éviter d'impacter le débit d'écriture.
SELECT * FROM mycatalog.mydb.`mytbl$ro`;

Table d'audit

Utilisez la table d'audit ($audit_log) lorsque vous devez tracer le type exact d'opération derrière chaque enregistrement, par exemple pour déboguer des modifications de données inattendues ou créer des pipelines de données de modification (change-data) en aval.

Par rapport à la table d'origine, la table d'audit insère une colonne rowkind au début de chaque enregistrement pour indiquer le type d'opération :

**Valeur rowkind** Opération
+I Insertion
-U Mise à jour (avant)
+U Mise à jour (après)
-D Suppression

Tous les enregistrements renvoyés par la table d'audit ont un rowkind de type +I (insertion), car la table elle-même ne fait qu'ajouter des enregistrements.

SELECT * FROM mycatalog.mydb.`mytbl$audit_log`;

Références

Pour connaître la structure complète de chaque table système, consultez la documentation Apache Paimon.