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

← cluster asset_service objects asset_adjusted_prices_ft explain
Overview Objects Graph History
table · asset_service.asset_adjusted_prices_ft profiled over 5s
seconds (1–30)

Job is idle — throughput ~0; structure shown.

15 operators
Materialize · asset_service.asset_adjusted_prices_ft
0% idle 2 actors
WatermarkFilter
0% idle 2 actors
Union
0% idle 2 actors
UpstreamSinkUnion
1% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Dml
0% idle 2 actors
Source
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamCdcScan · public
0% idle 1 actor
Merge
1 actor
Exchange
0% idle 0 actors
CdcFilter
0% idle 1 actor
Merge
1 actor
Heat = the operator's output-buffer backpressure over the sampling window. Click a node to fold its subtree.
Materialize · asset_service.asset_adjusted_prices_ft Materialize asset_service.asset_adj… idle · 2 actors WatermarkFilter WatermarkFilter idle · 2 actors Union Union idle · 2 actors UpstreamSinkUnion UpstreamSinkUnion idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Dml Dml idle · 2 actors Source Source idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamCdcScan · public StreamCdcScan public idle · 1 actor Merge Merge — · 1 actor Exchange Exchange idle · 0 actors CdcFilter CdcFilter idle · 1 actor Merge Merge — · 1 actor
Streaming operator plan from EXPLAIN ANALYZE. Node heat = backpressure. Drag to pan, scroll to zoom.
Fragments (DESCRIBE FRAGMENTS) — click to expand
Fragment 54558 (Actor 740025,740024)
StreamMaterialize { columns: [asset_id, date, adjusted_close], stream_key: [asset_id, date], pk_columns: [asset_id, date], pk_conflict: Overwrite, watermark_columns: [date] }
├── output: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date, public.asset_adjusted_prices_ft.adjusted_close ]
├── stream key: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date ]
└── StreamWatermarkFilter [upsert] { watermark_descs: [Desc { column: public.asset_adjusted_prices_ft.date, expr: (public.asset_adjusted_prices_ft.date - '5 years':Interval)::Date }], output_watermarks: [[public.asset_adjusted_prices_ft.date]] }
    ├── output: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date, public.asset_adjusted_prices_ft.adjusted_close ]
    ├── stream key: []
    └── StreamUnion { all: true } { output: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date, public.asset_adjusted_prices_ft.adjusted_close ], stream key: [] }
        ├── MergeExecutor
        │   ├── output: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date, public.asset_adjusted_prices_ft.adjusted_close ]
        │   └── stream key: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date ]
        ├── MergeExecutor { output: [ asset_id, date, adjusted_close ], stream key: [] }
        └── StreamUpstreamSinkUnion { output: [ asset_id, date, adjusted_close ], stream key: [] }

Fragment 54559 (Actor 740026)
StreamCdcTableScan { table: public.asset_adjusted_prices_ft, columns: [asset_id, date, adjusted_close] }
├── output: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date, public.asset_adjusted_prices_ft.adjusted_close ]
├── stream key: [ public.asset_adjusted_prices_ft.asset_id, public.asset_adjusted_prices_ft.date ]
└── MergeExecutor { output: [ payload, _rw_offset, _rw_table_name ], stream key: [] }

Fragment 54560 (Actor 736159)
StreamCdcFilter { output: [ payload, _rw_offset, _rw_table_name ], stream key: [] }
└── Upstream { output: [ payload, _rw_offset, _rw_table_name ], stream key: [] }

Fragment 54561 (Actor 740027,740028)
StreamDml { columns: [asset_id, date, adjusted_close] } { output: [ asset_id, date, adjusted_close ], stream key: [] }
└── StreamSource { output: [ asset_id, date, adjusted_close ], stream key: [] }