Design and Manage Apache Pinot Databases Visually with DbSchema

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.

DbSchema Database Designer

Download DbSchema Download Apache Pinot JDBC Driver

Segment, Schema, and Tenant Architecture

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.

Sub-Second Query Authoring in the SQL Editor

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.

Writing low-latency Pinot SQL in the DbSchema SQL editor

Exploring Pinot Table Data with the Data Explorer

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.

Exploring Apache Pinot table rows with DbSchema data explorer

Connection Setup and JDBC URL

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.

Apache Pinot schema documentation generated by DbSchema

Why Teams Use DbSchema with Apache Pinot

  • Visualize Pinot table schemas alongside their index configurations to make optimization decisions without reading raw schema JSON files.
  • Write and validate sub-second aggregation queries in the SQL editor before embedding them in user-facing dashboard queries.
  • Confirm real-time ingestion correctness by sampling live records from Pinot real-time tables in the data explorer.
  • Generate HTML or PDF schema documentation for Pinot tables to onboard new data engineers quickly.
  • Compare offline and real-time table schemas side by side in the DbSchema layout canvas to ensure consistency.
  • Use DbSchema's offline model to prototype new Pinot table schemas before deploying schema changes to the cluster.