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

← cluster alinma_bff objects party_aum_mv explain
Overview Objects Graph History
materialized view · alinma_bff.party_aum_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 lookupsAggregation state — unbounded unless keyed or temporally filtered
45 operators
Materialize · alinma_bff.party_aum_mv
0% idle 2 actors
Project
2 actors
HashAgg Aggregation state — unbounded unless keyed or temporally filtered
0% idle 2 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project
2 actors
Project
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · investment_holdings_latest_mv_next.currency_code = fx_rates…
2 actors
HashJoin · LeftOuter · investment_holdings_latest_mv_next.currency_code = fx_rates… 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 · fx_rates_snapshot_mv_next
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project
2 actors
HashAgg Aggregation state — unbounded unless keyed or temporally filtered
0% idle 2 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · Inner · party_current_account_membership_mv_next.account_id = inves…
2 actors
HashJoin · Inner · party_current_account_membership_mv_next.account_id = inves… 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
StreamScan · investment_holdings_latest_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 · party_current_account_membership_mv_next
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.party_aum_mv Materialize alinma_bff.party_aum_mv idle · 2 actors Project Project — · 2 actors HashAgg HashAgg idle · 2 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project Project — · 2 actors Project Project — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · investment_holdings_latest_mv_next.currency_code = fx_rates… SyncLogStore LeftOuter · investment_… — · 2 actors HashJoin · LeftOuter · investment_holdings_latest_mv_next.currency_code = fx_rates… HashJoin LeftOuter · investment_… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · fx_rates_snapshot_mv_next StreamScan fx_rates_snapshot_mv_ne… idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project Project — · 2 actors HashAgg HashAgg idle · 2 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · Inner · party_current_account_membership_mv_next.account_id = inves… SyncLogStore Inner · party_current_a… — · 2 actors HashJoin · Inner · party_current_account_membership_mv_next.account_id = inves… HashJoin Inner · party_current_a… 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 StreamScan · investment_holdings_latest_mv_next StreamScan investment_holdings_lat… 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 · party_current_account_membership_mv_next StreamScan party_current_account_m… 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 63879 (Actor 746854,746853)
StreamMaterialize { columns: [party_id, account_group_type, aum_market_value, fair_aum_market_value, aum_market_value_system_currency, fair_aum_market_value_system_currency], stream_key: [party_id, account_group_type], pk_columns: [party_id, account_group_type], pk_conflict: NoCheck }
├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, sum($expr2), sum($expr3), sum(sum(investment_holdings_latest_mv_next.market_value_system_currency)), sum(sum(investment_holdings_latest_mv_next.fair_value_system_currency)) ]
├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
└── StreamProject { exprs: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, sum($expr2), sum($expr3), sum(sum(investment_holdings_latest_mv_next.market_value_system_currency)), sum(sum(investment_holdings_latest_mv_next.fair_value_system_currency))] }
    ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, sum($expr2), sum($expr3), sum(sum(investment_holdings_latest_mv_next.market_value_system_currency)), sum(sum(investment_holdings_latest_mv_next.fair_value_system_currency)) ]
    ├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
    └── StreamHashAgg { group_key: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type], aggs: [sum($expr2), sum($expr3), sum(sum(investment_holdings_latest_mv_next.market_value_system_currency)), sum(sum(investment_holdings_latest_mv_next.fair_value_system_currency)), count] }
        ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, sum($expr2), sum($expr3), sum(sum(investment_holdings_latest_mv_next.market_value_system_currency)), sum(sum(investment_holdings_latest_mv_next.fair_value_system_currency)), count ]
        ├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
        └── StreamLocalityProvider { locality_columns: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type] }
            ├── output:
            │   ┌── party_current_account_membership_mv_next.party_id
            │   ├── party_current_account_membership_mv_next.account_group_type
            │   ├── $expr2
            │   ├── $expr3
            │   ├── sum(investment_holdings_latest_mv_next.market_value_system_currency)
            │   ├── sum(investment_holdings_latest_mv_next.fair_value_system_currency)
            │   ├── investment_holdings_latest_mv_next.currency_code
            │   └── party_current_account_membership_mv_next.party_currency
            ├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency ]
            └── MergeExecutor
                ├── output:
                │   ┌── party_current_account_membership_mv_next.party_id
                │   ├── party_current_account_membership_mv_next.account_group_type
                │   ├── $expr2
                │   ├── $expr3
                │   ├── sum(investment_holdings_latest_mv_next.market_value_system_currency)
                │   ├── sum(investment_holdings_latest_mv_next.fair_value_system_currency)
                │   ├── investment_holdings_latest_mv_next.currency_code
                │   └── party_current_account_membership_mv_next.party_currency
                └── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]

