RWM Console cluster: risingwave-alinma.alinma-rw.svc.cluster.local

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

Job is idle — throughput ~0; structure shown.

10 operators
Materialize · opportunity.opportunity_conditions_mv
0% idle 2 actors
Project · opportunities_dm
2 actors
ProjectSet · opportunities_dm
0% idle 2 actors
Project · opportunities_dm
2 actors
ProjectSet · opportunities_dm
0% idle 2 actors
Project · opportunities_dm
2 actors
Filter · opportunities_dm
0% idle 2 actors
StreamScan · opportunities_dm
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Heat = the operator's output-buffer backpressure over the sampling window. Click a node to fold its subtree.
Materialize · opportunity.opportunity_conditions_mv Materialize opportunity.opportunity… idle · 2 actors Project · opportunities_dm Project opportunities_dm — · 2 actors ProjectSet · opportunities_dm ProjectSet opportunities_dm idle · 2 actors Project · opportunities_dm Project opportunities_dm — · 2 actors ProjectSet · opportunities_dm ProjectSet opportunities_dm idle · 2 actors Project · opportunities_dm Project opportunities_dm — · 2 actors Filter · opportunities_dm Filter opportunities_dm idle · 2 actors StreamScan · opportunities_dm StreamScan opportunities_dm idle · 2 actors BatchPlan BatchPlan — · 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 60809 (Actor 739016,739017)
StreamMaterialize { columns: [opportunity_id, combine_operator, activity_name, op, threshold, interval_to_check_days, as_of_date, _rw_projected_row_id(hidden), _rw_projected_row_id#1(hidden)], stream_key: [opportunity_id, _rw_projected_row_id, _rw_projected_row_id#1], pk_columns: [opportunity_id, _rw_projected_row_id, _rw_projected_row_id#1], pk_conflict: NoCheck } { output: [ opportunities_dm.opportunity_id, $expr1, $expr2, $expr3, $expr4, $expr5, opportunities_dm.as_of_date, _rw_projected_row_id, _rw_projected_row_id ], stream key: [ opportunities_dm.opportunity_id, _rw_projected_row_id, _rw_projected_row_id ] }
└── StreamProject { exprs: [opportunities_dm.opportunity_id, Coalesce(JsonbAccessStr(Unnest($1), 'operator':Varchar), 'AND':Varchar) as $expr1, JsonbAccessStr(JsonbArrayElements(Coalesce(JsonbAccess($2, 'conditions':Varchar), JsonbBuildArray($2))), 'activity_name':Varchar) as $expr2, JsonbAccessStr(JsonbArrayElements(Coalesce(JsonbAccess($2, 'conditions':Varchar), JsonbBuildArray($2))), 'check':Varchar) as $expr3, Replace(JsonbAccessStr(JsonbArrayElements(Coalesce(JsonbAccess($2, 'conditions':Varchar), JsonbBuildArray($2))), 'value':Varchar), ',':Varchar, '':Varchar)::Decimal as $expr4, JsonbAccessStr(JsonbArrayElements(Coalesce(JsonbAccess($2, 'conditions':Varchar), JsonbBuildArray($2))), 'interval_to_check_days':Varchar)::Int32 as $expr5, opportunities_dm.as_of_date, _rw_projected_row_id, _rw_projected_row_id] }
    ├── output: [ opportunities_dm.opportunity_id, $expr1, $expr2, $expr3, $expr4, $expr5, opportunities_dm.as_of_date, _rw_projected_row_id, _rw_projected_row_id ]
    ├── stream key: [ opportunities_dm.opportunity_id, _rw_projected_row_id, _rw_projected_row_id ]
    └── StreamProjectSet { select_list: [$0, $1, $2, JsonbArrayElements(Coalesce(JsonbAccess($2, 'conditions':Varchar), JsonbBuildArray($2))), $3] } { output: [ _rw_projected_row_id, opportunities_dm.opportunity_id, opportunities_dm.as_of_date, Unnest($1), JsonbArrayElements(Coalesce(JsonbAccess($2, 'conditions':Varchar), JsonbBuildArray($2))), _rw_projected_row_id ], stream key: [ opportunities_dm.opportunity_id, _rw_projected_row_id, _rw_projected_row_id ] }
        └── StreamProject { exprs: [opportunities_dm.opportunity_id, opportunities_dm.as_of_date, Unnest($1), _rw_projected_row_id] } { output: [ opportunities_dm.opportunity_id, opportunities_dm.as_of_date, Unnest($1), _rw_projected_row_id ], stream key: [ opportunities_dm.opportunity_id, _rw_projected_row_id ] }
            └── StreamProjectSet { select_list: [$0, $2, Unnest($1)] } { output: [ _rw_projected_row_id, opportunities_dm.opportunity_id, opportunities_dm.as_of_date, Unnest($1) ], stream key: [ opportunities_dm.opportunity_id, _rw_projected_row_id ] }
                └── StreamProject { exprs: [opportunities_dm.opportunity_id, opportunities_dm.conditions, opportunities_dm.as_of_date] } { output: [ opportunities_dm.opportunity_id, opportunities_dm.conditions, opportunities_dm.as_of_date ], stream key: [ opportunities_dm.opportunity_id ] }
                    └── StreamFilter { predicate: (opportunities_dm.status = 'ENABLED':Varchar) } { output: [ opportunities_dm.opportunity_id, opportunities_dm.conditions, opportunities_dm.as_of_date, opportunities_dm.status ], stream key: [ opportunities_dm.opportunity_id ] }
                        └── StreamTableScan { table: opportunities_dm, columns: [opportunity_id, conditions, as_of_date, status] } { output: [ opportunities_dm.opportunity_id, opportunities_dm.conditions, opportunities_dm.as_of_date, opportunities_dm.status ], stream key: [ opportunities_dm.opportunity_id ] }
                            ├── Upstream { output: [ opportunity_id, conditions, as_of_date, status ], stream key: [] }
                            └── BatchPlanNode { output: [ opportunity_id, conditions, as_of_date, status ], stream key: [] }