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

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

Job is idle — throughput ~0; structure shown.

Aggregation state — unbounded unless keyed or temporally filteredWindow state — add a WHERE rank <= N to bound it
17 operators
Materialize · insights.settled_cash_series_mv
0% idle 2 actors
Project · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as…
2 actors
OverWindow · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… Window state — add a WHERE rank <= N to bound it
0% idle 2 actors
Project · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as…
2 actors
HashAgg · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… Aggregation state — unbounded unless keyed or temporally filtered
0% idle 2 actors
TemporalJoin · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as…
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamScan · assets_dm_next
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Filter · transactions_merged_mv
0% idle 2 actors
StreamScan · transactions_merged_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 · insights.settled_cash_series_mv Materialize insights.settled_cash_s… idle · 2 actors Project · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… Project Inner · transactions_me… — · 2 actors OverWindow · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… OverWindow Inner · transactions_me… idle · 2 actors Project · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… Project Inner · transactions_me… — · 2 actors HashAgg · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… HashAgg Inner · transactions_me… idle · 2 actors TemporalJoin · Inner · transactions_merged_mv.asset_id = assets_dm_next.id AND (as… TemporalJoin Inner · transactions_me… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · assets_dm_next StreamScan assets_dm_next idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Filter · transactions_merged_mv Filter transactions_merged_mv idle · 2 actors StreamScan · transactions_merged_mv StreamScan transactions_merged_mv 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 25094 (Actor 120566,120565)
StreamMaterialize { columns: [account_id, asset_id, currency_code, dim_settlement_date, settlement_amount_delta, settled_cash_balance, transaction_count], stream_key: [account_id, asset_id, currency_code, dim_settlement_date], pk_columns: [account_id, asset_id, currency_code, dim_settlement_date], pk_conflict: NoCheck }
├── output: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), sum, count(transactions_merged_mv.transaction_id) ]
├── stream key: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date ]
└── StreamProject { exprs: [transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), sum, count(transactions_merged_mv.transaction_id)] }
    ├── output: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), sum, count(transactions_merged_mv.transaction_id) ]
    ├── stream key: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date ]
    └── StreamOverWindow { window_functions: [sum(sum(transactions_merged_mv.net_value)) OVER(PARTITION BY transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code ORDER BY transactions_merged_mv.transaction_settlement_date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)] }
        ├── output: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), count(transactions_merged_mv.transaction_id), sum ]
        ├── stream key: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date ]
        └── StreamProject { exprs: [transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), count(transactions_merged_mv.transaction_id)] }
            ├── output: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), count(transactions_merged_mv.transaction_id) ]
            ├── stream key: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date ]
            └── StreamHashAgg { group_key: [transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date], aggs: [sum(transactions_merged_mv.net_value), count(transactions_merged_mv.transaction_id), count] }
                ├── output: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date, sum(transactions_merged_mv.net_value), count(transactions_merged_mv.transaction_id), count ]
                ├── stream key: [ transactions_merged_mv.account_id, transactions_merged_mv.asset_id, transactions_merged_mv.currency_code, transactions_merged_mv.transaction_settlement_date ]
                └── StreamTemporalJoin { type: Inner, append_only: false, predicate: transactions_merged_mv.asset_id = assets_dm_next.id AND (assets_dm_next.type = 'CASH':Varchar), nested_loop: false }
                    ├── output:
                    │   ┌── transactions_merged_mv.account_id
                    │   ├── transactions_merged_mv.asset_id
                    │   ├── transactions_merged_mv.currency_code
                    │   ├── transactions_merged_mv.transaction_settlement_date
                    │   ├── transactions_merged_mv.transaction_id
                    │   ├── transactions_merged_mv.net_value
                    │   ├── transactions_merged_mv.transactions_intraday_dm.transaction_id
                    │   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
                    │   ├── transactions_merged_mv.null:Varchar
                    │   ├── transactions_merged_mv.null:Varchar#1
                    │   ├── transactions_merged_mv.null:Varchar#2
                    │   ├── transactions_merged_mv.null:Varchar#3
                    │   ├── transactions_merged_mv.$src
                    │   └── assets_dm_next.id
                    ├── stream key:
                    │   ┌── transactions_merged_mv.transactions_intraday_dm.transaction_id
                    │   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
                    │   ├── transactions_merged_mv.null:Varchar
                    │   ├── transactions_merged_mv.null:Varchar#1
                    │   ├── transactions_merged_mv.null:Varchar#2
                    │   ├── transactions_merged_mv.null:Varchar#3
                    │   ├── transactions_merged_mv.$src
                    │   └── transactions_merged_mv.asset_id
                    ├── MergeExecutor
                    │   ├── output:
                    │   │   ┌── transactions_merged_mv.transaction_id
                    │   │   ├── transactions_merged_mv.account_id
                    │   │   ├── transactions_merged_mv.asset_id
                    │   │   ├── transactions_merged_mv.transaction_settlement_date
                    │   │   ├── transactions_merged_mv.currency_code
                    │   │   ├── transactions_merged_mv.net_value
                    │   │   ├── transactions_merged_mv.transactions_intraday_dm.transaction_id
                    │   │   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
                    │   │   ├── transactions_merged_mv.null:Varchar
                    │   │   ├── transactions_merged_mv.null:Varchar#1
                    │   │   ├── transactions_merged_mv.null:Varchar#2
                    │   │   ├── transactions_merged_mv.null:Varchar#3
                    │   │   └── transactions_merged_mv.$src
                    │   └── stream key:
                    │       ┌── transactions_merged_mv.transactions_intraday_dm.transaction_id
                    │       ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
                    │       ├── transactions_merged_mv.null:Varchar
                    │       ├── transactions_merged_mv.null:Varchar#1
                    │       ├── transactions_merged_mv.null:Varchar#2
                    │       ├── transactions_merged_mv.null:Varchar#3
                    │       └── transactions_merged_mv.$src
                    └── MergeExecutor { output: [ assets_dm_next.id, assets_dm_next.type ], stream key: [ assets_dm_next.id ] }

