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

← cluster insights objects settled_position_valuations_mv explain
Overview Objects Graph History
materialized view · insights.settled_position_valuations_mv profiled over 5s
seconds (1–30)
Stateful hash join (4 state tables) — consider a temporal join for dimension lookupsDynamic filter — verify it pairs with a temporal condition to clean state
53 operators
Materialize · insights.settled_position_valuations_mv
0% idle 2 actors
Project
2 actors
Project
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · settled_position_series_mv_next.currency_code = fx_rates_sn…
2 actors
HashJoin · LeftOuter · settled_position_series_mv_next.currency_code = fx_rates_sn… 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
Filter · fx_rates_snapshot_mv_next
0% idle 2 actors
StreamScan · fx_rates_snapshot_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
SyncLogStore · LeftOuter · settled_position_series_mv_next.asset_id = asset_latest_pri…
2 actors
HashJoin · LeftOuter · settled_position_series_mv_next.asset_id = asset_latest_pri… 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 · asset_latest_price_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
SyncLogStore · LeftOuter · settled_position_series_mv_next.account_id = settled_cost_b…
2 actors
HashJoin · LeftOuter · settled_position_series_mv_next.account_id = settled_cost_b… 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 · settled_cost_basis_latest_mv
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · settled_position_series_mv_next
2 actors
GroupTopN · settled_position_series_mv_next
0% idle 2 actors
Project · settled_position_series_mv_next
2 actors
DynamicFilter · settled_position_series_mv_next Dynamic filter — verify it pairs with a temporal condition to clean state
0% idle 2 actors
Merge
2 actors
Exchange
0% 2/s 0 actors
Now
0% 2/s 1 actor
Project · settled_position_series_mv_next
2 actors
StreamScan · settled_position_series_mv_next
1% 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 · insights.settled_position_valuations_mv Materialize insights.settled_positi… idle · 2 actors Project Project — · 2 actors Project Project — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · settled_position_series_mv_next.currency_code = fx_rates_sn… SyncLogStore LeftOuter · settled_pos… — · 2 actors HashJoin · LeftOuter · settled_position_series_mv_next.currency_code = fx_rates_sn… HashJoin LeftOuter · settled_pos… 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 Filter · fx_rates_snapshot_mv_next Filter fx_rates_snapshot_mv_ne… idle · 2 actors StreamScan · fx_rates_snapshot_mv_next StreamScan fx_rates_snapshot_mv_ne… 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 SyncLogStore · LeftOuter · settled_position_series_mv_next.asset_id = asset_latest_pri… SyncLogStore LeftOuter · settled_pos… — · 2 actors HashJoin · LeftOuter · settled_position_series_mv_next.asset_id = asset_latest_pri… HashJoin LeftOuter · settled_pos… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · asset_latest_price_mv_next StreamScan asset_latest_price_mv_n… 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 SyncLogStore · LeftOuter · settled_position_series_mv_next.account_id = settled_cost_b… SyncLogStore LeftOuter · settled_pos… — · 2 actors HashJoin · LeftOuter · settled_position_series_mv_next.account_id = settled_cost_b… HashJoin LeftOuter · settled_pos… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · settled_cost_basis_latest_mv StreamScan settled_cost_basis_late… idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · settled_position_series_mv_next Project settled_position_series… — · 2 actors GroupTopN · settled_position_series_mv_next GroupTopN settled_position_series… idle · 2 actors Project · settled_position_series_mv_next Project settled_position_series… — · 2 actors DynamicFilter · settled_position_series_mv_next DynamicFilter settled_position_series… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange 2/s · 0 actors Now Now 2/s · 1 actor Project · settled_position_series_mv_next Project settled_position_series… — · 2 actors StreamScan · settled_position_series_mv_next StreamScan settled_position_series… 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 62780 (Actor 744433,744434)
StreamMaterialize { columns: [account_id, asset_id, currency_code, last_settlement_date, settled_quantity, settled_value, price, price_date, market_value, market_value_system_currency, average_cost_per_unit, average_cost_per_unit_system_currency, baseline_purchased_quantity, cost_basis_date, cost_basis_is_stub, total_cost, total_cost_system_currency, cost_fx_provenance, fx_rates_snapshot_mv_next.target_currency_code(hidden)], stream_key: [currency_code, asset_id, account_id, fx_rates_snapshot_mv_next.target_currency_code], pk_columns: [currency_code, asset_id, account_id, fx_rates_snapshot_mv_next.target_currency_code], pk_conflict: NoCheck }
├── output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, $expr2, $expr3, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.m_is_stub, $expr4, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, fx_rates_snapshot_mv_next.target_currency_code ]
├── stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, fx_rates_snapshot_mv_next.target_currency_code ]
└── StreamProject { exprs: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, $expr2, ($expr2 * Coalesce(fx_rates_snapshot_mv_next.rate, Case((settled_position_series_mv_next.currency_code = 'SAR':Varchar), 1:Int32, null:Int32)::Decimal)) as $expr3, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.m_is_stub, (settled_position_series_mv_next.settled_quantity * settled_cost_basis_latest_mv.average_cost_per_unit) as $expr4, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, fx_rates_snapshot_mv_next.target_currency_code] }
    ├── output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, $expr2, $expr3, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.m_is_stub, $expr4, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, fx_rates_snapshot_mv_next.target_currency_code ]
    ├── stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, fx_rates_snapshot_mv_next.target_currency_code ]
    └── StreamProject { exprs: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, fx_rates_snapshot_mv_next.rate, (settled_position_series_mv_next.settled_quantity * asset_latest_price_mv_next.price) as $expr2, fx_rates_snapshot_mv_next.target_currency_code] }
        ├── output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, fx_rates_snapshot_mv_next.rate, $expr2, fx_rates_snapshot_mv_next.target_currency_code ]
        ├── stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, fx_rates_snapshot_mv_next.target_currency_code ]
        └── MergeExecutor
            ├── output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ]
            └── stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, fx_rates_snapshot_mv_next.target_currency_code ]