Fragment 63880 (Actor 746856,746855)
StreamProject { exprs: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, (sum(investment_holdings_latest_mv_next.market_value) * $expr1) as $expr2, (sum(investment_holdings_latest_mv_next.fair_value) * $expr1) as $expr3, sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency] }
├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, $expr2, $expr3, sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency ]
├── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
└── StreamProject { exprs: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), fx_rates_snapshot_mv_next.rate, Coalesce(fx_rates_snapshot_mv_next.rate, Case((investment_holdings_latest_mv_next.currency_code = party_current_account_membership_mv_next.party_currency), 1:Int32)::Decimal) as $expr1] }
    ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), fx_rates_snapshot_mv_next.rate, $expr1 ]
    ├── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
    └── MergeExecutor
        ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ]
        └── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]

Fragment 63881 (Actor 746858,746857)
StreamSyncLogStore
├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ]
├── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
└── StreamHashJoin { type: LeftOuter, predicate: investment_holdings_latest_mv_next.currency_code = fx_rates_snapshot_mv_next.source_currency_code AND party_current_account_membership_mv_next.party_currency = fx_rates_snapshot_mv_next.target_currency_code }
    ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), fx_rates_snapshot_mv_next.rate, fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ]
    ├── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
    ├── MergeExecutor
    │   ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency) ]
    │   └── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
    └── MergeExecutor { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code, fx_rates_snapshot_mv_next.rate ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }

Fragment 63882 (Actor 746860,746859)
StreamLocalityProvider { locality_columns: [investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency] }
├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency) ]
├── stream key: [ investment_holdings_latest_mv_next.currency_code, party_current_account_membership_mv_next.party_currency, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type ]
└── MergeExecutor
    ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency) ]
    └── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code ]

