Floecat

Metadata Control Plane

Planner-ready metadata for Iceberg and Delta

Built for data platform engineers and query engine teams that need consistent metadata semantics across catalogs, clouds, and engines.

Developed by FloeDB.

Floecat logo

Sampling-Based NDV Estimation in Iceberg Tables

How do you estimate NDV in under one second without owning the write path?

Read the post
Iceberg REST compatible Tested with DuckDB + Trino Apache 2.0 open source

Why teams use Floecat

Federation

One API across catalogs

Read metadata from Iceberg and Delta catalogs through one stable API surface.

Canonical Model

Consistent metadata semantics

Normalize heterogeneous metadata into a consistent representation for planners.

Planner Statistics

Richer cost-based optimization

Serve NDV, histograms, MCVs, and more for cost-based optimization.

Deterministic Planning

Stable snapshot pinning

Pin snapshots across catalogs for repeatable planning and stable query behavior.

Install by environment

cd docker
FLOECAT_ENV_FILE=./env.localstack COMPOSE_PROFILES=localstack,trino \
  docker compose -f docker-compose.yml up -d --wait

Built for your stack

Formats

Iceberg Delta Lake Parquet Arrow

Engines and APIs

DuckDB Trino REST API CLI

Storage and operations

S3 / LocalStack Docker Telemetry Security

Try it now

Start local stack

Run Floecat with LocalStack and Trino in minutes via Docker Compose.

Open local setup

Query with DuckDB

Attach Iceberg through Floecat and run queries from a local DuckDB session.

Open DuckDB init script

Explore APIs

Inspect service endpoints and gateway behavior for integration work.

Read API docs

The problem this solves

Open table formats solved storage interoperability, but not planner-ready statistics, cross-catalog semantics, or cross-engine consistency.

Floecat is built for metadata consumption, not mutation: it gives engines a stable metadata layer instead of making each engine rebuild catalog logic.

Quickstart

Clone, start the service, and open the CLI:

git clone https://github.com/eng-floe/floecat.git
cd floecat
make run
make cli-run
Run Local Stack Read Architecture Iceberg REST Guide

Then point Floecat at an Iceberg or Delta catalog and query through its APIs or from engines like DuckDB and Trino.

Contact and contribute

Report an issue

Found a bug or docs gap? Open a ticket with reproduction details.

Start a discussion

Ask implementation questions or propose roadmap ideas with the team.

Contribute code/docs

Read contribution workflow, conventions, and pull request expectations.

Recent Posts

Sampling-Based NDV Estimation in Iceberg Tables

NDV (number of distinct values) is one of the most important statistics in cost-based query optimization. It affects selectivity estimates, join ordering, an...