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

← cluster alinma_bff objects book_of_business_portfolios_mv explain
Overview Objects Graph History
materialized view · alinma_bff.book_of_business_portfolios_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
118 operators
Materialize · alinma_bff.book_of_business_portfolios_mv
0% idle 2 actors
Project
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · portfolio_to_account_groups_mv.account_group_id = position_…
2 actors
HashJoin · LeftOuter · 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
Project · position_snapshot_mv_next
2 actors
Filter · position_snapshot_mv_next
0% idle 2 actors
StreamScan · position_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 · portfolios_dm.portfolio_id = portfolio_reference_identifier…
2 actors
HashJoin · LeftOuter · portfolios_dm.portfolio_id = portfolio_reference_identifier… 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 · portfolio_reference_identifiers_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 · portfolios_dm.portfolio_id = portfolio_task_counts_mv.portf…
2 actors
HashJoin · LeftOuter · portfolios_dm.portfolio_id = portfolio_task_counts_mv.portf… 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 · portfolio_task_counts_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 · portfolios_dm.portfolio_id = portfolio_owners_mv.portfolio_…
2 actors
HashJoin · LeftOuter · portfolios_dm.portfolio_id = portfolio_owners_mv.portfolio_… 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 · portfolio_owners_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
TemporalJoin · LeftOuter · portfolios_dm.base_currency_code = currencies_dm.code, nest…
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamScan · currencies_dm
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
TemporalJoin · LeftOuter · portfolios_dm.status_label_id = labels_dm.label_id, nested_…
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamScan · labels_dm
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
TemporalJoin · LeftOuter · portfolios_dm.service_type_id = service_types_dm.service_ty…
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
StreamScan · service_types_dm
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 · portfolios_dm.portfolio_id = portfolio_to_account_groups_mv…
2 actors
HashJoin · Inner · portfolios_dm.portfolio_id = portfolio_to_account_groups_mv… 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
Union
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · portfolios_dm
2 actors
Filter · portfolios_dm
0% idle 2 actors
StreamScan · portfolios_dm
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · portfolio_to_account_groups_mv
2 actors
StreamScan · portfolio_to_account_groups_mv
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · portfolios_dm
2 actors
Filter · portfolios_dm
0% idle 2 actors
StreamScan · portfolios_dm
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Heat = the operator's output-buffer backpressure over the sampling window. Click a node to fold its subtree.
Materialize · alinma_bff.book_of_business_portfolios_mv Materialize alinma_bff.book_of_busi… idle · 2 actors Project Project — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · portfolio_to_account_groups_mv.account_group_id = position_… SyncLogStore LeftOuter · portfolio_t… — · 2 actors HashJoin · LeftOuter · portfolio_to_account_groups_mv.account_group_id = position_… HashJoin LeftOuter · portfolio_t… 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 Project · position_snapshot_mv_next Project position_snapshot_mv_ne… — · 2 actors Filter · position_snapshot_mv_next Filter position_snapshot_mv_ne… idle · 2 actors StreamScan · position_snapshot_mv_next StreamScan position_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 · portfolios_dm.portfolio_id = portfolio_reference_identifier… SyncLogStore LeftOuter · portfolios_… — · 2 actors HashJoin · LeftOuter · portfolios_dm.portfolio_id = portfolio_reference_identifier… HashJoin LeftOuter · portfolios_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · portfolio_reference_identifiers_mv StreamScan portfolio_reference_ide… 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 · portfolios_dm.portfolio_id = portfolio_task_counts_mv.portf… SyncLogStore LeftOuter · portfolios_… — · 2 actors HashJoin · LeftOuter · portfolios_dm.portfolio_id = portfolio_task_counts_mv.portf… HashJoin LeftOuter · portfolios_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · portfolio_task_counts_mv StreamScan portfolio_task_counts_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 · portfolios_dm.portfolio_id = portfolio_owners_mv.portfolio_… SyncLogStore LeftOuter · portfolios_… — · 2 actors HashJoin · LeftOuter · portfolios_dm.portfolio_id = portfolio_owners_mv.portfolio_… HashJoin LeftOuter · portfolios_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · portfolio_owners_mv StreamScan portfolio_owners_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 TemporalJoin · LeftOuter · portfolios_dm.base_currency_code = currencies_dm.code, nest… TemporalJoin LeftOuter · portfolios_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · currencies_dm StreamScan currencies_dm 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 TemporalJoin · LeftOuter · portfolios_dm.status_label_id = labels_dm.label_id, nested_… TemporalJoin LeftOuter · portfolios_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · labels_dm StreamScan labels_dm 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 TemporalJoin · LeftOuter · portfolios_dm.service_type_id = service_types_dm.service_ty… TemporalJoin LeftOuter · portfolios_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · service_types_dm StreamScan service_types_dm 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 · portfolios_dm.portfolio_id = portfolio_to_account_groups_mv… SyncLogStore Inner · portfolios_dm.p… — · 2 actors HashJoin · Inner · portfolios_dm.portfolio_id = portfolio_to_account_groups_mv… HashJoin Inner · portfolios_dm.p… 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 Union Union idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · portfolios_dm Project portfolios_dm — · 2 actors Filter · portfolios_dm Filter portfolios_dm idle · 2 actors StreamScan · portfolios_dm StreamScan portfolios_dm idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · portfolio_to_account_groups_mv Project portfolio_to_account_gr… — · 2 actors StreamScan · portfolio_to_account_groups_mv StreamScan portfolio_to_account_gr… idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · portfolios_dm Project portfolios_dm — · 2 actors Filter · portfolios_dm Filter portfolios_dm idle · 2 actors StreamScan · portfolios_dm StreamScan portfolios_dm idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors
Streaming operator plan from EXPLAIN ANALYZE. Node heat = backpressure. Drag to pan, scroll to zoom.
Fragments (DESCRIBE FRAGMENTS) — click to expand
Fragment 61420 (Actor 738688,738689)
StreamMaterialize { columns: [portfolio_id, number, base_currency_code, service_type_id, service_type, opening_date, closing_date, created_at, account_group_type, status_label_id, status_name_en, status_name_ar, status_color, currency_code, currency_name_en, currency_name_ar, currency_symbol, owners, owner_count, task_active_count, task_high_priority_count, market_value, fair_value, market_value_system_currency, fair_value_system_currency, reference_identifiers, portfolio_to_account_groups_mv.account_group_id(hidden), portfolio_to_account_groups_mv.portfolio_id(hidden), portfolio_to_account_groups_mv.$src(hidden), $src(hidden), position_snapshot_mv_next.holding_values_latest_mv.type_expanded(hidden), position_snapshot_mv_next.flag(hidden)], stream_key: [portfolio_to_account_groups_mv.account_group_id, currency_code, portfolio_id, status_label_id, service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag], pk_columns: [portfolio_to_account_groups_mv.account_group_id, currency_code, portfolio_id, status_label_id, service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag], pk_conflict: NoCheck }
├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, $expr1, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.type, portfolios_dm.status_label_id, labels_dm.name_en, labels_dm.name_ar, labels_dm.color, portfolios_dm.base_currency_code, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, $expr2, $expr3, $expr4, $expr5, $expr6, $expr7, $expr8, $expr9, $expr10, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
└── StreamProject { exprs: [portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, Coalesce(service_types_dm.type, 'UNSPECIFIED':Varchar) as $expr1, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.type, portfolios_dm.status_label_id, labels_dm.name_en, labels_dm.name_ar, labels_dm.color, portfolios_dm.base_currency_code, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, Coalesce(portfolio_owners_mv.owners, '[]':Jsonb) as $expr2, Coalesce(portfolio_owners_mv.owner_count, 0:Int32) as $expr3, Coalesce(portfolio_task_counts_mv.active_count, 0:Int32) as $expr4, Coalesce(portfolio_task_counts_mv.high_priority_count, 0:Int32) as $expr5, Coalesce(position_snapshot_mv_next.market_value, 0:Decimal) as $expr6, Coalesce(position_snapshot_mv_next.fair_value, 0:Decimal) as $expr7, Coalesce(position_snapshot_mv_next.market_value_system_currency, 0:Decimal) as $expr8, Coalesce(position_snapshot_mv_next.fair_value_system_currency, 0:Decimal) as $expr9, Coalesce(portfolio_reference_identifiers_mv.reference_identifiers, '[]':Jsonb) as $expr10, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag] }
    ├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, $expr1, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.type, portfolios_dm.status_label_id, labels_dm.name_en, labels_dm.name_ar, labels_dm.color, portfolios_dm.base_currency_code, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, $expr2, $expr3, $expr4, $expr5, $expr6, $expr7, $expr8, $expr9, $expr10, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
    ├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
    └── MergeExecutor
        ├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
        └── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]