Fragment 63883 (Actor 746861,746862)
StreamProject { exprs: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency)] }
├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency) ]
├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code ]
└── StreamHashAgg { group_key: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code], aggs: [sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), count] }
    ├── output: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code, sum(investment_holdings_latest_mv_next.market_value), sum(investment_holdings_latest_mv_next.fair_value), sum(investment_holdings_latest_mv_next.market_value_system_currency), sum(investment_holdings_latest_mv_next.fair_value_system_currency), count ]
    ├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code ]
    └── StreamLocalityProvider { locality_columns: [party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.account_group_type, party_current_account_membership_mv_next.party_currency, investment_holdings_latest_mv_next.currency_code] }
        ├── output:
        │   ┌── party_current_account_membership_mv_next.party_id
        │   ├── party_current_account_membership_mv_next.account_group_type
        │   ├── party_current_account_membership_mv_next.party_currency
        │   ├── investment_holdings_latest_mv_next.currency_code
        │   ├── investment_holdings_latest_mv_next.market_value
        │   ├── investment_holdings_latest_mv_next.fair_value
        │   ├── investment_holdings_latest_mv_next.market_value_system_currency
        │   ├── investment_holdings_latest_mv_next.fair_value_system_currency
        │   ├── party_current_account_membership_mv_next.account_id
        │   ├── party_current_account_membership_mv_next.customer_relationship_id
        │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
        │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
        │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
        │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
        │   ├── party_current_account_membership_mv_next.$src
        │   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
        │   ├── investment_holdings_latest_mv_next.account_id
        │   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
        │   ├── investment_holdings_latest_mv_next.asset_id
        │   └── investment_holdings_latest_mv_next.type
        ├── stream key:
        │   ┌── party_current_account_membership_mv_next.party_id
        │   ├── party_current_account_membership_mv_next.account_group_type
        │   ├── party_current_account_membership_mv_next.party_currency
        │   ├── investment_holdings_latest_mv_next.currency_code
        │   ├── party_current_account_membership_mv_next.account_id
        │   ├── party_current_account_membership_mv_next.customer_relationship_id
        │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
        │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
        │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
        │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
        │   ├── party_current_account_membership_mv_next.$src
        │   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
        │   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
        │   ├── investment_holdings_latest_mv_next.asset_id
        │   └── investment_holdings_latest_mv_next.type
        └── MergeExecutor
            ├── output:
            │   ┌── party_current_account_membership_mv_next.party_id
            │   ├── party_current_account_membership_mv_next.account_group_type
            │   ├── party_current_account_membership_mv_next.party_currency
            │   ├── investment_holdings_latest_mv_next.currency_code
            │   ├── investment_holdings_latest_mv_next.market_value
            │   ├── investment_holdings_latest_mv_next.fair_value
            │   ├── investment_holdings_latest_mv_next.market_value_system_currency
            │   ├── investment_holdings_latest_mv_next.fair_value_system_currency
            │   ├── party_current_account_membership_mv_next.account_id
            │   ├── party_current_account_membership_mv_next.customer_relationship_id
            │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
            │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
            │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
            │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
            │   ├── party_current_account_membership_mv_next.$src
            │   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
            │   ├── investment_holdings_latest_mv_next.account_id
            │   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
            │   ├── investment_holdings_latest_mv_next.asset_id
            │   └── investment_holdings_latest_mv_next.type
            └── stream key:
                ┌── party_current_account_membership_mv_next.account_id
                ├── party_current_account_membership_mv_next.party_id
                ├── party_current_account_membership_mv_next.customer_relationship_id
                ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
                ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
                ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
                ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
                ├── party_current_account_membership_mv_next.$src
                ├── party_current_account_membership_mv_next.lifecycle_profiles.id
                ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
                ├── investment_holdings_latest_mv_next.asset_id
                └── investment_holdings_latest_mv_next.type

Fragment 63884 (Actor 746864,746863)
StreamSyncLogStore
├── output:
│   ┌── party_current_account_membership_mv_next.party_id
│   ├── party_current_account_membership_mv_next.account_group_type
│   ├── party_current_account_membership_mv_next.party_currency
│   ├── investment_holdings_latest_mv_next.currency_code
│   ├── investment_holdings_latest_mv_next.market_value
│   ├── investment_holdings_latest_mv_next.fair_value
│   ├── investment_holdings_latest_mv_next.market_value_system_currency
│   ├── investment_holdings_latest_mv_next.fair_value_system_currency
│   ├── party_current_account_membership_mv_next.account_id
│   ├── party_current_account_membership_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
│   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
│   ├── party_current_account_membership_mv_next.$src
│   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
│   ├── investment_holdings_latest_mv_next.account_id
│   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
│   ├── investment_holdings_latest_mv_next.asset_id
│   └── investment_holdings_latest_mv_next.type
├── stream key:
│   ┌── party_current_account_membership_mv_next.account_id
│   ├── party_current_account_membership_mv_next.party_id
│   ├── party_current_account_membership_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
│   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
│   ├── party_current_account_membership_mv_next.$src
│   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
│   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
│   ├── investment_holdings_latest_mv_next.asset_id
│   └── investment_holdings_latest_mv_next.type
└── StreamHashJoin { type: Inner, predicate: party_current_account_membership_mv_next.account_id = investment_holdings_latest_mv_next.account_id }
    ├── output:
    │   ┌── party_current_account_membership_mv_next.party_id
    │   ├── party_current_account_membership_mv_next.account_group_type
    │   ├── party_current_account_membership_mv_next.party_currency
    │   ├── investment_holdings_latest_mv_next.currency_code
    │   ├── investment_holdings_latest_mv_next.market_value
    │   ├── investment_holdings_latest_mv_next.fair_value
    │   ├── investment_holdings_latest_mv_next.market_value_system_currency
    │   ├── investment_holdings_latest_mv_next.fair_value_system_currency
    │   ├── party_current_account_membership_mv_next.account_id
    │   ├── party_current_account_membership_mv_next.customer_relationship_id
    │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
    │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
    │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
    │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
    │   ├── party_current_account_membership_mv_next.$src
    │   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
    │   ├── investment_holdings_latest_mv_next.account_id
    │   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
    │   ├── investment_holdings_latest_mv_next.asset_id
    │   └── investment_holdings_latest_mv_next.type
    ├── stream key:
    │   ┌── party_current_account_membership_mv_next.account_id
    │   ├── party_current_account_membership_mv_next.party_id
    │   ├── party_current_account_membership_mv_next.customer_relationship_id
    │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
    │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
    │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
    │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
    │   ├── party_current_account_membership_mv_next.$src
    │   ├── party_current_account_membership_mv_next.lifecycle_profiles.id
    │   ├── investment_holdings_latest_mv_next.accounts_dm.product_type_id
    │   ├── investment_holdings_latest_mv_next.asset_id
    │   └── investment_holdings_latest_mv_next.type
    ├── MergeExecutor
    │   ├── output:
    │   │   ┌── party_current_account_membership_mv_next.party_id
    │   │   ├── party_current_account_membership_mv_next.account_id
    │   │   ├── party_current_account_membership_mv_next.account_group_type
    │   │   ├── party_current_account_membership_mv_next.party_currency
    │   │   ├── party_current_account_membership_mv_next.customer_relationship_id
    │   │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
    │   │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
    │   │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
    │   │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
    │   │   ├── party_current_account_membership_mv_next.$src
    │   │   └── party_current_account_membership_mv_next.lifecycle_profiles.id
    │   └── stream key: [ party_current_account_membership_mv_next.account_id, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_involvements_dm.entity_id, party_current_account_membership_mv_next.open_accounts_mv.is_restricted, party_current_account_membership_mv_next.$src, party_current_account_membership_mv_next.lifecycle_profiles.id ]
    └── MergeExecutor
        ├── output: [ investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.currency_code, investment_holdings_latest_mv_next.market_value, investment_holdings_latest_mv_next.fair_value, investment_holdings_latest_mv_next.market_value_system_currency, investment_holdings_latest_mv_next.fair_value_system_currency, investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]
        └── stream key: [ investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]

