Files
wiki/Catalogue-Self-Hosted/apps/app-nimtable.md
T
2026-06-09 18:40:21 +02:00

4.5 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Nimtable 2026-06-07 2026-06-07 app
catalogue
front-end
database
iceberg
observability
datalake
high false
https://selfh.st/apps/
https://github.com/nimtable/nimtable

Nimtable 🧊

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

Métadonnée Valeur
Site web https://github.com/nimtable/nimtable
GitHub https://github.com/nimtable/nimtable
License Apache-2.0
Langage principal TypeScript (Next.js) + Java (backend Spark)
Étoiles GitHub 28
Dernière MAJ 2026-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

Pages Liées