DbSchema lets you design, manage, and document Apache Pinot databases. Create ER diagrams, define tables and columns, and generate SQL scripts - with or without a live database connection.
Use Git to share the design, compare it with the Apache Pinot database, and deploy changes. DbSchema also includes a data editor, query builder, and HTML5 documentation - everything you need in one tool.
Download DbSchema Download Apache Pinot JDBC Driver
Apache Pinot was originally developed at LinkedIn and Uber to power user-facing analytics at sub-second latencies. The system organizes data into tables that are each governed by a schema definition, physically stored in immutable segments distributed across server nodes, and logically isolated by tenants for multi-tenancy. Pinot supports both offline and real-time table types, where real-time tables consume directly from Kafka streams. DbSchema connects to Pinot via the Pinot JDBC driver and introspects these table schemas, producing visual schema diagrams that show column names, data types, and index hints. You can document the StarTree, inverted, and sorted index configurations alongside the table layout, giving your team a complete picture of the physical data model.
Pinot's SQL dialect follows the ANSI SQL standard closely but adds extensions for time-boundary
predicates and multi-stage query execution across segments. DbSchema's SQL editor surfaces Pinot table
and column names through auto-completion, letting analysts compose GROUP BY aggregations,
HAVING filters, and DATETIMECONVERT function calls without referencing the
schema separately. Query results appear in a paginated grid that handles the large result sets common in
OLAP workloads. Saved queries can be organized by table or use case, making it easy to build a library
of verified analytical queries that the broader team can reuse.
The DbSchema data explorer lets you browse Pinot table contents interactively without writing SQL. You can filter rows by any column value, restrict to a specific time range using the primary time column, and page through results to spot anomalies in real-time ingested data. For Pinot's real-time tables this is especially useful: you can confirm that a newly started Kafka consumer is writing records with the correct schema before exposing the table to downstream BI tools. The explorer also shows column data types as inferred by the JDBC driver, which can be cross-referenced against the Pinot schema JSON to detect mismatches.
To connect DbSchema to Apache Pinot, download the Pinot JDBC driver JAR
(org.apache.pinot.client.PinotDriver) from the Apache Pinot releases and register it in
DbSchema's driver manager. The JDBC URL format is jdbc:pinot://localhost:9000, where
9000 is Pinot's default broker port. For clustered deployments replace localhost
with the hostname or load-balancer address of your Pinot Broker. Authentication options depend on your
Pinot deployment; TLS-enabled clusters require an https scheme and certificate
configuration. Once connected, DbSchema automatically lists all Pinot tables available to the
authenticated user.