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

← cluster alinma_bff objects orders_mv explain
Overview Objects Graph History
materialized view · alinma_bff.orders_mv 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
18 operators
Materialize · alinma_bff.orders_mv
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · orders.id = order_execution_summaries_mv.order_id
2 actors
HashJoin · LeftOuter · orders.id = order_execution_summaries_mv.order_id 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
StreamScan · order_execution_summaries_mv
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Filter · orders
0% idle 2 actors
Project · orders
2 actors
GroupTopN · orders
0% idle 2 actors
StreamScan · orders
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.orders_mv Materialize alinma_bff.orders_mv idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · orders.id = order_execution_summaries_mv.order_id SyncLogStore LeftOuter · orders.id =… — · 2 actors HashJoin · LeftOuter · orders.id = order_execution_summaries_mv.order_id HashJoin LeftOuter · orders.id =… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · order_execution_summaries_mv StreamScan order_execution_summari… idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Filter · orders Filter orders idle · 2 actors Project · orders Project orders — · 2 actors GroupTopN · orders GroupTopN orders idle · 2 actors StreamScan · orders StreamScan orders 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 44584 (Actor 742458,742459)
StreamMaterialize { columns: [order_id, etag, client_order_id, customer_relationship_id, portfolio_id, security_account_id, asset_id, order_side, workflow_state, execution_state, termination_reason, termination_detail, instruction, execution_spec, cost_estimate, execution_summary, initiator, filled_quantity, created_at, executed_at, order_execution_summaries_mv.order_id(hidden)], stream_key: [order_id], pk_columns: [order_id], pk_conflict: NoCheck }
├── output:
│   ┌── orders.id
│   ├── orders.etag
│   ├── orders.client_order_id
│   ├── orders.customer_relationship_id
│   ├── orders.portfolio_id
│   ├── orders.security_account_id
│   ├── orders.asset_id
│   ├── orders.side
│   ├── orders.workflow_state
│   ├── orders.execution_state
│   ├── orders.termination_reason
│   ├── orders.termination_detail
│   ├── orders.instruction
│   ├── orders.execution_spec
│   ├── orders.cost_estimate
│   ├── order_execution_summaries_mv.execution_summary
│   ├── orders.initiator
│   ├── orders.filled_quantity
│   ├── orders.created_at
│   ├── orders.executed_at
│   └── order_execution_summaries_mv.order_id
├── stream key: [ orders.id ]
└── MergeExecutor
    ├── output:
    │   ┌── orders.id
    │   ├── orders.etag
    │   ├── orders.client_order_id
    │   ├── orders.customer_relationship_id
    │   ├── orders.portfolio_id
    │   ├── orders.security_account_id
    │   ├── orders.asset_id
    │   ├── orders.side
    │   ├── orders.workflow_state
    │   ├── orders.execution_state
    │   ├── orders.termination_reason
    │   ├── orders.termination_detail
    │   ├── orders.instruction
    │   ├── orders.execution_spec
    │   ├── orders.cost_estimate
    │   ├── order_execution_summaries_mv.execution_summary
    │   ├── orders.initiator
    │   ├── orders.filled_quantity
    │   ├── orders.created_at
    │   ├── orders.executed_at
    │   └── order_execution_summaries_mv.order_id
    └── stream key: [ orders.id ]

Fragment 44585 (Actor 742456,742457)
StreamSyncLogStore
├── output:
│   ┌── orders.id
│   ├── orders.etag
│   ├── orders.client_order_id
│   ├── orders.customer_relationship_id
│   ├── orders.portfolio_id
│   ├── orders.security_account_id
│   ├── orders.asset_id
│   ├── orders.side
│   ├── orders.workflow_state
│   ├── orders.execution_state
│   ├── orders.termination_reason
│   ├── orders.termination_detail
│   ├── orders.instruction
│   ├── orders.execution_spec
│   ├── orders.cost_estimate
│   ├── order_execution_summaries_mv.execution_summary
│   ├── orders.initiator
│   ├── orders.filled_quantity
│   ├── orders.created_at
│   ├── orders.executed_at
│   └── order_execution_summaries_mv.order_id
├── stream key: [ orders.id ]
└── StreamHashJoin { type: LeftOuter, predicate: orders.id = order_execution_summaries_mv.order_id }
    ├── output:
    │   ┌── orders.id
    │   ├── orders.etag
    │   ├── orders.client_order_id
    │   ├── orders.customer_relationship_id
    │   ├── orders.portfolio_id
    │   ├── orders.security_account_id
    │   ├── orders.asset_id
    │   ├── orders.side
    │   ├── orders.workflow_state
    │   ├── orders.execution_state
    │   ├── orders.termination_reason
    │   ├── orders.termination_detail
    │   ├── orders.instruction
    │   ├── orders.execution_spec
    │   ├── orders.cost_estimate
    │   ├── order_execution_summaries_mv.execution_summary
    │   ├── orders.initiator
    │   ├── orders.filled_quantity
    │   ├── orders.created_at
    │   ├── orders.executed_at
    │   └── order_execution_summaries_mv.order_id
    ├── stream key: [ orders.id ]
    ├── MergeExecutor
    │   ├── output: [ orders.id, orders.client_order_id, orders.portfolio_id, orders.security_account_id, orders.initiator, orders.asset_id, orders.side, orders.workflow_state, orders.execution_state, orders.etag, orders.customer_relationship_id, orders.instruction, orders.execution_spec, orders.cost_estimate, orders.filled_quantity, orders.created_at, orders.deleted_at, orders.termination_reason, orders.executed_at, orders.termination_detail ]
    │   └── stream key: [ orders.id ]
    └── MergeExecutor { output: [ order_execution_summaries_mv.order_id, order_execution_summaries_mv.execution_summary ], stream key: [ order_execution_summaries_mv.order_id ] }