Fragment 62781 (Actor 744436,744435)
StreamSyncLogStore { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ], stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, fx_rates_snapshot_mv_next.target_currency_code ] }
└── StreamHashJoin { type: LeftOuter, predicate: settled_position_series_mv_next.currency_code = fx_rates_snapshot_mv_next.source_currency_code }
    ├── output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ]
    ├── stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, fx_rates_snapshot_mv_next.target_currency_code ]
    ├── MergeExecutor { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, asset_latest_price_mv_next.asset_id ], stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id ] }
    └── MergeExecutor { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.target_currency_code ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }

Fragment 62782 (Actor 744440,744439)
StreamLocalityProvider { locality_columns: [settled_position_series_mv_next.currency_code] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, asset_latest_price_mv_next.asset_id ], stream key: [ settled_position_series_mv_next.currency_code, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id ] }
└── MergeExecutor { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, asset_latest_price_mv_next.asset_id ], stream key: [ settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, settled_position_series_mv_next.currency_code ] }

Fragment 62783 (Actor 744491,744492)
StreamSyncLogStore { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, asset_latest_price_mv_next.asset_id ], stream key: [ settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, settled_position_series_mv_next.currency_code ] }
└── StreamHashJoin { type: LeftOuter, predicate: settled_position_series_mv_next.asset_id = asset_latest_price_mv_next.asset_id } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date, asset_latest_price_mv_next.asset_id ], stream key: [ settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, settled_position_series_mv_next.currency_code ] }
    ├── MergeExecutor { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ], stream key: [ settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, settled_position_series_mv_next.currency_code ] }
    └── MergeExecutor { output: [ asset_latest_price_mv_next.asset_id, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date ], stream key: [ asset_latest_price_mv_next.asset_id ] }

Fragment 62784 (Actor 744493,744494)
StreamLocalityProvider { locality_columns: [settled_position_series_mv_next.asset_id] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ], stream key: [ settled_position_series_mv_next.asset_id, settled_position_series_mv_next.account_id, settled_position_series_mv_next.currency_code ] }
└── MergeExecutor { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code ] }

Fragment 62785 (Actor 744502,744501)
StreamSyncLogStore { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code ] }
└── StreamHashJoin { type: LeftOuter, predicate: settled_position_series_mv_next.account_id = settled_cost_basis_latest_mv.account_id AND settled_position_series_mv_next.asset_id = settled_cost_basis_latest_mv.asset_id }
    ├── output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub, settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ]
    ├── stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code ]
    ├── MergeExecutor { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code ] }
    └── MergeExecutor { output: [ settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub ], stream key: [ settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ] }

