# Pinot Data Explorer

Once you have set up a cluster, you can start exploring the data and the APIs using the Pinot Data Explorer.

Navigate to <http://localhost:9000> in your browser to open the Data Explorer UI.

## Cluster Manager

The first screen that you'll see when you open the Pinot Data Explorer is the Cluster Manager. The Cluster Manager provides a UI to operate and manage your cluster, giving you an overview of tenants, instances, tables, and their current status.

![Pinot Cluster Manager](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2Ft8mURRDruAI6QxdLMz2J%2FScreenshot%20from%202021-11-25%2010-47-54.png?alt=media\&token=d5653e21-a3bc-404a-b787-1a4f1fd35340)

If you want to view the contents of a server, click on its instance name. You'll then see the following:

![Pinot Server](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2Fv18TCnEOqniydObTtGCT%2Fimage.png?alt=media\&token=c19c4c30-9401-44cf-a111-c779e25216f7)

### Table management

To view a table, click on its name from the tables list. From the table detail screen, you can edit or delete the table, edit or adjust its schema, and perform several other operations.

![baseballStats Table](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2F1JRtIX10EfMiF2886ova%2Fimage.png?alt=media\&token=6d616aa0-df36-434f-a38c-2517c55d5f80)

For example, if we want to add *yearID* to the list of inverted indexes, click on **Edit Table,** add the extra column, and click **Save:**

![Edit Table](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2Fgit-blob-40cb8b8cfaacb01871751e87d9ebb866aea1c243%2Fedit-baseball-stats-table-config.png?alt=media)

#### Pause and resume consumption

