Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Installer LibreChat
  • Votre premier projet
  • Linkr dans un EDS
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Obtenir et explorer
  • Mapping
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Construire et publier
  • Anonymiser
  • Collections de scripts SQL
  • Pipelines ETL
  • Construire et exécuter
  • Générer les scripts
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Agent IA
  • Évaluation
  • Export
  • Vue d'ensemble
  • Bases de données
  • Concepts
  • Cohortes
  • Construire
  • Résultats, SQL et rapport
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Serveur MCP
  • Skills
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Publier du contenu
  • Installation en production
  • Configuration
  • Connecteurs de bases de données
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Entrepôt de données Bases de données

Bases de données

Connecter une base à un espace de travail, lui rattacher un schéma et surcharger son mapping, explorer ses tables et lire ses statistiques.

En résumé

Une base de données est une connexion vers vos données, déclarée une fois dans l’espace de travail puis liée aux projets qui en ont besoin. On lui rattache un schéma pour que Linkr sache lire ses tables — une copie qu’elle peut surcharger —, et sa page de détail donne ses statistiques et l’exploration de ses colonnes. Linkr lit vos données : il n’y écrit jamais, et un export de base ne contient jamais de données.

Client Disponible en mode client-only — tout fonctionne dans le navigateur, sans backend. Backend Disponible avec le backend FastAPI.

Une base appartient à l’espace de travail

C’est le point qui surprend le plus au début : on ne crée pas une base « dans un projet ». On la déclare une fois dans l’entrepôt de l’espace de travail, et chaque projet qui en a besoin s’y lie.

Depuis l’espace de travail

La base se crée, se modifie, s’exporte et se versionne.

C’est le seul endroit où l’on touche à la connexion elle-même. La suppression y est définitive : elle retire les fichiers, les statistiques en cache, et délie tous les projets concernés.

Depuis un projet

La base se lie et se délie — rien de plus.

Voir Les bases d’un projet.

Ajouter une base

Depuis Entrepôt de données › Bases de données, le bouton Ajouter une base ouvre deux possibilités.

Ajouter une connexion

Pointer vers des données qui existent déjà : un fichier, un dossier de Parquet, ou un serveur de base de données.

Nouveau depuis un schéma

Créer une base vide dont les tables sont fabriquées à partir du DDL d’un schéma installé. C’est la cible naturelle d’un pipeline ETL.

Le bouton Importer à côté accepte un ZIP de base exporté, ou installe une base publiée depuis le catalogue de données.

Choisir un type de connexion

L’assistant demande d’abord le type. Aujourd’hui, un seul est ouvert : Base de données, qui couvre DuckDB, PostgreSQL, MySQL, Apache Doris et SQLite. La tuile Serveur FHIR est visible mais désactivée, marquée « bientôt disponible ». Vient ensuite la configuration, en trois onglets : Général, Connexion et Métadonnées.

Déploiement
demo.linkr.interhop.org

Ajouter une base de données

Choisir un type de connexion

Serveur FHIRbientôt disponible

Connexion à un endpoint FHIR R4

La fenêtre « Ajouter une base de données ». Cliquez sur la tuile Base de données pour passer à la configuration, en trois onglets : Général (nom, identifiant, description), Connexion (moteur, schéma, fichier ou serveur) et Métadonnées (badges, avec ceux déjà utilisés en suggestion, et version, avec ses boutons Majeur, Mineur et Patch). Dans Connexion, cliquez sur le moteur pour voir ceux qui sont proposés ; la bascule au-dessus montre ce qu'ajoute le mode serveur : PostgreSQL, MySQL et Choisir sur le serveur.

Les moteurs disponibles dépendent du mode

En mode navigateur, seuls DuckDB et SQLite sont proposés : ce sont des fichiers, et le navigateur sait les lire. PostgreSQL, MySQL et Apache Doris supposent un serveur qui ouvre la connexion réseau à votre place, ils n’apparaissent donc qu’en mode serveur. Ce que ce serveur doit avoir installé pour les joindre est décrit dans Connecteurs de bases de données.

Nommer et identifier

L’onglet Général demande trois choses, dont une seule est obligatoire.

  • Nom — obligatoire, et unique dans l’espace de travail.
  • Identifiant — un slug court, dérivé automatiquement du nom. C’est le nom sous lequel vos requêtes SQL désignent la base.
  • Description — facultative, mais c’est elle qui s’affiche sur la carte.

L'identifiant est figé après la création

