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

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

Job is idle — throughput ~0; structure shown.

15 operators
Materialize · asset_service.intraday_foreign_exchange_rates_ft
0% idle 2 actors
WatermarkFilter
0% idle 2 actors
Union
0% idle 2 actors
UpstreamSinkUnion
3% 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.intraday_foreign_exchange_rates_ft Materialize asset_service.intraday_… 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 24979 (Actor 119638,119639)
StreamMaterialize { columns: [source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled], stream_key: [source_currency_code, target_currency_code, as_of_timestamp, value_timestamp], pk_columns: [source_currency_code, target_currency_code, as_of_timestamp], pk_conflict: Overwrite, watermark_columns: [value_timestamp] }
├── output:
│   ┌── public.intraday_foreign_exchange_rates_ft.source_currency_code
│   ├── public.intraday_foreign_exchange_rates_ft.target_currency_code
│   ├── public.intraday_foreign_exchange_rates_ft.value_timestamp
│   ├── public.intraday_foreign_exchange_rates_ft.rate
│   ├── public.intraday_foreign_exchange_rates_ft.as_of_timestamp
│   └── public.intraday_foreign_exchange_rates_ft.is_forward_filled
├── stream key: [ public.intraday_foreign_exchange_rates_ft.source_currency_code, public.intraday_foreign_exchange_rates_ft.target_currency_code, public.intraday_foreign_exchange_rates_ft.as_of_timestamp, public.intraday_foreign_exchange_rates_ft.value_timestamp ]
└── StreamWatermarkFilter [upsert] { watermark_descs: [Desc { column: public.intraday_foreign_exchange_rates_ft.value_timestamp, expr: SubtractWithTimeZone(public.intraday_foreign_exchange_rates_ft.value_timestamp, '00:30:00':Interval, 'UTC':Varchar) }], output_watermarks: [[public.intraday_foreign_exchange_rates_ft.value_timestamp]] }
    ├── output:
    │   ┌── public.intraday_foreign_exchange_rates_ft.source_currency_code
    │   ├── public.intraday_foreign_exchange_rates_ft.target_currency_code
    │   ├── public.intraday_foreign_exchange_rates_ft.value_timestamp
    │   ├── public.intraday_foreign_exchange_rates_ft.rate
    │   ├── public.intraday_foreign_exchange_rates_ft.as_of_timestamp
    │   └── public.intraday_foreign_exchange_rates_ft.is_forward_filled
    ├── stream key: []
    └── StreamUnion { all: true }
        ├── output:
        │   ┌── public.intraday_foreign_exchange_rates_ft.source_currency_code
        │   ├── public.intraday_foreign_exchange_rates_ft.target_currency_code
        │   ├── public.intraday_foreign_exchange_rates_ft.value_timestamp
        │   ├── public.intraday_foreign_exchange_rates_ft.rate
        │   ├── public.intraday_foreign_exchange_rates_ft.as_of_timestamp
        │   └── public.intraday_foreign_exchange_rates_ft.is_forward_filled
        ├── stream key: []
        ├── MergeExecutor
        │   ├── output:
        │   │   ┌── public.intraday_foreign_exchange_rates_ft.source_currency_code
        │   │   ├── public.intraday_foreign_exchange_rates_ft.target_currency_code
        │   │   ├── public.intraday_foreign_exchange_rates_ft.value_timestamp
        │   │   ├── public.intraday_foreign_exchange_rates_ft.rate
        │   │   ├── public.intraday_foreign_exchange_rates_ft.as_of_timestamp
        │   │   └── public.intraday_foreign_exchange_rates_ft.is_forward_filled
        │   └── stream key: [ public.intraday_foreign_exchange_rates_ft.source_currency_code, public.intraday_foreign_exchange_rates_ft.target_currency_code, public.intraday_foreign_exchange_rates_ft.as_of_timestamp ]
        ├── MergeExecutor { output: [ source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled ], stream key: [] }
        └── StreamUpstreamSinkUnion { output: [ source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled ], stream key: [] }

Fragment 24980 (Actor 119640)
StreamCdcTableScan { table: public.intraday_foreign_exchange_rates_ft, columns: [source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled] }
├── output:
│   ┌── public.intraday_foreign_exchange_rates_ft.source_currency_code
│   ├── public.intraday_foreign_exchange_rates_ft.target_currency_code
│   ├── public.intraday_foreign_exchange_rates_ft.value_timestamp
│   ├── public.intraday_foreign_exchange_rates_ft.rate
│   ├── public.intraday_foreign_exchange_rates_ft.as_of_timestamp
│   └── public.intraday_foreign_exchange_rates_ft.is_forward_filled
├── stream key: [ public.intraday_foreign_exchange_rates_ft.source_currency_code, public.intraday_foreign_exchange_rates_ft.target_currency_code, public.intraday_foreign_exchange_rates_ft.as_of_timestamp ]
└── MergeExecutor { output: [ payload, _rw_offset, _rw_table_name ], stream key: [] }

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

Fragment 24982 (Actor 119642,119641)
StreamDml { columns: [source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled] } { output: [ source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled ], stream key: [] }
└── StreamSource { output: [ source_currency_code, target_currency_code, value_timestamp, rate, as_of_timestamp, is_forward_filled ], stream key: [] }