Aller au contenu
EN English versionDemander une démo

Le catalogue de données

Le catalogue de la Data Platform dit quelles données existent, à qui elles appartiennent et qui peut les lire. Il s’appuie sur les tables Apache Iceberg de votre stockage objet : une table créée par un job, par Trino ou par un autre outil apparaît au catalogue, et le catalogue ne copie aucune donnée. Les buckets, le SQL et Iceberg sont décrits dans Données et SQL.

Chaque job reçoit un catalogue Iceberg nommé graal, déjà configuré, dont l’espace de noms est celui de votre organisation. Une table s’y désigne par son nom, sans adresse, sans jeton ni clé de stockage dans le code :

Moteur Lire une table
Spark, local ou distribué spark.table("ventes")
Python, jobs notebook, dbt graal.read_table("ventes")
Dask graal.read_table_dask("ventes") (lecture par les workers)
Flink catalogue graal déclaré par un fichier SQL fourni au job
Ray graal.load_table("ventes").scan().to_ray()

Le jeton du run, qui n’existe que le temps de l’exécution, ouvre le catalogue ; aucune clé de stockage n’est placée dans les pods du run. Trino lit les mêmes tables : ce que Spark écrit, Trino le relit, et réciproquement.

Le catalogue se synchronise avec les tables Iceberg réelles :

  • à la fin de chaque run, à la demande (bouton « Resynchroniser » de la console ou synchronize_catalog côté agent) et en tâche périodique ;
  • une table créée hors d’un job, par exemple par une requête Trino, rejoint le catalogue ;
  • une table supprimée du moteur est marquée supprimée et garde sa description, son propriétaire et ses étiquettes si elle revient ;
  • les colonnes, leurs types (y compris imbriqués) et le nom utilisable dans Trino sont tenus à jour ; la description, le propriétaire, les étiquettes, le glossaire et la certification saisis par vos équipes ne sont jamais écrasés.

La fiche d’une table se lit en huit onglets :

Onglet Ce qu’il montre
Vue d’ensemble description, propriétaire, référents, étiquettes, certification, qualité
Schéma colonnes, types, classification et étiquettes de chaque colonne
Aperçu quelques lignes réelles, lues par Trino sous vos droits
Statistiques lignes, fichiers, taille, partitionnement ; par colonne, valeurs nulles, minimum, maximum et valeurs distinctes
Historique les versions (snapshots) de la table : date, opération, volume modifié
Lignage d’où vient la table, jusqu’à la colonne
Usages qui interroge la table
Définition emplacement, format, propriétés Iceberg

Depuis la fiche, la console propose d’ouvrir la table dans l’éditeur SQL ou dans un notebook, et d’en copier l’extrait de code pour Trino, Spark, Python, Dask, DuckDB ou JDBC.

  • Propriétaire et référents : une personne ou un groupe de votre annuaire.
  • Étiquettes sur les tables et les colonnes.
  • Certification : une table est certifiée ou déclarée obsolète ; l’auteur et la date sont enregistrés par la plateforme.
  • Classification des colonnes : publique, interne, confidentielle, sensible ou données personnelles.
  • Glossaire : des termes métier, qu’on rattache à des tables et à des colonnes, et dont on retrouve les actifs liés.
  • Recherche à facettes : par couche, format, étiquette, propriétaire, certification, qualité, classification ou nom de colonne. Les résultats respectent vos droits : une table d’une couche que vous ne pouvez pas lire n’apparaît ni dans la liste ni dans les compteurs.

Les droits de lecture et de modification se posent par couche, avec les rôles de la plateforme (voir rôles et permissions). Chaque modification est tracée au journal d’audit.

Les agents disposent de dix outils de plus pour le catalogue, en plus de list_catalog, get_table, search_catalog et set_table_description : l’aperçu, les statistiques, l’historique des versions, le glossaire, et les écritures de gouvernance (propriétaire, étiquettes, classification, certification, synchronisation). Le chemin d’un agent va de la recherche à la requête : search_catalog, get_table, preview_table, puis query_sql avec le nom qualifié de la table. Voir Agents IA (MCP).

Le catalogue Iceberg est un catalogue REST standard, Apache Polaris, adossé à la base PostgreSQL de la plateforme. Il fournit à chaque requête des identifiants de stockage limités à la table visée et applique les droits du catalogue jusque dans Trino : plus aucune clé de stockage partagée entre organisations, et un refus décidé par le moteur lui-même. Les droits que vous posez dans la console sont projetés dans le catalogue. Un moteur compatible avec le protocole REST d’Iceberg s’y branche avec les mêmes noms de tables.