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

← cluster alinma_bff objects report_holdings_daily_mv explain
Overview Objects Graph History
materialized view · alinma_bff.report_holdings_daily_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
46 operators
Materialize · alinma_bff.report_holdings_daily_mv
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · position_by_asset_mv_next.asset_id = asset_price_with_lag_m…
2 actors
HashJoin · LeftOuter · position_by_asset_mv_next.asset_id = asset_price_with_lag_m… 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_price_with_lag_mv
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 · position_by_asset_mv_next.asset_id = assets_dm_next.id
2 actors
HashJoin · LeftOuter · position_by_asset_mv_next.asset_id = assets_dm_next.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 · assets_dm_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 · Inner · portfolio_to_account_groups_mv.account_group_id = position_…
2 actors
HashJoin · Inner · portfolio_to_account_groups_mv.account_group_id = position_… 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 · position_by_asset_mv_next
0% idle 2 actors
StreamScan · position_by_asset_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
StreamScan · portfolio_to_account_groups_mv
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.report_holdings_daily_mv Materialize alinma_bff.report_holdi… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · position_by_asset_mv_next.asset_id = asset_price_with_lag_m… SyncLogStore LeftOuter · position_by… — · 2 actors HashJoin · LeftOuter · position_by_asset_mv_next.asset_id = asset_price_with_lag_m… HashJoin LeftOuter · position_by… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · asset_price_with_lag_mv StreamScan asset_price_with_lag_mv 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 · position_by_asset_mv_next.asset_id = assets_dm_next.id SyncLogStore LeftOuter · position_by… — · 2 actors HashJoin · LeftOuter · position_by_asset_mv_next.asset_id = assets_dm_next.id HashJoin LeftOuter · position_by… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · assets_dm_next StreamScan assets_dm_next 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 · Inner · portfolio_to_account_groups_mv.account_group_id = position_… SyncLogStore Inner · portfolio_to_ac… — · 2 actors HashJoin · Inner · portfolio_to_account_groups_mv.account_group_id = position_… HashJoin Inner · portfolio_to_ac… 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 · position_by_asset_mv_next Filter position_by_asset_mv_ne… idle · 2 actors StreamScan · position_by_asset_mv_next StreamScan position_by_asset_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 StreamScan · portfolio_to_account_groups_mv StreamScan portfolio_to_account_gr… 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 64409 (Actor 747519,747518)
StreamMaterialize
├─columns: [portfolio_id, account_group_type, dim_balance_date, asset_id, asset_name_en, asset_name_ar, asset_type, ticker, isin, asset_currency, currency_code, market_value, total_average_cost, fair_value, accrued_value, market_value_system_currency, fair_value_system_currency, market_value_asset_currency, fair_value_asset_currency, total_average_cost_asset_currency, quantity, weight, fair_value_weight, unit_price, portfolio_to_account_groups_mv.account_group_id(hidden), portfolio_to_account_groups_mv.$src(hidden), position_by_asset_mv_next.position_type(hidden), position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded(hidden), position_by_asset_mv_next.source_entity_type(hidden), position_by_asset_mv_next.position_values_mv_next.position_type_expanded(hidden), position_by_asset_mv_next.flag(hidden), position_by_asset_mv_next.position_summary_mv_next.source_entity_type(hidden), asset_price_with_lag_mv.asset_id(hidden), asset_price_with_lag_mv.fact_date(hidden)]
├─stream_key: [asset_id, dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type]
├─pk_columns: [asset_id, dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type]
└─pk_conflict: NoCheck
├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, asset_price_with_lag_mv.adjusted_last_close_price, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date ]
├── stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
└── MergeExecutor
    ├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, asset_price_with_lag_mv.adjusted_last_close_price, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date ]
    └── stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]

Fragment 64410 (Actor 747516,747517)
StreamSyncLogStore
├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, asset_price_with_lag_mv.adjusted_last_close_price, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date ]
├── stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
└── StreamHashJoin { type: LeftOuter, predicate: position_by_asset_mv_next.asset_id = asset_price_with_lag_mv.asset_id AND position_by_asset_mv_next.dim_balance_date = asset_price_with_lag_mv.fact_date }
    ├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, asset_price_with_lag_mv.adjusted_last_close_price, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date ]
    ├── stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
    ├── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, assets_dm_next.id ], stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
    └── MergeExecutor { output: [ asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date, asset_price_with_lag_mv.adjusted_last_close_price ], stream key: [ asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date ] }

Fragment 64411 (Actor 747523,747522)
StreamLocalityProvider { locality_columns: [position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date] }
├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, assets_dm_next.id ]
├── stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.dim_balance_date, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
└── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, assets_dm_next.id ], stream key: [ position_by_asset_mv_next.asset_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }

