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

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

Job is idle — throughput ~0; structure shown.

Aggregation state — unbounded unless keyed or temporally filtered
13 operators
Materialize · alinma_bff.order_execution_fee_lines_mv
0% idle 2 actors
Filter · (sum($expr3) > 0:Decimal)
0% idle 2 actors
Project · (sum($expr3) > 0:Decimal)
2 actors
HashAgg · (sum($expr3) > 0:Decimal) Aggregation state — unbounded unless keyed or temporally filtered
0% idle 2 actors
LocalityProvider · (sum($expr3) > 0:Decimal)
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · order_executions_bounded_mv
2 actors
Filter · order_executions_bounded_mv
0% idle 2 actors
ProjectSet · order_executions_bounded_mv
0% idle 2 actors
StreamScan · order_executions_bounded_mv
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 · alinma_bff.order_execution_fee_lines_mv Materialize alinma_bff.order_execut… idle · 2 actors Filter · (sum($expr3) > 0:Decimal) Filter (sum($expr3) > 0:Decima… idle · 2 actors Project · (sum($expr3) > 0:Decimal) Project (sum($expr3) > 0:Decima… — · 2 actors HashAgg · (sum($expr3) > 0:Decimal) HashAgg (sum($expr3) > 0:Decima… idle · 2 actors LocalityProvider · (sum($expr3) > 0:Decimal) LocalityProvider (sum($expr3) > 0:Decima… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · order_executions_bounded_mv Project order_executions_bounde… — · 2 actors Filter · order_executions_bounded_mv Filter order_executions_bounde… idle · 2 actors ProjectSet · order_executions_bounded_mv ProjectSet order_executions_bounde… idle · 2 actors StreamScan · order_executions_bounded_mv StreamScan order_executions_bounde… 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 44467 (Actor 742118,742117)
StreamMaterialize { columns: [order_id, kind, currency_code, amount], stream_key: [order_id, kind, currency_code], pk_columns: [order_id, kind, currency_code], pk_conflict: NoCheck }
├── output: [ order_executions_bounded_mv.order_id, $expr1, $expr2, sum($expr3) ]
├── stream key: [ order_executions_bounded_mv.order_id, $expr1, $expr2 ]
└── StreamFilter { predicate: (sum($expr3) > 0:Decimal) }
    ├── output: [ order_executions_bounded_mv.order_id, $expr1, $expr2, sum($expr3) ]
    ├── stream key: [ order_executions_bounded_mv.order_id, $expr1, $expr2 ]
    └── StreamProject { exprs: [order_executions_bounded_mv.order_id, $expr1, $expr2, sum($expr3)] }
        ├── output: [ order_executions_bounded_mv.order_id, $expr1, $expr2, sum($expr3) ]
        ├── stream key: [ order_executions_bounded_mv.order_id, $expr1, $expr2 ]
        └── StreamHashAgg { group_key: [order_executions_bounded_mv.order_id, $expr1, $expr2], aggs: [sum($expr3), count] }
            ├── output: [ order_executions_bounded_mv.order_id, $expr1, $expr2, sum($expr3), count ]
            ├── stream key: [ order_executions_bounded_mv.order_id, $expr1, $expr2 ]
            └── StreamLocalityProvider { locality_columns: [order_executions_bounded_mv.order_id, $expr1, $expr2] }
                ├── output:
                │   ┌── order_executions_bounded_mv.order_id
                │   ├── $expr1
                │   ├── $expr2
                │   ├── $expr3
                │   ├── order_executions_bounded_mv.id
                │   ├── order_executions_bounded_mv.executed_at
                │   ├── order_executions_bounded_mv.orders.created_at
                │   └── _rw_projected_row_id
                ├── stream key:
                │   ┌── order_executions_bounded_mv.order_id
                │   ├── $expr1
                │   ├── $expr2
                │   ├── order_executions_bounded_mv.id
                │   ├── order_executions_bounded_mv.executed_at
                │   ├── order_executions_bounded_mv.orders.created_at
                │   └── _rw_projected_row_id
                └── MergeExecutor
                    ├── output:
                    │   ┌── order_executions_bounded_mv.order_id
                    │   ├── $expr1
                    │   ├── $expr2
                    │   ├── $expr3
                    │   ├── order_executions_bounded_mv.id
                    │   ├── order_executions_bounded_mv.executed_at
                    │   ├── order_executions_bounded_mv.orders.created_at
                    │   └── _rw_projected_row_id
                    └── stream key:
                        ┌── order_executions_bounded_mv.order_id
                        ├── order_executions_bounded_mv.id
                        ├── order_executions_bounded_mv.executed_at
                        ├── order_executions_bounded_mv.orders.created_at
                        └── _rw_projected_row_id

Fragment 44468 (Actor 742121,742122)
StreamProject { exprs: [order_executions_bounded_mv.order_id, Coalesce(Case((Position(JsonbAccessStr(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'kind':Varchar), 'FEE_KIND_':Varchar) = 1:Int32), JsonbAccessStr(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'kind':Varchar), ConcatOp('FEE_KIND_':Varchar, JsonbAccessStr(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'kind':Varchar))), 'FEE_KIND_UNSPECIFIED':Varchar) as $expr1, Coalesce(JsonbAccessStr(JsonbAccess(JsonbAccess(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'amount':Varchar), 'currencyCode':Varchar), 'value':Varchar), JsonbAccessStr(JsonbAccess(JsonbAccess(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'amount':Varchar), 'currency_code':Varchar), 'value':Varchar)) as $expr2, JsonbAccessStr(JsonbAccess(JsonbAccess(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'amount':Varchar), 'amount':Varchar), 'value':Varchar)::Decimal as $expr3, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at, _rw_projected_row_id] }
├── output: [ order_executions_bounded_mv.order_id, $expr1, $expr2, $expr3, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at, _rw_projected_row_id ]
├── stream key: [ order_executions_bounded_mv.order_id, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at, _rw_projected_row_id ]
└── StreamFilter { predicate: RegexpEq(JsonbAccessStr(JsonbAccess(JsonbAccess(JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), 'amount':Varchar), 'amount':Varchar), 'value':Varchar), '^-?[0-9]+(\.[0-9]+)?$':Varchar) } { output: [ _rw_projected_row_id, order_executions_bounded_mv.order_id, JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at ], stream key: [ order_executions_bounded_mv.order_id, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at, _rw_projected_row_id ] }
    └── StreamProjectSet { select_list: [$0, JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), $3, $4, $5] } { output: [ _rw_projected_row_id, order_executions_bounded_mv.order_id, JsonbArrayElements(Case((JsonbTypeof($2) = 'array':Varchar), $2, Not(IsNull($1)), JsonbBuildArray(JsonbBuildObject('kind':Varchar, 'FEE_KIND_COMMISSION':Varchar, 'amount':Varchar, $1)), '[]':Jsonb)), order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at ], stream key: [ order_executions_bounded_mv.order_id, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at, _rw_projected_row_id ] }
        └── StreamTableScan { table: order_executions_bounded_mv, columns: [order_id, commission, fees, id, executed_at, orders.created_at] } { output: [ order_executions_bounded_mv.order_id, order_executions_bounded_mv.commission, order_executions_bounded_mv.fees, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at ], stream key: [ order_executions_bounded_mv.order_id, order_executions_bounded_mv.id, order_executions_bounded_mv.executed_at, order_executions_bounded_mv.orders.created_at ] }
            ├── Upstream { output: [ order_id, commission, fees, id, executed_at, orders.created_at ], stream key: [] }
            └── BatchPlanNode { output: [ order_id, commission, fees, id, executed_at, orders.created_at ], stream key: [] }