Fragment 61421 (Actor 738691,738690)
StreamSyncLogStore
├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
└── StreamHashJoin { type: LeftOuter, predicate: portfolio_to_account_groups_mv.account_group_id = position_snapshot_mv_next.account_group_id AND portfolios_dm.base_currency_code = position_snapshot_mv_next.currency_code }
    ├── output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
    ├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ]
    ├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_reference_identifiers_mv.portfolio_id ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    └── MergeExecutor { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ] }

Fragment 61422 (Actor 738692,738693)
StreamLocalityProvider { locality_columns: [portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_reference_identifiers_mv.portfolio_id ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.base_currency_code, portfolios_dm.portfolio_id, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_reference_identifiers_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61423 (Actor 739008,739009)
StreamSyncLogStore { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_reference_identifiers_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolios_dm.portfolio_id = portfolio_reference_identifiers_mv.portfolio_id } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_reference_identifiers_mv.reference_identifiers, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_reference_identifiers_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    ├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_task_counts_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    └── MergeExecutor { output: [ portfolio_reference_identifiers_mv.portfolio_id, portfolio_reference_identifiers_mv.reference_identifiers ], stream key: [ portfolio_reference_identifiers_mv.portfolio_id ] }

Fragment 61424 (Actor 739012,739013)
StreamLocalityProvider { locality_columns: [portfolios_dm.portfolio_id] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_task_counts_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_task_counts_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61425 (Actor 739010,739011)
StreamSyncLogStore { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_task_counts_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolios_dm.portfolio_id = portfolio_task_counts_mv.portfolio_id } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_task_counts_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    ├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_owners_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    └── MergeExecutor { output: [ portfolio_task_counts_mv.portfolio_id, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count ], stream key: [ portfolio_task_counts_mv.portfolio_id ] }

Fragment 61426 (Actor 739019,739018)
StreamLocalityProvider { locality_columns: [portfolios_dm.portfolio_id] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_owners_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_owners_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61427 (Actor 739020,739021)
StreamSyncLogStore { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_owners_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolios_dm.portfolio_id = portfolio_owners_mv.portfolio_id } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, portfolio_owners_mv.portfolio_id ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    ├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, currencies_dm.code ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    └── MergeExecutor { output: [ portfolio_owners_mv.portfolio_id, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count ], stream key: [ portfolio_owners_mv.portfolio_id ] }

Fragment 61428 (Actor 739023,739022)
StreamLocalityProvider { locality_columns: [portfolios_dm.portfolio_id] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, currencies_dm.code ], stream key: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, currencies_dm.code ], stream key: [ portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61429 (Actor 740038,740037)
StreamTemporalJoin { type: LeftOuter, append_only: false, predicate: portfolios_dm.base_currency_code = currencies_dm.code, nested_loop: false } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, currencies_dm.code ], stream key: [ portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, labels_dm.label_id ], stream key: [ portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ currencies_dm.code, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol ], stream key: [ currencies_dm.code ] }

Fragment 61430 (Actor 739025,739024)
StreamLocalityProvider { locality_columns: [portfolios_dm.base_currency_code] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, labels_dm.label_id ], stream key: [ portfolios_dm.base_currency_code, portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, labels_dm.label_id ], stream key: [ portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61431 (Actor 737580,737581)
StreamTemporalJoin { type: LeftOuter, append_only: false, predicate: portfolios_dm.status_label_id = labels_dm.label_id, nested_loop: false } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, labels_dm.name_ar, labels_dm.name_en, labels_dm.color, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, labels_dm.label_id ], stream key: [ portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, service_types_dm.service_type_id ], stream key: [ portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ labels_dm.label_id, labels_dm.name_ar, labels_dm.name_en, labels_dm.color ], stream key: [ labels_dm.label_id ] }

Fragment 61432 (Actor 739026,739027)
StreamLocalityProvider { locality_columns: [portfolios_dm.status_label_id] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, service_types_dm.service_type_id ], stream key: [ portfolios_dm.status_label_id, portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, service_types_dm.service_type_id ], stream key: [ portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61433 (Actor 736139,736138)
StreamTemporalJoin { type: LeftOuter, append_only: false, predicate: portfolios_dm.service_type_id = service_types_dm.service_type_id, nested_loop: false } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, service_types_dm.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src, service_types_dm.service_type_id ], stream key: [ portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ service_types_dm.service_type_id, service_types_dm.type ], stream key: [ service_types_dm.service_type_id ] }