Fragment 62786 (Actor 744593,744592)
StreamProject { exprs: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code ] }
└── StreamGroupTopN { order: [settled_position_series_mv_next.dim_settlement_date DESC], limit: 1, offset: 0, group_key: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code ] }
    └── StreamProject { exprs: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date ] }
        └── StreamDynamicFilter { predicate: ($expr1 <= now), output: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, $expr1], cleaned_by_watermark: true } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, $expr1 ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date ] }
            ├── StreamProject { exprs: [settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, AtTimeZone(settled_position_series_mv_next.dim_settlement_date::Timestamp, 'UTC':Varchar) as $expr1] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value, $expr1 ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date ] }
            │   └── StreamTableScan { table: settled_position_series_mv_next, columns: [account_id, asset_id, currency_code, dim_settlement_date, settled_quantity, settled_value] } { output: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date, settled_position_series_mv_next.settled_quantity, settled_position_series_mv_next.settled_value ], stream key: [ settled_position_series_mv_next.account_id, settled_position_series_mv_next.asset_id, settled_position_series_mv_next.currency_code, settled_position_series_mv_next.dim_settlement_date ] }
            │       ├── Upstream { output: [ account_id, asset_id, currency_code, dim_settlement_date, settled_quantity, settled_value ], stream key: [] }
            │       └── BatchPlanNode { output: [ account_id, asset_id, currency_code, dim_settlement_date, settled_quantity, settled_value ], stream key: [] }
            └── MergeExecutor { output: [ now ], stream key: [] }

Fragment 62787 (Actor 744507)
StreamNow { output: [ now ], stream key: [] }

Fragment 62788 (Actor 744600,744601)
StreamTableScan { table: settled_cost_basis_latest_mv, columns: [account_id, asset_id, dim_value_date, average_cost_per_unit, average_cost_per_unit_system_currency, total_cost_system_currency, cost_fx_provenance, purchased_quantity, m_is_stub] } { output: [ settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id, settled_cost_basis_latest_mv.dim_value_date, settled_cost_basis_latest_mv.average_cost_per_unit, settled_cost_basis_latest_mv.average_cost_per_unit_system_currency, settled_cost_basis_latest_mv.total_cost_system_currency, settled_cost_basis_latest_mv.cost_fx_provenance, settled_cost_basis_latest_mv.purchased_quantity, settled_cost_basis_latest_mv.m_is_stub ], stream key: [ settled_cost_basis_latest_mv.account_id, settled_cost_basis_latest_mv.asset_id ] }
├── Upstream { output: [ account_id, asset_id, dim_value_date, average_cost_per_unit, average_cost_per_unit_system_currency, total_cost_system_currency, cost_fx_provenance, purchased_quantity, m_is_stub ], stream key: [] }
└── BatchPlanNode { output: [ account_id, asset_id, dim_value_date, average_cost_per_unit, average_cost_per_unit_system_currency, total_cost_system_currency, cost_fx_provenance, purchased_quantity, m_is_stub ], stream key: [] }

Fragment 62789 (Actor 744603,744602)
StreamTableScan { table: asset_latest_price_mv_next, columns: [asset_id, price, price_date] } { output: [ asset_latest_price_mv_next.asset_id, asset_latest_price_mv_next.price, asset_latest_price_mv_next.price_date ], stream key: [ asset_latest_price_mv_next.asset_id ] }
├── Upstream { output: [ asset_id, price, price_date ], stream key: [] }
└── BatchPlanNode { output: [ asset_id, price, price_date ], stream key: [] }

Fragment 62790 (Actor 744521,744520)
StreamLocalityProvider { locality_columns: [fx_rates_snapshot_mv_next.source_currency_code] } { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.target_currency_code ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }
└── MergeExecutor { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.target_currency_code ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }

Fragment 62791 (Actor 744608,744609)
StreamFilter { predicate: (fx_rates_snapshot_mv_next.target_currency_code = 'SAR':Varchar) } { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.target_currency_code ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }
└── StreamTableScan { table: fx_rates_snapshot_mv_next, columns: [source_currency_code, rate, target_currency_code] } { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.target_currency_code ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }
    ├── Upstream { output: [ source_currency_code, rate, target_currency_code ], stream key: [] }
    └── BatchPlanNode { output: [ source_currency_code, rate, target_currency_code ], stream key: [] }