Il devient le nom de catalogue DuckDB de la base. Le changer orphelinerait tous les scripts et requêtes qui l’utilisent : le champ est donc en lecture seule dès que la base existe. Autant le choisir correctement du premier coup — et en donner un distinct à chaque base.

Configurer la connexion

L’onglet Connexion s’adapte au moteur choisi.

MoteurCe qu’on fournit
DuckDBUn fichier .duckdb, ou un dossier de Parquet — le mode d’import se choisit avec deux boutons.
SQLiteUn fichier .sqlite ou .db.
PostgreSQL, MySQLHôte, port, base, schéma, identifiant, mot de passe.
Apache DorisLes mêmes champs (port 9030 par défaut), plus le Port Arrow Flight SQL, qui accélère les gros résultats.

C’est aussi ici qu’on choisit le schéma de la base — voir la section suivante. En mode serveur, une base PostgreSQL propose en plus Autoriser Linkr à écrire dans cette base : c’est ce qui permet d’y dériver une cohorte vers un nouveau schéma SQL, sans jamais toucher aux tables existantes. L’onglet Métadonnées ajoute des badges libres et un numéro de version ; l’onglet Attribution, disponible à la modification, porte l’auteur et l’organisation.

Les mots de passe ne sont jamais renvoyés

En mode serveur, un mot de passe est chiffré avant d’être stocké et n’est déchiffré que le temps d’ouvrir une connexion. L’API ne le renvoie jamais, et modifier les autres champs d’une base ne l’efface pas. Il ne sort pas non plus à l’export : voir Configuration du serveur.

Fichiers : où vivent-ils ?

C’est la différence la plus concrète entre les deux modes de déploiement.

Mode navigateur

Les données sont copiées dans le navigateur, avec un plafond.

Un avertissement apparaît vers 500 Mo et l’import est bloqué au-delà de 2 Go. Sur Chrome et Edge, l’accès direct contourne la limite : Linkr lit le fichier sur place sans rien copier. Il faut alors reconnecter la base après un rechargement de page, le navigateur ne conservant pas l’autorisation.

Mode serveur

Les fichiers montent vers le serveur par morceaux, sans plafond.

Une seconde option apparaît : Choisir sur le serveur, qui pointe vers un fichier ou un dossier déjà présent — rien n’est copié. La page de détail affiche alors le chemin absolu, copiable, pour lire la même base depuis un script R ou Python hors de Linkr.

Ne fermez pas la fenêtre pendant un import

Tant qu’un transfert est en cours, la boîte de dialogue refuse de se fermer — croix, Échap et clic à l’extérieur sont neutralisés. Un import interrompu ne reprend pas : il faut le recommencer.

Rattacher un schéma

Une base sans schéma reste interrogeable en SQL, mais Linkr ne sait pas ce que ses tables représentent. Le champ Schéma de l’onglet Connexion répond à cette question, en proposant les schémas installés dans l’espace de travail.

Le choix est facultatif — l’option Aucun schéma (accès SQL brut) est légitime pour une base qu’on ne veut qu’interroger. Mais il conditionne une bonne partie de l’entrepôt :

Sans schémaAvec un schéma
Le nombre de lignes par tablePatients, hospitalisations, séjours en unité, âges par sexe, chronologie des admissions
L’exploration SQL libreLes concepts, les cohortes, les données patient, les contrôles qualité

La base copie la définition du schéma plutôt que d’y renvoyer, tout en gardant trace de son origine et de sa version. Une base importée sur une instance où le schéma n’est pas installé reste donc lisible : Linkr affiche simplement « Schéma (non installé) ». Voir Un schéma, plusieurs bases.

Le mapping d’une base

L’onglet Mapping d’une base montre sa copie du mapping, avec en tête le schéma et la version dont elle vient. C’est le même éditeur que sur la page du schéma — mêmes sous-onglets, mêmes blocs, même fenêtre SQL, voir Mapper un schéma — avec une différence : ce que vous y changez ne vaut que pour cette base.

Une relation modifiée ici devient une surcharge : elle remplace, pour cette base seule, la relation du schéma — ou en ajoute une. C’est la réponse au cas fréquent d’un établissement dont le modèle suit OMOP, sauf pour une table rangée à sa façon. La fenêtre SQL y contrôle et prévisualise directement sur la base.

demo.linkr.interhop.org
Issu du schéma OMOP CDM 5.4 (version 1.2.0) · 1 relation surchargée pour cette base
Mesureslinkr_event_mesuresSurchargée

Définie en SQL. Colonnes remplies :

