Skip to main content

doris-debug-materialized-view

Use for Doris sync MV (rollup) miss or async MTMV refresh/rewrite issues. Commands: SHOW ALTER TABLE MATERIALIZED VIEW, mv_infos(), EXPLAIN, REFRESH MATERIALIZED VIEW.

Informations de source

Dépôt
apache/doris-skills
Dernière activité de la source
24 juillet 2026 à 08:50
Langue détectée de SKILL.md
anglais
Étoiles
46
Forks
15

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
doris-debug-materialized-view
description
Use for Doris sync MV (rollup) miss or async MTMV refresh/rewrite issues. Commands: SHOW ALTER TABLE MATERIALIZED VIEW, mv_infos(), EXPLAIN, REFRESH MATERIALIZED VIEW.
version
0.2.0
category
materialized-view
# Materialized View ## Kind comparison | Kind | Code area | Check | Rewrite mechanism | |------|-----------|-------|-------------------| | Sync | `MaterializedViewHandler` / rollup | `SHOW ALTER TABLE MATERIALIZED VIEW` | Transparent — planner auto-selects | | Async MTMV | `fe/.../mtmv/` | `mv_infos()` RefreshState | CBO-based — EXPLAIN shows if matched | ## Causes | ID | Cause | Evidence | Kind | |----|-------|----------|------| | A | Sync MV build pending/stuck | `SHOW ALTER TABLE MATERIALIZED VIEW` State≠FINISHED | Sync | | B | MTMV refresh failed | `mv_infos()` RefreshState=FAIL | Async | | C | MTMV rewrite miss | EXPLAIN shows no MATERIALIZED_REWRITE | Async | | D | MTMV data stale | `mv_infos()` LastRefreshTime old | Async | | E | MV not selected by planner | EXPLAIN shows TABLE SCAN not MATERIALIZED | Either | ## 10 min triage ```sql -- Sync MV status SHOW ALTER TABLE MATERIALIZED VIEW FROM db; -- Async MTMV status SELECT * FROM mv_infos('database'='db') WHERE Name='mv'\G -- Check rewrite eligibility EXPLAIN VERBOSE SELECT ...; -- Force refresh REFRESH MATERIALIZED VIEW mv; -- Enable external MV rewrite (for catalog queries) SET materialized_view_rewrite_enable_contain_external_table = true; ``` ## Cause C — MTMV rewrite miss Common reasons (see `fe/.../mtmv/MTMVService.java` rewrite matcher): 1. **Partition misalignment**: MV has `partition_sync=false` and query partition doesn't match → `ALTER MATERIALIZED VIEW mv SET ("partition_sync" = "true")` 2. **Aggregation granularity**: MV groups by `(a, b)` but query groups by `(a)` only → MV is not a valid rewrite target 3. **Filter mismatch**: MV WHERE clause doesn't cover query WHERE clause → check MV definition 4. **Session var off**: `SET enable_materialized_view_rewrite = true` ```sql -- Debug: force the optimizer to log MV matching SET enable_materialized_view_rewrite_debug_log = true; EXPLAIN VERBOSE SELECT ...; -- check fe/log/fe.audit.log for MV match details ``` ## Cause A — Sync MV stuck ```sql -- Cancel stuck build CANCEL ALTER TABLE MATERIALIZED VIEW FROM db ON table; -- Check BE compaction queue (MV build competes with compaction) ./scripts/doris-debug be-metrics --be http://$BE:8040 --grep compaction ``` ## Source - `fe/.../mtmv/MTMVService.java` — MTMV lifecycle - `fe/.../alter/MaterializedViewHandler.java` — sync MV alter - `fe/.../materializedview/MaterializedViewRewriter.java` — rewrite logic - `SessionVariable.java` — `enable_materialized_view_rewrite`, `materialized_view_rewrite_enable_contain_external_table`
Voir sur GitHub