Fragment 61434 (Actor 739029,739028)
StreamLocalityProvider { locality_columns: [portfolios_dm.service_type_id] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolios_dm.service_type_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61435 (Actor 739030,739031)
StreamSyncLogStore { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
└── StreamHashJoin { type: Inner, predicate: portfolios_dm.portfolio_id = portfolio_to_account_groups_mv.portfolio_id } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }
    ├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at ], stream key: [ portfolios_dm.portfolio_id ] }
    └── 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.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61436 (Actor 739032,739033)
StreamProject { exprs: [portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at ], stream key: [ portfolios_dm.portfolio_id ] }
└── StreamFilter { predicate: IsNull(portfolios_dm.disabled_at) } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.disabled_at ], stream key: [ portfolios_dm.portfolio_id ] }
    └── StreamTableScan { table: portfolios_dm, columns: [portfolio_id, number, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, disabled_at] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.number, portfolios_dm.base_currency_code, portfolios_dm.service_type_id, portfolios_dm.status_label_id, portfolios_dm.opening_date, portfolios_dm.closing_date, portfolios_dm.created_at, portfolios_dm.disabled_at ], stream key: [ portfolios_dm.portfolio_id ] }
        ├── Upstream { output: [ portfolio_id, number, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, disabled_at ], stream key: [] }
        └── BatchPlanNode { output: [ portfolio_id, number, base_currency_code, service_type_id, status_label_id, opening_date, closing_date, created_at, disabled_at ], stream key: [] }

