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

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

Job is idle — throughput ~0; structure shown.

Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
21 operators
Sink · insights.portfolio_to_account_groups_sink
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · Inner · portfolio_to_account_groups_mv_next.portfolio_id = portfoli…
2 actors
HashJoin · Inner · portfolio_to_account_groups_mv_next.portfolio_id = portfoli… Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamScan · portfolio_account_group_types_mv_next
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamScan · portfolio_to_account_groups_mv_next
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.
Sink · insights.portfolio_to_account_groups_sink Sink insights.portfolio_to_a… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · Inner · portfolio_to_account_groups_mv_next.portfolio_id = portfoli… SyncLogStore Inner · portfolio_to_ac… — · 2 actors HashJoin · Inner · portfolio_to_account_groups_mv_next.portfolio_id = portfoli… HashJoin Inner · portfolio_to_ac… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · portfolio_account_group_types_mv_next StreamScan portfolio_account_group… idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · portfolio_to_account_groups_mv_next StreamScan portfolio_to_account_gr… 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 37797 (Actor 744072,744071)
StreamSink { type: upsert, columns: [portfolio_id, account_group_id, type, portfolio_to_account_groups_mv_next.$src(hidden), portfolio_account_group_types_mv_next.portfolio_id(hidden), portfolio_account_group_types_mv_next.type(hidden), portfolio_account_group_types_mv_next.$src(hidden)], downstream_pk: [portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type] }
├── output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ]
├── stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.$src ]
└── MergeExecutor
    ├── output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ]
    └── stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.$src ]

Fragment 37798 (Actor 744070,744069)
StreamSyncLogStore
├── output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ]
├── stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.$src ]
└── StreamHashJoin { type: Inner, predicate: portfolio_to_account_groups_mv_next.portfolio_id = portfolio_account_group_types_mv_next.portfolio_id AND portfolio_to_account_groups_mv_next.type = portfolio_account_group_types_mv_next.type }
    ├── output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ]
    ├── stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src, portfolio_account_group_types_mv_next.$src ]
    ├── MergeExecutor { output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src ], stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src ] }
    └── MergeExecutor { output: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ], stream key: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ] }

Fragment 37799 (Actor 744073,744074)
StreamLocalityProvider { locality_columns: [portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type] }
├── output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src ]
├── stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src ]
└── MergeExecutor { output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src ], stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.$src ] }

Fragment 37800 (Actor 744079,744080)
StreamTableScan { table: portfolio_to_account_groups_mv_next, columns: [portfolio_id, account_group_id, type, $src] } { output: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.account_group_id, portfolio_to_account_groups_mv_next.type, portfolio_to_account_groups_mv_next.$src ], stream key: [ portfolio_to_account_groups_mv_next.portfolio_id, portfolio_to_account_groups_mv_next.$src ] }
├── Upstream { output: [ portfolio_id, account_group_id, type, $src ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, account_group_id, type, $src ], stream key: [] }

Fragment 37801 (Actor 744076,744075)
StreamLocalityProvider { locality_columns: [portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type] } { output: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ], stream key: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ] }
└── MergeExecutor { output: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ], stream key: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ] }

Fragment 37802 (Actor 744078,744077)
StreamTableScan { table: portfolio_account_group_types_mv_next, columns: [portfolio_id, type, $src] } { output: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ], stream key: [ portfolio_account_group_types_mv_next.portfolio_id, portfolio_account_group_types_mv_next.type, portfolio_account_group_types_mv_next.$src ] }
├── Upstream { output: [ portfolio_id, type, $src ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, type, $src ], stream key: [] }