Fragment 63885 (Actor 745669,745668)
StreamLocalityProvider { locality_columns: [party_current_account_membership_mv_next.account_id] }
├── output:
│   ┌── party_current_account_membership_mv_next.party_id
│   ├── party_current_account_membership_mv_next.account_id
│   ├── party_current_account_membership_mv_next.account_group_type
│   ├── party_current_account_membership_mv_next.party_currency
│   ├── party_current_account_membership_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
│   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
│   ├── party_current_account_membership_mv_next.$src
│   └── party_current_account_membership_mv_next.lifecycle_profiles.id
├── stream key: [ party_current_account_membership_mv_next.account_id, party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_involvements_dm.entity_id, party_current_account_membership_mv_next.open_accounts_mv.is_restricted, party_current_account_membership_mv_next.$src, party_current_account_membership_mv_next.lifecycle_profiles.id ]
└── MergeExecutor
    ├── output:
    │   ┌── party_current_account_membership_mv_next.party_id
    │   ├── party_current_account_membership_mv_next.account_id
    │   ├── party_current_account_membership_mv_next.account_group_type
    │   ├── party_current_account_membership_mv_next.party_currency
    │   ├── party_current_account_membership_mv_next.customer_relationship_id
    │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
    │   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
    │   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
    │   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
    │   ├── party_current_account_membership_mv_next.$src
    │   └── party_current_account_membership_mv_next.lifecycle_profiles.id
    └── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_involvements_dm.entity_id, party_current_account_membership_mv_next.open_accounts_mv.is_restricted, party_current_account_membership_mv_next.$src, party_current_account_membership_mv_next.lifecycle_profiles.id ]

