Retour aux outils
Bases de donnéesIntermédiaireOpen sourceAuto-hébergeablev0.1.0

Nimtable

Plateforme web légère d'observabilité et de gestion de catalogues Apache Iceberg (lakehouses).

MAJ 2026-06-14
Nimtable
Code source★ 462

Nimtable est une plateforme web libre qui se place entre les utilisateurs et les catalogues Apache Iceberg pour offrir une console de gestion et une API REST Iceberg normalisée. Elle permet d'explorer les schémas, partitions, snapshots et manifestes d'un data lake, d'exécuter des requêtes SQL direct

Nimtable 🧊

Plateforme web légère d'observabilité et de gestion de catalogues Apache Iceberg (lakehouses).

MétadonnéeValeur
Site webhttps://github.com/nimtable/nimtable
GitHubhttps://github.com/nimtable/nimtable
LicenseApache-2.0
Langage principalTypeScript (Next.js) + Java (backend Spark)
Étoiles GitHub28
Dernière MAJ2026-01-12
Catégorie[[cat-front-end]]

Description

Nimtable est une plateforme web libre qui se place entre les utilisateurs et les catalogues Apache Iceberg pour offrir une console de gestion et une API REST Iceberg normalisée. Elle permet d'explorer les schémas, partitions, snapshots et manifestes d'un data lake, d'exécuter des requêtes SQL directement dans le navigateur, et de piloter les opérations de maintenance (compactage, optimisation) en s'appuyant sur des moteurs externes (Apache Spark, RisingWave, Flink).

L'application prend en charge plusieurs catalogues : REST Catalog, AWS Glue, S3 Tables, Hive Metastore, Apache Polaris, Unity Catalog, Lakekeeper, etc. Côté moteurs de requête en lecture, elle peut interroger Snowflake, Databricks, DuckDB, StarRocks, ClickHouse et autres. Cette polyvalence en fait une couche d'observabilité interopérable qui évite de réinventer un dashboard par stack.

L'interface, écrite en TypeScript avec Next.js et Tailwind CSS, propose un explorateur de tables, un éditeur SQL, des visualisations de la distribution des fichiers et des snapshots, ainsi qu'un assistant de connexion. Le backend, en Java, orchestre les opérations via Apache Spark. L'authentification s'appuie sur Prisma + SQLite pour la gestion des utilisateurs.

Installation

Via Docker (recommandé)

services:
  nimtable:
    image: ghcr.io/nimtable/nimtable:latest
    container_name: nimtable
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=file:./data/nimtable.db
      - SPARK_MASTER=local[*]
    volumes:
      - ./data:/app/data
      - ./catalogs:/app/catalogs

Le projet fournit également un docker compose officiel dans le sous-dossier docker/ du dépôt, qui démarre une stack complète de démonstration avec un catalogue Iceberg local.

Installation manuelle

  1. Cloner : git clone https://github.com/nimtable/nimtable.git
  2. Prérequis : Node.js 18+, Java 11+, pnpm
  3. Installer : pnpm install
  4. Configurer la base Prisma : pnpm prisma migrate deploy
  5. Lancer en dev : pnpm dev (front) + cd backend && mvn spring-boot:run

Configuration

  • Connexion aux catalogues Iceberg : via l'UI, renseigner endpoint, identifiants et warehouse
  • Stockage objet (S3, GCS, Azure) : clés d'accès ou IAM role
  • Compte admin par défaut : admin / admin — à changer impérativement à la première connexion
  • Le mot de passe est ensuite stocké en base et les variables d'environnement ne servent plus qu'au seed initial

Alternatives

Open source

  • Apache Polaris — catalogue Iceberg natif avec API REST
  • Lakekeeper — autre catalogue Iceberg open source
  • Dremio — plateforme lakehouse (semi-open, édition community)
  • Trino/StarRocks — moteurs de requêtes SQL sur Iceberg

Propriétaires

  • Snowflake — entrepôt cloud propriétaire lisant Iceberg
  • Databricks — lakehouse propriétaire basé sur Delta/Unity Catalog
  • AWS S3 Tables — service managé propriétaire

Sécurité

  • Changer immédiatement le mot de passe admin par défaut (admin/admin)
  • Activer HTTPS via reverse proxy (Caddy, Traefik, Nginx) pour chiffrer l'accès à la console
  • Restreindre l'accès réseau (VPC, VPN) : l'UI peut exposer des métadonnées sensibles
  • Les clés d'accès au stockage objet doivent être à privilèges minimaux (lecture seule si possible)
  • Sauvegarder la base SQLite des utilisateurs (./data/nimtable.db)
  • Maintenir Spark et les connecteurs à jour pour bénéficier des correctifs de sécurité

Ressources

  • Dépôt GitHub : https://github.com/nimtable/nimtable
  • Documentation : https://github.com/nimtable/nimtable/tree/main/docs
  • Démo / Wizard : docker/ du dépôt
  • Communauté : GitHub Issues & Discussions
  • Apache Iceberg : https://iceberg.apache.org