Fragment 25095 (Actor 120576,120575)
StreamFilter { predicate: Not(IsNull(transactions_merged_mv.transaction_settlement_date)) }
├── output:
│   ┌── transactions_merged_mv.transaction_id
│   ├── transactions_merged_mv.account_id
│   ├── transactions_merged_mv.asset_id
│   ├── transactions_merged_mv.transaction_settlement_date
│   ├── transactions_merged_mv.currency_code
│   ├── transactions_merged_mv.net_value
│   ├── transactions_merged_mv.transactions_intraday_dm.transaction_id
│   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
│   ├── transactions_merged_mv.null:Varchar
│   ├── transactions_merged_mv.null:Varchar#1
│   ├── transactions_merged_mv.null:Varchar#2
│   ├── transactions_merged_mv.null:Varchar#3
│   └── transactions_merged_mv.$src
├── stream key:
│   ┌── transactions_merged_mv.transactions_intraday_dm.transaction_id
│   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
│   ├── transactions_merged_mv.null:Varchar
│   ├── transactions_merged_mv.null:Varchar#1
│   ├── transactions_merged_mv.null:Varchar#2
│   ├── transactions_merged_mv.null:Varchar#3
│   └── transactions_merged_mv.$src
└── StreamTableScan { table: transactions_merged_mv, columns: [transaction_id, account_id, asset_id, transaction_settlement_date, currency_code, net_value, transactions_intraday_dm.transaction_id, transactions_intraday_dm.status_label_id, null:Varchar, null:Varchar#1, null:Varchar#2, null:Varchar#3, $src] }
    ├── output:
    │   ┌── transactions_merged_mv.transaction_id
    │   ├── transactions_merged_mv.account_id
    │   ├── transactions_merged_mv.asset_id
    │   ├── transactions_merged_mv.transaction_settlement_date
    │   ├── transactions_merged_mv.currency_code
    │   ├── transactions_merged_mv.net_value
    │   ├── transactions_merged_mv.transactions_intraday_dm.transaction_id
    │   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
    │   ├── transactions_merged_mv.null:Varchar
    │   ├── transactions_merged_mv.null:Varchar#1
    │   ├── transactions_merged_mv.null:Varchar#2
    │   ├── transactions_merged_mv.null:Varchar#3
    │   └── transactions_merged_mv.$src
    ├── stream key:
    │   ┌── transactions_merged_mv.transactions_intraday_dm.transaction_id
    │   ├── transactions_merged_mv.transactions_intraday_dm.status_label_id
    │   ├── transactions_merged_mv.null:Varchar
    │   ├── transactions_merged_mv.null:Varchar#1
    │   ├── transactions_merged_mv.null:Varchar#2
    │   ├── transactions_merged_mv.null:Varchar#3
    │   └── transactions_merged_mv.$src
    ├── Upstream { output: [ transaction_id, account_id, asset_id, transaction_settlement_date, currency_code, net_value, transactions_intraday_dm.transaction_id, transactions_intraday_dm.status_label_id, null:Varchar, null:Varchar#1, null:Varchar#2, null:Varchar#3, $src ], stream key: [] }
    └── BatchPlanNode { output: [ transaction_id, account_id, asset_id, transaction_settlement_date, currency_code, net_value, transactions_intraday_dm.transaction_id, transactions_intraday_dm.status_label_id, null:Varchar, null:Varchar#1, null:Varchar#2, null:Varchar#3, $src ], stream key: [] }

Fragment 25096 (Actor 120567,120568)
StreamTableScan { table: assets_dm_next, columns: [id, type] } { output: [ assets_dm_next.id, assets_dm_next.type ], stream key: [ assets_dm_next.id ] }
├── Upstream { output: [ id, type ], stream key: [] }
└── BatchPlanNode { output: [ id, type ], stream key: [] }