Fragment 63886 (Actor 745902,745903)
StreamTableScan { table: party_current_account_membership_mv_next, columns: [party_id, account_id, account_group_type, party_currency, customer_relationship_id, party_active_customer_relationships_mv_next.party_id, party_active_customer_relationships_mv_next.customer_relationship_id, party_involvements_dm.entity_id, open_accounts_mv.is_restricted, $src, lifecycle_profiles.id] }
├── output:
│   ┌── party_current_account_membership_mv_next.party_id
│   ├── party_current_account_membership_mv_next.account_id
│   ├── party_current_account_membership_mv_next.account_group_type
│   ├── party_current_account_membership_mv_next.party_currency
│   ├── party_current_account_membership_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id
│   ├── party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id
│   ├── party_current_account_membership_mv_next.party_involvements_dm.entity_id
│   ├── party_current_account_membership_mv_next.open_accounts_mv.is_restricted
│   ├── party_current_account_membership_mv_next.$src
│   └── party_current_account_membership_mv_next.lifecycle_profiles.id
├── stream key: [ party_current_account_membership_mv_next.party_id, party_current_account_membership_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.party_id, party_current_account_membership_mv_next.party_active_customer_relationships_mv_next.customer_relationship_id, party_current_account_membership_mv_next.party_involvements_dm.entity_id, party_current_account_membership_mv_next.open_accounts_mv.is_restricted, party_current_account_membership_mv_next.$src, party_current_account_membership_mv_next.lifecycle_profiles.id ]
├── Upstream { output: [ party_id, account_id, account_group_type, party_currency, customer_relationship_id, party_active_customer_relationships_mv_next.party_id, party_active_customer_relationships_mv_next.customer_relationship_id, party_involvements_dm.entity_id, open_accounts_mv.is_restricted, $src, lifecycle_profiles.id ], stream key: [] }
└── BatchPlanNode { output: [ party_id, account_id, account_group_type, party_currency, customer_relationship_id, party_active_customer_relationships_mv_next.party_id, party_active_customer_relationships_mv_next.customer_relationship_id, party_involvements_dm.entity_id, open_accounts_mv.is_restricted, $src, lifecycle_profiles.id ], stream key: [] }

Fragment 63887 (Actor 745734,745735)
StreamLocalityProvider { locality_columns: [investment_holdings_latest_mv_next.account_id] }
├── output: [ investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.currency_code, investment_holdings_latest_mv_next.market_value, investment_holdings_latest_mv_next.fair_value, investment_holdings_latest_mv_next.market_value_system_currency, investment_holdings_latest_mv_next.fair_value_system_currency, investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]
├── stream key: [ investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]
└── MergeExecutor
    ├── output: [ investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.currency_code, investment_holdings_latest_mv_next.market_value, investment_holdings_latest_mv_next.fair_value, investment_holdings_latest_mv_next.market_value_system_currency, investment_holdings_latest_mv_next.fair_value_system_currency, investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]
    └── stream key: [ investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]

Fragment 63888 (Actor 745745,745744)
StreamTableScan { table: investment_holdings_latest_mv_next, columns: [account_id, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, accounts_dm.product_type_id, asset_id, type] }
├── output: [ investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.currency_code, investment_holdings_latest_mv_next.market_value, investment_holdings_latest_mv_next.fair_value, investment_holdings_latest_mv_next.market_value_system_currency, investment_holdings_latest_mv_next.fair_value_system_currency, investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]
├── stream key: [ investment_holdings_latest_mv_next.accounts_dm.product_type_id, investment_holdings_latest_mv_next.account_id, investment_holdings_latest_mv_next.asset_id, investment_holdings_latest_mv_next.type ]
├── Upstream { output: [ account_id, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, accounts_dm.product_type_id, asset_id, type ], stream key: [] }
└── BatchPlanNode { output: [ account_id, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, accounts_dm.product_type_id, asset_id, type ], stream key: [] }

Fragment 63889 (Actor 745910,745911)
StreamTableScan { table: fx_rates_snapshot_mv_next, columns: [source_currency_code, target_currency_code, rate] } { output: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code, fx_rates_snapshot_mv_next.rate ], stream key: [ fx_rates_snapshot_mv_next.source_currency_code, fx_rates_snapshot_mv_next.target_currency_code ] }
├── Upstream { output: [ source_currency_code, target_currency_code, rate ], stream key: [] }
└── BatchPlanNode { output: [ source_currency_code, target_currency_code, rate ], stream key: [] }