RWM Console cluster: risingwave-ai-hub-int.ai-hub-rwm.svc.cluster.local

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

Job is idle — throughput ~0; structure shown.

6 operators
Sink · alpheya_agent.portfolios_sink
0% idle 2 actors
Project · portfolios_dm
2 actors
Filter · portfolios_dm
0% idle 2 actors
StreamScan · portfolios_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.
Sink · alpheya_agent.portfolios_sink Sink alpheya_agent.portfolio… idle · 2 actors Project · portfolios_dm Project portfolios_dm — · 2 actors Filter · portfolios_dm Filter portfolios_dm idle · 2 actors StreamScan · portfolios_dm StreamScan portfolios_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 19394 (Actor 156692,156691)
StreamSink { type: upsert, columns: [portfolio_id, number, name, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, updated_at], downstream_pk: [portfolios_dm.portfolio_id] }
├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.name, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.created_at ]
├── stream key: [ portfolios_dm.portfolio_id ]
└── StreamProject { exprs: [portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.name, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.created_at] }
    ├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.name, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.created_at ]
    ├── stream key: [ portfolios_dm.portfolio_id ]
    └── StreamFilter { predicate: IsNull(portfolios_dm.disabled_at) }
        ├── output: [ portfolios_dm.portfolio_id, portfolios_dm.name, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.disabled_at ]
        ├── stream key: [ portfolios_dm.portfolio_id ]
        └── StreamTableScan { table: portfolios_dm, columns: [portfolio_id, name, number, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, disabled_at] }
            ├── output: [ portfolios_dm.portfolio_id, portfolios_dm.name, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.disabled_at ]
            ├── stream key: [ portfolios_dm.portfolio_id ]
            ├── Upstream { output: [ portfolio_id, name, number, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, disabled_at ], stream key: [] }
            └── BatchPlanNode { output: [ portfolio_id, name, number, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, disabled_at ], stream key: [] }