patient_idconcept_idstart_datetimevisit_idvalue_numberunit
Dictionnaireomop
Diagnosticslinkr_event_diagnostics
Tablecondition_occurrence
Colonnes
patient_id*
person_id
concept_id*
condition_concept_id
start_datetime*
condition_start_datetime
visit_id
visit_occurrence_id
end_datetime
condition_end_datetime
Dictionnaireomop
L'onglet Mapping d'une base, sous-onglet Événements. La relation Mesures est surchargée : elle est définie en SQL pour cette base, et porte le badge Surchargée. Cliquez sur Revenir au preset pour retrouver la relation du schéma, ou sur Mettre à jour depuis le preset.
  • Surchargée — le badge d’une relation propre à la base. Un triangle d’alerte s’y ajoute quand le schéma a modifié cette relation depuis : la surcharge mérite alors d’être vérifiée.
  • Revenir au preset — abandonne la surcharge ; la base relit la relation du schéma.
  • Remonter dans le preset — reporte la surcharge dans le schéma lui-même, qui en profite pour toutes ses bases ; celle-ci suit de nouveau le schéma. Il faut pouvoir modifier le schéma.
  • Mettre à jour depuis le preset — n’apparaît que si le schéma a changé depuis la copie. Il remplace la copie par la version actuelle du schéma et conserve les surcharges ; la fenêtre de confirmation dit lesquelles le schéma a modifiées entre-temps.

Une surcharge remplace ou ajoute une relation : elle ne peut pas en retirer une du schéma.

Changer de schéma, c'est repartir de zéro

Choisir un autre schéma dans Modifier refait la copie et abandonne toutes les surcharges. Pour suivre les évolutions du même schéma, c’est Mettre à jour depuis le preset qu’il faut utiliser.

La page de détail

Cliquer une carte ouvre la base, sur sept onglets. Ouverte depuis un projet, la même page est en lecture seule : voir Les bases d’un projet.

demo.linkr.interhop.org

Les statistiques n'ont pas encore été calculées

Les compteurs ci-dessous affichent « — » tant qu'elles ne sont pas chargées. Sur de grosses bases cela peut être lent : elles ne sont donc calculées qu'à la demande.

Readme

MIMIC-IV démo (OMOP)

Extrait de démonstration de MIMIC-IV converti en OMOP CDM 5.4 : 100 patients, leurs séjours en réanimation, leurs mesures et leurs prescriptions.

  • Source : MIMIC-IV Clinical Database Demo 2.2 (PhysioNet)
  • Dates décalées par patient, comme dans MIMIC
  • Vocabulaires : SNOMED, LOINC, RxNorm, ICD-10

À propos

OMOPMIMIC-IVDemo
v1.2.0
AuteurBoris DelangeCréé le12/03/2026Modifié le21/09/2026LicenceODbL 1.0
OMOP CDM 5.4
Schéma

Connexion

StatutConnectée
TypeOMOP CDM 5.4
Moteur de base de donnéesDuckdb
Identifiantmimic_iv_demo
Emplacement du fichier
/srv/linkr/data/databases/mimic_iv_demo.duckdb

412,3 Mo

La page d'une base dans l'entrepôt de l'espace de travail. Cliquez sur les onglets. Charger les statistiques, dans l'Aperçu ou l'onglet Statistiques, remplit les compteurs puis les sections Patients (total, répartition par sexe), Hospitalisations et séjours en unité (totaux, chiffres clés, âges par sexe, chronologie des admissions) et Aperçu des tables. Le menu Plus regroupe Readme, Licence, Exporter et Versioning.
  • Aperçu — les compteurs, le readme, et des cartes latérales : À propos (auteur, organisation, licence, version), Dérivée d’une cohorte quand la base a été découpée dans une autre, le schéma rattaché, et la connexion — statut, moteur, identifiant, chemin du fichier.
  • Statistiques — répartition par sexe, âges et durées de séjour, distribution des âges par sexe, chronologie des admissions, et le nombre de lignes de chaque table.
  • Schéma — un explorateur à trois volets : les tables avec leur nombre de lignes, les colonnes de la table choisie avec leur type et leur complétude, et les statistiques de la colonne choisie — valeurs distinctes, min/max, distribution, valeurs les plus fréquentes. Copier SELECT copie une requête listant toutes les colonnes. La base doit être connectée.
  • Mapping — la copie du mapping du schéma, et ses surcharges : voir Le mapping d’une base.
  • SQL — une console, voir Écrire du SQL sur une base.
  • Cohortes — les cohortes propres à la base, construites sur elle et non dans un projet. C’est depuis l’une d’elles qu’on dérive une sous-base.