Fragment 61437 (Actor 739038,739039)
StreamLocalityProvider { locality_columns: [portfolio_to_account_groups_mv.portfolio_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.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $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.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $src ] }

Fragment 61438 (Actor 739051,739050)
StreamUnion { all: true } { 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.portfolio_id, portfolio_to_account_groups_mv.$src, $src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src, $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.portfolio_id, portfolio_to_account_groups_mv.$src, 0:Int32 ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── MergeExecutor { output: [ portfolios_dm.portfolio_id, null:Varchar, 'none':Varchar, portfolios_dm.portfolio_id, null:Int32, 1:Int32 ], stream key: [ portfolios_dm.portfolio_id ] }

Fragment 61439 (Actor 739064,739065)
StreamProject { exprs: [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.portfolio_id, portfolio_to_account_groups_mv.$src, 0:Int32] } { 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.portfolio_id, portfolio_to_account_groups_mv.$src, 0:Int32 ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── 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 61440 (Actor 739069,739068)
StreamProject { exprs: [portfolios_dm.portfolio_id, null:Varchar, 'none':Varchar, portfolios_dm.portfolio_id, null:Int32, 1:Int32] } { output: [ portfolios_dm.portfolio_id, null:Varchar, 'none':Varchar, portfolios_dm.portfolio_id, null:Int32, 1:Int32 ], stream key: [ portfolios_dm.portfolio_id ] }
└── StreamFilter { predicate: IsNull(portfolios_dm.disabled_at) } { output: [ portfolios_dm.portfolio_id, portfolios_dm.disabled_at ], stream key: [ portfolios_dm.portfolio_id ] }
    └── StreamTableScan { table: portfolios_dm, columns: [portfolio_id, disabled_at] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.disabled_at ], stream key: [ portfolios_dm.portfolio_id ] }
        ├── Upstream { output: [ portfolio_id, disabled_at ], stream key: [] }
        └── BatchPlanNode { output: [ portfolio_id, disabled_at ], stream key: [] }

Fragment 61441 (Actor 736134,736135)
StreamTableScan { table: service_types_dm, columns: [service_type_id, type] } { output: [ service_types_dm.service_type_id, service_types_dm.type ], stream key: [ service_types_dm.service_type_id ] }
├── Upstream { output: [ service_type_id, type ], stream key: [] }
└── BatchPlanNode { output: [ service_type_id, type ], stream key: [] }

Fragment 61442 (Actor 737572,737573)
StreamTableScan { table: labels_dm, columns: [label_id, name_ar, name_en, color] } { output: [ labels_dm.label_id, labels_dm.name_ar, labels_dm.name_en, labels_dm.color ], stream key: [ labels_dm.label_id ] }
├── Upstream { output: [ label_id, name_ar, name_en, color ], stream key: [] }
└── BatchPlanNode { output: [ label_id, name_ar, name_en, color ], stream key: [] }

Fragment 61443 (Actor 740052,740051)
StreamTableScan { table: currencies_dm, columns: [code, name_en, name_ar, symbol] } { output: [ currencies_dm.code, currencies_dm.name_en, currencies_dm.name_ar, currencies_dm.symbol ], stream key: [ currencies_dm.code ] }
├── Upstream { output: [ code, name_en, name_ar, symbol ], stream key: [] }
└── BatchPlanNode { output: [ code, name_en, name_ar, symbol ], stream key: [] }

Fragment 61444 (Actor 739076,739077)
StreamTableScan { table: portfolio_owners_mv, columns: [portfolio_id, owners, owner_count] } { output: [ portfolio_owners_mv.portfolio_id, portfolio_owners_mv.owners, portfolio_owners_mv.owner_count ], stream key: [ portfolio_owners_mv.portfolio_id ] }
├── Upstream { output: [ portfolio_id, owners, owner_count ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, owners, owner_count ], stream key: [] }

Fragment 61445 (Actor 739081,739080)
StreamTableScan { table: portfolio_task_counts_mv, columns: [portfolio_id, active_count, high_priority_count] } { output: [ portfolio_task_counts_mv.portfolio_id, portfolio_task_counts_mv.active_count, portfolio_task_counts_mv.high_priority_count ], stream key: [ portfolio_task_counts_mv.portfolio_id ] }
├── Upstream { output: [ portfolio_id, active_count, high_priority_count ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, active_count, high_priority_count ], stream key: [] }

Fragment 61446 (Actor 739083,739082)
StreamTableScan { table: portfolio_reference_identifiers_mv, columns: [portfolio_id, reference_identifiers] } { output: [ portfolio_reference_identifiers_mv.portfolio_id, portfolio_reference_identifiers_mv.reference_identifiers ], stream key: [ portfolio_reference_identifiers_mv.portfolio_id ] }
├── Upstream { output: [ portfolio_id, reference_identifiers ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, reference_identifiers ], stream key: [] }

Fragment 61447 (Actor 739102,739103)
StreamLocalityProvider { locality_columns: [position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code] } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ] }
└── MergeExecutor { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ] }

Fragment 61448 (Actor 739112,739113)
StreamProject { exprs: [position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag] } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ] }
└── StreamFilter { predicate: (position_snapshot_mv_next.position_type = 'POSITION':Varchar) } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag, position_snapshot_mv_next.position_type ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ] }
    └── StreamTableScan { table: position_snapshot_mv_next, columns: [account_group_id, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, holding_values_latest_mv.type_expanded, flag, position_type] } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.fair_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.fair_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag, position_snapshot_mv_next.position_type ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv.type_expanded, position_snapshot_mv_next.flag ] }
        ├── Upstream { output: [ account_group_id, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, holding_values_latest_mv.type_expanded, flag, position_type ], stream key: [] }
        └── BatchPlanNode { output: [ account_group_id, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, holding_values_latest_mv.type_expanded, flag, position_type ], stream key: [] }