Fragment 64412 (Actor 747524,747525)
StreamSyncLogStore { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, assets_dm_next.id ], stream key: [ position_by_asset_mv_next.asset_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
└── StreamHashJoin { type: LeftOuter, predicate: position_by_asset_mv_next.asset_id = assets_dm_next.id }
    ├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type, assets_dm_next.id ]
    ├── stream key: [ position_by_asset_mv_next.asset_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
    ├── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.asset_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
    └── MergeExecutor { output: [ assets_dm_next.id, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin ], stream key: [ assets_dm_next.id ] }

Fragment 64413 (Actor 747630,747629)
StreamLocalityProvider { locality_columns: [position_by_asset_mv_next.asset_id] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.asset_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
└── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }

Fragment 64414 (Actor 747632,747631)
StreamSyncLogStore { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
└── StreamHashJoin { type: Inner, predicate: portfolio_to_account_groups_mv.account_group_id = position_by_asset_mv_next.account_group_id }
    ├── output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.type, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
    ├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
    ├── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
    └── MergeExecutor { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }

Fragment 64415 (Actor 747634,747633)
StreamLocalityProvider { locality_columns: [portfolio_to_account_groups_mv.account_group_id] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }

Fragment 64416 (Actor 747637,747638)
StreamTableScan { table: portfolio_to_account_groups_mv, columns: [portfolio_id, account_group_id, type, $src] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
├── Upstream { output: [ portfolio_id, account_group_id, type, $src ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, account_group_id, type, $src ], stream key: [] }

Fragment 64417 (Actor 747635,747636)
StreamLocalityProvider { locality_columns: [position_by_asset_mv_next.account_group_id] } { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
└── MergeExecutor { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }

Fragment 64418 (Actor 747640,747639)
StreamFilter { predicate: (position_by_asset_mv_next.position_type = 'POSITION':Varchar) AND (position_by_asset_mv_next.source_entity_type = 'portfolio':Varchar) } { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
└── StreamTableScan { table: position_by_asset_mv_next, columns: [account_group_id, dim_balance_date, asset_id, asset_currency, currency_code, market_value, total_average_cost, fair_value, accrued_value, market_value_system_currency, fair_value_system_currency, market_value_asset_currency, total_average_cost_asset_currency, fair_value_asset_currency, quantity, weight, fair_value_weight, position_type, position_values_mv_next.holding_currency_expanded, source_entity_type, position_values_mv_next.position_type_expanded, flag, position_summary_mv_next.source_entity_type] }
    ├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.total_average_cost, position_by_asset_mv_next.fair_value, position_by_asset_mv_next.accrued_value, position_by_asset_mv_next.market_value_system_currency, position_by_asset_mv_next.fair_value_system_currency, position_by_asset_mv_next.market_value_asset_currency, position_by_asset_mv_next.total_average_cost_asset_currency, position_by_asset_mv_next.fair_value_asset_currency, position_by_asset_mv_next.quantity, position_by_asset_mv_next.weight, position_by_asset_mv_next.fair_value_weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
    ├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
    ├── Upstream { output: [ account_group_id, dim_balance_date, asset_id, asset_currency, currency_code, market_value, total_average_cost, fair_value, accrued_value, market_value_system_currency, fair_value_system_currency, market_value_asset_currency, total_average_cost_asset_currency, fair_value_asset_currency, quantity, weight, fair_value_weight, position_type, position_values_mv_next.holding_currency_expanded, source_entity_type, position_values_mv_next.position_type_expanded, flag, position_summary_mv_next.source_entity_type ], stream key: [] }
    └── BatchPlanNode { output: [ account_group_id, dim_balance_date, asset_id, asset_currency, currency_code, market_value, total_average_cost, fair_value, accrued_value, market_value_system_currency, fair_value_system_currency, market_value_asset_currency, total_average_cost_asset_currency, fair_value_asset_currency, quantity, weight, fair_value_weight, position_type, position_values_mv_next.holding_currency_expanded, source_entity_type, position_values_mv_next.position_type_expanded, flag, position_summary_mv_next.source_entity_type ], stream key: [] }

Fragment 64419 (Actor 747643,747644)
StreamTableScan { table: assets_dm_next, columns: [id, name_en, name_ar, type, ticker, isin] } { output: [ assets_dm_next.id, assets_dm_next.name_en, assets_dm_next.name_ar, assets_dm_next.type, assets_dm_next.ticker, assets_dm_next.isin ], stream key: [ assets_dm_next.id ] }
├── Upstream { output: [ id, name_en, name_ar, type, ticker, isin ], stream key: [] }
└── BatchPlanNode { output: [ id, name_en, name_ar, type, ticker, isin ], stream key: [] }

Fragment 64420 (Actor 747646,747645)
StreamTableScan { table: asset_price_with_lag_mv, columns: [asset_id, fact_date, adjusted_last_close_price] } { output: [ asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date, asset_price_with_lag_mv.adjusted_last_close_price ], stream key: [ asset_price_with_lag_mv.asset_id, asset_price_with_lag_mv.fact_date ] }
├── Upstream { output: [ asset_id, fact_date, adjusted_last_close_price ], stream key: [] }
└── BatchPlanNode { output: [ asset_id, fact_date, adjusted_last_close_price ], stream key: [] }