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.

소스 정보

저장소
apache/doris-skills
최근 소스 활동
2026년 7월 24일 08:50
감지된 SKILL.md 언어
영어
스타
50
포크
15

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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`
GitHub에서 보기