Le menu Plus regroupe Readme, Licence, Versioning et l’action Exporter. L’onglet actif est inscrit dans l’URL : un lien vers une base pointe donc vers le bon onglet.

Les statistiques ne se calculent qu'à la demande

Se connecter à une base ne déclenche aucun comptage — sur un entrepôt volumineux ce serait long et inutile. Les compteurs affichent « — » jusqu’à ce que vous cliquiez sur Charger les statistiques. Le résultat est ensuite mis en cache, avec la date du dernier calcul et un bouton Actualiser.

Écrire du SQL sur une base

L’onglet SQL d’une base est une console : on y écrit une requête, on l’exécute avec Exécuter, Ctrl/⌘ + Entrée (sélection ou ligne courante) ou Ctrl/⌘ + Maj + Entrée (tout l’éditeur), et le résultat s’affiche dessous avec le nombre de lignes, la durée, et la date et l’heure d’exécution. Rien n’y est enregistré : pour conserver des requêtes, utilisez une collection de scripts SQL.

L’identifiant de la base sert à la désigner dans vos requêtes, mais on en a moins besoin qu’on ne le croit : une requête qui ne touche qu’une seule base s’écrit avec des noms de table nus.

SELECT person_id, year_of_birth
FROM person
WHERE year_of_birth > 1980

Le préfixe ne devient nécessaire que pour une requête qui croise plusieurs bases, et seulement en mode navigateur — où la base est attachée sous le nom ds_<identifiant>. L’éditeur des collections de scripts SQL a alors, dans sa barre d’outils, un bouton Copier la référence du schéma pour SQL.

SELECT a.person_id
FROM "ds_mimic_iv_raw".person a
JOIN "ds_registre_local".inclusion b USING (person_id)

Dans un pipeline ETL, n'écrivez jamais ce préfixe

Les scripts ETL désignent leurs bases par leur rôle — source., target., vocab. — que Linkr remplace par le vrai schéma à l’exécution. Un script qui code en dur ds_quelque_chose cesse de fonctionner dès que le pipeline est exporté vers un autre établissement, où cet identifiant n’existe pas. Voir Pipelines ETL.

Ce que Linkr ne fait pas à vos données

Un export de base ne contient jamais de données

L’export d’une base emporte sa documentation, son schéma et ses métadonnées — jamais ses données. C’est délibéré : une base exportée ne peut pas être le chemin par lequel des données patient quittent un établissement.

La conséquence pratique : réimporter une base exportée donne une coquille vide, signalée par un bandeau. Il faut ensuite la repointer vers les fichiers, via Modifier.

Dans le même esprit, les bases sont attachées en lecture seule. Ni une requête d’exploration, ni un widget, ni un script d’analyse ne peuvent écrire dans une base source. Seule la cible d’un pipeline ETL est ouverte en écriture, et uniquement pendant son exécution.

Le sens de circulation, lui, reste ouvert : une base publique — MIMIC-IV demo, des données synthétiques — s’installe depuis le catalogue avec ses données. Rien ne sort, tout peut entrer.

Voir une base réelle

La démo contient deux bases d’exemple issues de MIMIC-IV, l’une brute et l’une convertie en OMOP. Ouvrez-en une pour parcourir ses statistiques et son explorateur de tables.

Voir les bases dans la démo

Entretenir une base

Quelques actions ne servent qu’occasionnellement, mais valent d’être connues.

  • Retester la connexion — une base en erreur le reste jusqu’à ce qu’on la reteste. En mode serveur, les bases en erreur sont retentées automatiquement au chargement.
  • Recréer depuis le schéma — remplace le contenu par des tables vides. Destructif et irréversible.
  • Compacter — en mode serveur, sur une base gérée par Linkr : réécrit le fichier pour rendre l’espace laissé par des tables supprimées. Les données ne changent pas, mais l’opération demande de l’espace disque libre et il ne faut pas écrire pendant.

Pour aller plus loin

  • Les bases d’un projet — lier une base à un projet, et ce qu’on en voit depuis le projet.
  • Schémas — définir comment Linkr lit les tables d’une base.
  • Pipelines ETL — transformer une base source en base cible.
  • Qualité des données — contrôler ce que contient une base.
  • Collections de scripts SQL — ranger et partager les requêtes.
PrécédentMappingSuivantSous-bases dérivées

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · AGPLv3 (logiciel)