Nimtable: The Control Plane for Apache Icebergโ„ข A lightweight, easy-to-use platform to monitor, optimize, and govern your Iceberg-based lakehouse. Overview Nimtable helps you easily manage and explore Apache Iceberg catalogs. With a web-based platform designed for clarity and simplicity, Nimtable makes it easy to browse tables, run queries, analyze file distributions, and optimize storage layouts. Key Features ๐ŸŒŸ Multi-Catalog Support Connect to REST Catalog, AWS Glue, AWS S3 Tables, and PostgreSQL (via JDBC). ๐Ÿ—„๏ธ Object Store Integration Seamlessly work with S3 and S3-compatible stores like Cloudflare R2, Minio, and more. ๐Ÿ” Table Exploration Inspect table schemas, partitions, and snapshots with ease. โšก Interactive Querying Run SQL queries directly from the platform. ๐Ÿค– AI Copilot Get intelligent assistance for Iceberg table exploration. ๐Ÿ“„ AI Summary Automatically generate summaries of your Iceberg tables. ๐Ÿ“Š File Distribution Analysis Visualize how data files are distributed across partitions and snapshots. ๐Ÿ”ง Table Optimization Run file compaction and manage snapshot expiration. ๐Ÿ”Œ REST Catalog Compatibility Serve as a standard Iceberg REST Catalog, adapting any underlying catalog to a RESTful API. Architecture Nimtable acts as a bridge between users and catalog servers, providing both an interactive web interface and a standard REST Catalog API layer. Quick Start The fastest way to get started is using Docker: cd docker docker compose up -d Access the UI at http://localhost:3000. Default Admin Login Username: admin Password: admin Managing the Service (Optional) View logs: docker compose logs -f Stop the service: docker compose down Development See HACKING.md for details on how to hack on Nimtable. Configuration Nimtable can be configured in two ways: Web UI: Easiest for new users - just log in and click "Create Catalog." Easiest for new users - just log in and click "Create Catalog." YAML Configuration File: Recommended for advanced users or automated deployments. 1. Configuration File Location By default, Nimtable looks for config.yaml in the working directory. in the working directory. Docker: Mount your config file to /app/config.yaml inside the container. Mount your config file to inside the container. See docker/docker-compose.yml for an example of mounting configuration. 2. Minimal Configuration Example server : port : 8182 host : 0.0.0.0 admin : username : admin password : admin database : url : jdbc:postgresql://localhost:5432/nimtable_db username : nimtable_user password : password Important: Change the default admin password after your first login for security. 3. Catalog Configuration You can add catalogs in two ways: Web UI: After logging in, click "Create Catalog" and follow the prompts. Catalogs added via the UI are stored in the internal database and do not modify config.yaml . YAML File: Pre-configure catalogs by adding them to your config.yaml . See backend/config.yaml for full examples and templates. Supported Catalog Types: REST AWS Glue S3 Tables PostgreSQL (via JDBC) Each catalog type may require specific fields. Refer to the sample config for details. 4. AWS Credential Configuration If you use AWS Glue or S3, you can provide credentials in two ways: Environment Variables: # docker-compose.yml services : nimtable : environment : - AWS_REGION=us-east-1 - AWS_ACCESS_KEY_ID=your-access-key - AWS_SECRET_ACCESS_KEY=your-secret-key Mounting AWS Credentials File: # docker-compose.yml services : nimtable : volumes : - ~/.aws/credentials:/root/.aws/credentials:ro Roadmap ๐Ÿ”ง Optimized Compaction : Advanced compaction strategies and scheduling : Advanced compaction strategies and scheduling ๐Ÿ“Š Monitoring & Analytics : Comprehensive dashboard and insights : Comprehensive dashboard and insights ๐Ÿ’พ Caching : Database integration and metadata caching : Database integration and metadata caching โšก Query Engine Integration : Support for multiple query engines : Support for multiple query engines ๐Ÿ“‹ Metadata Management : Enhanced snapshot, schema and partition management : Enhanced snapshot, schema and partition management ๐Ÿ” Security & Access Control : RBAC and fine-grained permissions : RBAC and fine-grained permissions ๐Ÿ”Œ API & Integration : REST API support and authentication : REST API support and authentication ๐Ÿ”„ Data Lineage : Table and column-level lineage tracking : Table and column-level lineage tracking ๐Ÿค– Better AI Copilot Support : Enhanced capabilities for AI agent. : Enhanced capabilities for AI agent. ๐Ÿข Catalog & Warehouse Integration: Support for various storage backends For detailed roadmap items and progress tracking, see Roadmap. Contributing We welcome contributions! Please see our Contributing Guide for details. License This project is licensed under the Apache License 2.0 - see the LICENSE file for details.