RWM Console cluster: risingwave-ai-hub-int.ai-hub-rwm.svc.cluster.local

← cluster insights objects client_to_account_groups_mv explain
Overview Objects Graph History
materialized view · insights.client_to_account_groups_mv profiled over 5s
seconds (1–30)

Job is idle — throughput ~0; structure shown.

16 operators
Materialize · insights.client_to_account_groups_mv
0% idle 2 actors
Union
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · clients_dm
2 actors
Filter · clients_dm
0% idle 2 actors
StreamScan · clients_dm
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project
2 actors
Merge
2 actors
Heat = the operator's output-buffer backpressure over the sampling window. Click a node to fold its subtree.
Materialize · insights.client_to_account_groups_mv Materialize insights.client_to_acco… idle · 2 actors Union Union idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project Project — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · clients_dm Project clients_dm — · 2 actors Filter · clients_dm Filter clients_dm idle · 2 actors StreamScan · clients_dm StreamScan clients_dm idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project Project — · 2 actors Merge Merge — · 2 actors
Streaming operator plan from EXPLAIN ANALYZE. Node heat = backpressure. Drag to pan, scroll to zoom.
Fragments (DESCRIBE FRAGMENTS) — click to expand
Fragment 12479 (Actor 156760,156759)
StreamMaterialize { columns: [client_id, account_group_id, type, $src(hidden)], stream_key: [client_id, $src], pk_columns: [client_id, $src], pk_conflict: NoCheck }
├── output: [ clients_dm.id, $expr1, 'all':Varchar, $src ]
├── stream key: [ clients_dm.id, $src ]
└── StreamUnion { all: true } { output: [ clients_dm.id, $expr1, 'all':Varchar, $src ], stream key: [ clients_dm.id, $src ] }
    ├── MergeExecutor { output: [ clients_dm.id, $expr1, 'all':Varchar, 0:Int32 ], stream key: [ clients_dm.id ] }
    └── MergeExecutor { output: [ clients_dm.id, $expr2, 'none':Varchar, 1:Int32 ], stream key: [ clients_dm.id ] }

Fragment 12480 (Actor 157162,157163)
StreamProject { exprs: [clients_dm.id, ConcatOp('account_group_':Varchar, Md5(ConcatOp(clients_dm.id, 'all':Varchar)::Bytea)) as $expr1, 'all':Varchar, 0:Int32] }
├── output: [ clients_dm.id, $expr1, 'all':Varchar, 0:Int32 ]
├── stream key: [ clients_dm.id ]
└── MergeExecutor { output: [ clients_dm.id ], stream key: [ clients_dm.id ] }

Fragment 12481 (Actor 157158,157159)
StreamProject { exprs: [clients_dm.id] } { output: [ clients_dm.id ], stream key: [ clients_dm.id ] }
└── StreamFilter { predicate: IsNull(clients_dm.closing_date) AND Not(IsTrue(clients_dm.m_is_stub)) }
    ├── output: [ clients_dm.id, clients_dm.closing_date, clients_dm.m_is_stub ]
    ├── stream key: [ clients_dm.id ]
    └── StreamTableScan { table: clients_dm, columns: [id, closing_date, m_is_stub] }
        ├── output: [ clients_dm.id, clients_dm.closing_date, clients_dm.m_is_stub ]
        ├── stream key: [ clients_dm.id ]
        ├── Upstream { output: [ id, closing_date, m_is_stub ], stream key: [] }
        └── BatchPlanNode { output: [ id, closing_date, m_is_stub ], stream key: [] }

Fragment 12482 (Actor 157160,157161)
StreamProject { exprs: [clients_dm.id, ConcatOp('account_group_':Varchar, Md5(ConcatOp(clients_dm.id, 'none':Varchar)::Bytea)) as $expr2, 'none':Varchar, 1:Int32] }
├── output: [ clients_dm.id, $expr2, 'none':Varchar, 1:Int32 ]
├── stream key: [ clients_dm.id ]
└── MergeExecutor { output: [ clients_dm.id ], stream key: [ clients_dm.id ] }