Demandez à un assistant IA relié à votre entrepôt de données combien de clients actifs vous avez eus le mois dernier. Il trouvera probablement une table qui ressemble à une table de clients, une colonne qui ressemble à une date, et il écrira une requête. Le résultat sera plausible. Mais sera-t-il juste ?

Tout dépend de ce que « actif » veut dire chez vous. Un achat dans les trente derniers jours ? Une connexion ? Un abonnement en cours ? Cette définition existe rarement dans le schéma de la base. Elle vit dans un tableur, dans une documentation, ou dans la tête de quelqu’un.

Le problème n’est pas le SQL

Les assistants récents écrivent souvent du SQL correct. Le risque est ailleurs : ils doivent deviner le sens métier à partir de noms de colonnes comme amt_net_eur ou flg_actif_3. Deux questions posées à deux moments différents peuvent alors produire deux calculs différents du même indicateur, chacun parfaitement présentable.

« Un chiffre plausible n’est pas un chiffre juste. La différence, c’est une définition écrite quelque part. »

Ce qu’est une couche sémantique

Une couche sémantique — ou semantic layer — est l’endroit où l’on décrit une fois pour toutes ce que signifient les données : quelles sont les métriques, comment elles se calculent, selon quelles dimensions on peut les découper, et quelles jointures sont autorisées.

Des outils comme MetricFlow, dans l’écosystème dbt, Cube ou LookML jouent ce rôle, chacun à sa manière. L’idée commune : la définition du chiffre d’affaires net n’est plus recopiée dans chaque requête ou chaque tableau de bord ; elle est déclarée à un seul endroit, puis réutilisée. Voici, de manière simplifiée, à quoi ressemble la déclaration d’une métrique :

metrics.yml — exemple simplifié
metrics:
  - name: chiffre_affaires_net
    label: Chiffre d'affaires net
    description: >
      Montant payé par les clients, hors taxes et après
      remises. Les commandes annulées sont exclues.
    type: simple
    type_params:
      measure: montant_net_eur

Donner à l’assistant des définitions, pas des tables

Relier un assistant à une couche sémantique change la nature de sa tâche. Au lieu d’explorer des tables et d’improviser des jointures, il choisit une métrique existante, une période et un niveau de détail. Le calcul, lui, reste celui que l’équipe a défini et testé.

C’est là qu’intervient le Model Context Protocol, ou MCP : un protocole ouvert qui permet de connecter des assistants à des outils et à des sources de données de façon standardisée. Plusieurs assistants, dont Claude, savent l’utiliser. Une couche sémantique exposée par un serveur MCP devient ainsi un outil que l’assistant peut interroger, plutôt qu’un schéma qu’il doit deviner.

Ce que cela ne règle pas

Une couche sémantique ne remplace ni la qualité des données ni le jugement. Si les données sources sont fausses, la métrique bien définie sera fausse de manière cohérente. Et certaines questions resteront ambiguës : « les ventes du mois », est-ce le mois civil ou les trente derniers jours ? Un bon assistant doit savoir demander une précision.

Au fond, la question n’est pas de savoir si l’IA peut lire nos données. C’est de savoir si nous avons pris le temps d’écrire ce qu’elles veulent dire.

Sujets : Semantic Layer · MCP · Assistants IA · Gouvernance

« Une réflexion à partager ? »

Votre message est envoyé directement à l’auteur. Il n’est jamais publié.

Article concerné, ajouté automatiquement : Semantic Layer : comment mieux connecter les données aux assistants IA ?

L’envoi des messages sera activé prochainement : pour l’instant, rien n’est transmis.

Votre adresse sert uniquement à vous répondre. Confidentialité