Fragment 44586 (Actor 742462,742461)
StreamFilter { predicate: IsNull(orders.deleted_at) }
├── output: [ orders.id, orders.client_order_id, orders.portfolio_id, orders.security_account_id, orders.initiator, orders.asset_id, orders.side, orders.workflow_state, orders.execution_state, orders.etag, orders.customer_relationship_id, orders.instruction, orders.execution_spec, orders.cost_estimate, orders.filled_quantity, orders.created_at, orders.deleted_at, orders.termination_reason, orders.executed_at, orders.termination_detail ]
├── stream key: [ orders.id ]
└── StreamProject { exprs: [orders.id, orders.client_order_id, orders.portfolio_id, orders.security_account_id, orders.initiator, orders.asset_id, orders.side, orders.workflow_state, orders.execution_state, orders.etag, orders.customer_relationship_id, orders.instruction, orders.execution_spec, orders.cost_estimate, orders.filled_quantity, orders.created_at, orders.deleted_at, orders.termination_reason, orders.executed_at, orders.termination_detail] }
    ├── output: [ orders.id, orders.client_order_id, orders.portfolio_id, orders.security_account_id, orders.initiator, orders.asset_id, orders.side, orders.workflow_state, orders.execution_state, orders.etag, orders.customer_relationship_id, orders.instruction, orders.execution_spec, orders.cost_estimate, orders.filled_quantity, orders.created_at, orders.deleted_at, orders.termination_reason, orders.executed_at, orders.termination_detail ]
    ├── stream key: [ orders.id ]
    └── StreamGroupTopN { order: [orders.created_at DESC], limit: 1, offset: 0, group_key: [orders.id] }
        ├── output: [ orders.id, orders.client_order_id, orders.portfolio_id, orders.security_account_id, orders.initiator, orders.asset_id, orders.side, orders.workflow_state, orders.execution_state, orders.etag, orders.customer_relationship_id, orders.instruction, orders.execution_spec, orders.cost_estimate, orders.filled_quantity, orders.created_at, orders.deleted_at, orders.termination_reason, orders.executed_at, orders.termination_detail ]
        ├── stream key: [ orders.id ]
        └── StreamTableScan { table: orders, columns: [id, client_order_id, portfolio_id, security_account_id, initiator, asset_id, side, workflow_state, execution_state, etag, customer_relationship_id, instruction, execution_spec, cost_estimate, filled_quantity, created_at, deleted_at, termination_reason, executed_at, termination_detail] }
            ├── output: [ orders.id, orders.client_order_id, orders.portfolio_id, orders.security_account_id, orders.initiator, orders.asset_id, orders.side, orders.workflow_state, orders.execution_state, orders.etag, orders.customer_relationship_id, orders.instruction, orders.execution_spec, orders.cost_estimate, orders.filled_quantity, orders.created_at, orders.deleted_at, orders.termination_reason, orders.executed_at, orders.termination_detail ]
            ├── stream key: [ orders.id, orders.created_at ]
            ├── Upstream { output: [ id, client_order_id, portfolio_id, security_account_id, initiator, asset_id, side, workflow_state, execution_state, etag, customer_relationship_id, instruction, execution_spec, cost_estimate, filled_quantity, created_at, deleted_at, termination_reason, executed_at, termination_detail ], stream key: [] }
            └── BatchPlanNode { output: [ id, client_order_id, portfolio_id, security_account_id, initiator, asset_id, side, workflow_state, execution_state, etag, customer_relationship_id, instruction, execution_spec, cost_estimate, filled_quantity, created_at, deleted_at, termination_reason, executed_at, termination_detail ], stream key: [] }

Fragment 44587 (Actor 742470,742471)
StreamTableScan { table: order_execution_summaries_mv, columns: [order_id, execution_summary] } { output: [ order_execution_summaries_mv.order_id, order_execution_summaries_mv.execution_summary ], stream key: [ order_execution_summaries_mv.order_id ] }
├── Upstream { output: [ order_id, execution_summary ], stream key: [] }
└── BatchPlanNode { output: [ order_id, execution_summary ], stream key: [] }