Retour aux articles • IA • • 3 min de lecture

ParusDB : Stack Lakehouse et agents IA

ParusDB regroupe l'ingestion ELT, un data lakehouse complet et des agents conversationnels au sein d'une plateforme unifiée sous licence Apache 2.0. Le…

ParusDB : Stack Lakehouse et agents IA

Introduction

ParusDB regroupe l’ingestion ELT, un data lakehouse complet et des agents conversationnels au sein d’une plateforme unifiée sous licence Apache 2.0. Le code source et les composants de déploiement sont accessibles sur le dépôt officiel : https://github.com/ParusDB/parusdb.

L’outil centralise l’accès aux données en permettant leur interrogation en langage naturel tout en conservant l’infrastructure sous contrôle strict, sans dépendance externe obligatoire.

Caractéristiques

CritèreDétail
LicenceApache 2.0 (100 % open source)
Moteur SQLTrino (requêtage fédéré)
Catalogue & StockageApache Polaris (Iceberg) et RustFS (compatible S3)
Ingestion (ELT)dlt (data load tool), plus de 40 connecteurs natifs
Backend & AuthSupabase self-hosted (PostgreSQL, Realtime, RBAC)
Agents IAOllama en local ou modèles distants via API, intégration MCP (mcp-trino)
InterfaceNext.js (App Router), TypeScript, Tailwind CSS

Architecture

Le flux repose sur l’ingestion de sources hétérogènes vers le stockage objet Iceberg, interrogeable en SQL direct ou via des agents IA branchés sur le Model Context Protocol.

Architecture & Flux — ParusDB : Stack Lakehouse et agents IA

Installation

Le déploiement local s’appuie sur Docker Compose, Node.js LTS et Git. Un script d’orchestration global est fourni à la racine, mais l’empilement peut être initialisé manuellement par sous-système.

Initialisation du socle Supabase avec le stockage S3 RustFS :

# Cloner le dépôt et accéder au module backend
git clone https://github.com/ParusDB/parusdb.git
cd parusdb/apps/supabase

# Générer les secrets et variables d'environnement
cp .env.example .env
sh utils/generate-keys.sh --update-env
sh utils/add-new-auth-keys.sh --update-env

# Activer le backend S3 RustFS avec persistance au reboot
sh run.sh config add rustfs
sh run.sh config add rustfs-restart

# Démarrer les conteneurs d'infrastructure
sh run.sh start
Animation exécution CLI dans le terminal

–> Le script racine sh setup.sh automatise l’ordre de démarrage des dépendances, la migration SQL et la configuration du runtime dlt.

Configuration

La liaison entre le moteur de requêtage Trino et les agents s’effectue via le connecteur MCP. Pour exploiter un modèle local avec Ollama, la configuration de l’agent s’ajuste dans l’interface ou dans les tables système :

# Exemple de configuration d'un agent local (config/agent-finance.yml)
agent:
  name: "analyste-ventes"
  provider: "ollama"
  model: "mistral:latest"
  endpoint: "http://localhost:11434"
  context_protocol:
    server: "mcp-trino"
    catalog: "iceberg"
    schema: "analytics"
  rbac_role: "finance_reader"

–> Attribuez des comptes applicatifs restreints à chaque agent ; n’utilisez jamais le rôle administrateur pour l’exécution des requêtes générées par le LLM.

CommandeDescription
sh setup.sh
Déploie l'ensemble de la stack et applique les migrations
sh apps/supabase/run.sh start
Démarre les conteneurs du socle Supabase
sh apps/supabase/run.sh stop
Arrête proprement le backend transactionnel
docker compose ps
Vérifie l'état des services Trino, Polaris et RustFS
ollama run mistral
Valide l'exécution du LLM local avant raccordement MCP

Conclusion

ParusDB assemble les briques standards de l’écosystème open source (Trino, Iceberg, Supabase) pour fournir une plateforme analytique souveraine immédiatement exploitable. La gouvernance fine couplée aux agents locaux évite toute fuite de données vers des services tiers.

Plus d’informations sur le dépôt : https://github.com/ravindrajob/InfraAtHome