For real-time tables, the table detail screen includes a **Pause/Resume Consumption** button ([#15657](https://github.com/apache/pinot/pull/15657)). This lets you pause ingestion on a real-time table directly from the UI without issuing REST API calls, and resume it when ready. This is useful during maintenance windows or when you need to temporarily halt data ingestion.

#### Consuming segments info

A **Consuming Segments Info** button ([#15623](https://github.com/apache/pinot/pull/15623)) is available on real-time tables, providing a quick view of all currently consuming segments. This shows details such as the partition, current offset, and consumption state, making it easier to monitor real-time ingestion health.

#### Reset segment

The UI now supports a **Reset Segment** operation ([#16078](https://github.com/apache/pinot/pull/16078)), allowing you to reset a segment directly from the table detail screen. This is helpful when a segment is stuck in an error state and needs to be re-processed.

#### Segment state filter

A segment state filter ([#16085](https://github.com/apache/pinot/pull/16085)) has been added to the table detail screen. You can filter segments by their state (e.g., ONLINE, CONSUMING, ERROR) to quickly locate segments that need attention, which is especially valuable for tables with a large number of segments.

#### Table rebalance

The table detail screen also provides access to table rebalance operations. Several UI fixes and improvements ([#15511](https://github.com/apache/pinot/pull/15511)) have been made to improve the reliability and usability of the rebalance workflow, including better parameter validation and progress display.

### Logical table management

Starting with Pinot 1.4 and later, the Data Explorer includes a logical table management UI ([#17878](https://github.com/apache/pinot/pull/17878)). Logical tables are collections of physical tables (REALTIME and OFFLINE) that can be queried as a single unified table.

The logical tables listing is accessible from the main **Tables** page, alongside physical tables and schemas. From there you can:

* **Browse** all logical tables in the cluster with search support.
* **View details** of a logical table, including its configuration, the list of physical tables it maps to, and metadata.
* **Edit** a logical table's configuration.
* **Delete** a logical table with a confirmation dialog.

For more information about logical tables, see the [Logical Table Support](https://docs.pinot.apache.org/reference/release-notes/releases/1.4.0#logical-table-support-design) section in the 1.4.0 release notes.

## Query Console

Navigate to [Query Console](http://localhost:9000/#/query) to see the querying interface. The Query Console lets you run SQL queries against your Pinot cluster and view the results interactively.

We can see our `baseballStats` table listed on the left (you will see `meetupRSVP` or `airlineStats` if you used the streaming or the hybrid [quick start](https://docs.pinot.apache.org/start-here/quick-start)). Click on the table name to display all the names along with the data types of the columns of the table.

You can also execute a sample query `select * from baseballStats limit 10` by typing it in the text box and clicking the **Run Query** button.

`Cmd + Enter` can also be used to run the query when focused on the console.

![](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LtH6nl58DdnZnelPdTc%2F-MEkv4Reui1q3pCZv3eG%2F-MEkx7TNGEzYa6TCW6TR%2FPinot_query_console_cropped.png?alt=media\&token=ac2ccb89-1c63-4c50-b7fc-615e42a8590a)

Here are some sample queries you can try:

```sql
select playerName, max(hits)
from baseballStats
group by playerName
order by max(hits) desc
```

```sql
select sum(hits), sum(homeRuns), sum(numberOfGames)
from baseballStats
where yearID > 2010
```

```sql
select *
from baseballStats
order by league
```

Pinot uses SQL for querying. For the complete syntax reference, see the [SQL Syntax and Operators Reference](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/sql-reference). For query options, examples, and engine details, see [Querying Pinot](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/querying-pinot).

### Time-series query execution

The Query Console also supports time-series query execution ([#16305](https://github.com/apache/pinot/pull/16305)), introduced as part of the Time Series Engine beta. The current Controller UI adds a dedicated page for running M3QL queries against the controller's Prometheus-compatible `/query_range` endpoint ([#16286](https://github.com/apache/pinot/pull/16286)). It provides time-range controls and shows the raw JSON response directly in the UI.

## REST API

The [Pinot Admin UI](http://localhost:9000/help) contains all the APIs that you will need to operate and manage your cluster. It provides a set of APIs for Pinot cluster management including health check, instances management, schema and table management, data segments management.

![](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LtH6nl58DdnZnelPdTc%2F-M1BuoMXn83szIeNCWPT%2F-M1BxN51vPW0p9FFuJCK%2FScreen%20Shot%202020-02-28%20at%2010.00.43%20AM.png?alt=media\&token=283f9390-5d08-4d62-a39f-7746a8cd638c)

Let's check out the tables in this cluster by going to [Table -> List all tables in cluster](http://localhost:9000/help#/Table/listTables), click **Try it out**, and then click **Execute**. We can see the`baseballStats` table listed here. We can also see the exact cURL call made to the controller API.

![List all tables in cluster](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2FjZvHBNiaj3QxqUfLGKbx%2Fimage.png?alt=media\&token=91e8c047-83b0-4cbc-ad2c-7faf83ef92e1)

You can look at the configuration of this table by going to [Tables -> Get/Enable/Disable/Drop a table](http://localhost:9000/help#!/Table/alterTableStateOrListTableConfig), click **Try it out**, type `baseballStats` in the table name, and then click **Execute**.

Let's check out the schemas in the cluster by going to [Schema -> List all schemas in the cluster](http://localhost:9000/help#!/Schema/listSchemaNames), click **Try it out**, and then click **Execute**. We can see a schema called `baseballStats` in this list.

![List all schemas in the cluster](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2Fs2RDC0IqDvJuMgade8qD%2Fimage.png?alt=media\&token=9164297b-41c4-438e-b507-9d73948f4bca)

Take a look at the schema by going to [Schema -> Get a schema](http://localhost:9000/help#!/Schema/getSchema), click **Try it out**, type `baseballStats` in the schema name, and then click **Execute**.

![baseballStats Schema](https://459170765-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LtH6nl58DdnZnelPdTc-887967055%2Fuploads%2FbKtd5oITNX5mGsM5wMz5%2Fimage.png?alt=media\&token=2bbe9a95-4470-4d2b-837f-05d3568f639b)

Finally, let's check out the data segments in the cluster by going to [Segment -> List all segments](http://localhost:9000/help#!/Segment/getSegments), click **Try it out**, type in `baseballStats` in the table name, and then click **Execute**. There's 1 segment for this table, called `baseballStats_OFFLINE_0`.

To learn how to upload your own data and schema, see [Batch Ingestion](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/batch-ingestion) or [Stream ingestion](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/stream-ingestion).
