hongkunxu opened a new pull request, #18537:
URL: https://github.com/apache/pinot/pull/18537
Adds a controller-side Materialized View management UI and the supporting
REST endpoints. Read-only details + drop only — full create/edit-from-UI is
deferred to a follow-up.
**Backend**
- `PinotMaterializedViewRestletResource`:
- `GET /materializedViews` — listing with name, base tables, watermark,
VALID / STALE / total partition counts, last refresh time, staleness SLO.
- `GET /materializedViews/{name}` — full definition (defined SQL, base
tables, split spec, partition expression maps, staleness SLO) plus runtime
(watermarkMs + per-bucket state map sorted by bucketStartMs).
- `DELETE /materializedViews/{name}` — delegates to
`PinotHelixResourceManager.deleteTable` so the same dependent-MV safety guards
apply.
- New `MATERIALIZED_VIEW_TAG` for swagger grouping.
**Frontend**
- New left-nav entry "Materialized Views" linking to `/materialized-views`.
- New listing page at `/materialized-views`: paginated table of all MVs with
key health columns.
- New details page at `/materialized-views/{name}`:
- Summary (name, base tables, watermark, staleness SLO, partition counts
by state).
- Defined SQL (CodeMirror, read-only).
- Full definition JSON (CodeMirror, read-only).
- Per-partition table (bucketStartMs as ISO timestamp, state,
segmentCount, crc, lastRefreshTime).
- "Refresh" + "Drop MV" actions; drop goes through a confirmation dialog.
- New `requests/index.ts` helpers: `getMaterializedViewList`,
`getMaterializedView`, `deleteMaterializedView`.
Existing controller wiring (PR 1) handles all the underlying ZK reads/writes
and the dependent-MV guard on `deleteTable`; this PR is the operator-facing
surface on top of it.
Instructions:
1. The PR has to be tagged with at least one of the following labels (*):
1. `feature`
2. `bugfix`
3. `performance`
4. `ui`
5. `backward-incompat`
6. `release-notes` (**)
2. Remove these instructions before publishing the PR.
(*) Other labels to consider:
- `testing`
- `dependencies`
- `docker`
- `kubernetes`
- `observability`
- `security`
- `code-style`
- `extension-point`
- `refactor`
- `cleanup`
(**) Use `release-notes` label for scenarios like:
- New configuration options
- Deprecation of configurations
- Signature changes to public methods/interfaces
- New plugins added or old plugins removed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]