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

← cluster insights objects twrr_by_distribution_mv explain
Overview Objects Graph History
materialized view · insights.twrr_by_distribution_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 lookupsWindow state — add a WHERE rank <= N to bound it
30 operators
Materialize · insights.twrr_by_distribution_mv
0% idle 2 actors
Project
2 actors
Project
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · position_by_distribution_mv_next.account_group_id = flow_by…
2 actors
HashJoin · LeftOuter · position_by_distribution_mv_next.account_group_id = flow_by… Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Filter · flow_by_distribution_mv_next
0% idle 2 actors
StreamScan · flow_by_distribution_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
Filter · Not(IsNull(first_value))
0% idle 2 actors
OverWindow · Not(IsNull(first_value)) Window state — add a WHERE rank <= N to bound it
0% idle 2 actors
LocalityProvider · Not(IsNull(first_value))
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Filter · position_by_distribution_mv_next
0% idle 2 actors
StreamScan · position_by_distribution_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 · insights.twrr_by_distribution_mv Materialize insights.twrr_by_distri… idle · 2 actors Project Project — · 2 actors Project Project — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · position_by_distribution_mv_next.account_group_id = flow_by… SyncLogStore LeftOuter · position_by… — · 2 actors HashJoin · LeftOuter · position_by_distribution_mv_next.account_group_id = flow_by… HashJoin LeftOuter · position_by… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Filter · flow_by_distribution_mv_next Filter flow_by_distribution_mv… idle · 2 actors StreamScan · flow_by_distribution_mv_next StreamScan flow_by_distribution_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 Filter · Not(IsNull(first_value)) Filter Not(IsNull(first_value)) idle · 2 actors OverWindow · Not(IsNull(first_value)) OverWindow Not(IsNull(first_value)) idle · 2 actors LocalityProvider · Not(IsNull(first_value)) LocalityProvider Not(IsNull(first_value)) idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Filter · position_by_distribution_mv_next Filter position_by_distributio… idle · 2 actors StreamScan · position_by_distribution_mv_next StreamScan position_by_distributio… 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 61974 (Actor 740688,740687)
StreamMaterialize { columns: [account_group_id, dim_balance_date, distribution_type, taxonomy_node_id, taxonomy_code, currency_code, market_value, prev_market_value, net_flow, daily_subperiod_return, daily_subperiod_fair_value_return, daily_subperiod_return_system_currency, daily_subperiod_fair_value_return_system_currency, position_by_distribution_mv_next.position_type(hidden), position_by_distribution_mv_next.source_entity_type(hidden), position_by_distribution_mv_next.position_summary_mv_next.source_entity_type(hidden), flow_by_distribution_mv_next.position_type(hidden), flow_by_distribution_mv_next.currency_code(hidden), flow_by_distribution_mv_next.taxonomy_code(hidden)], stream_key: [account_group_id, dim_balance_date, distribution_type, taxonomy_node_id, position_by_distribution_mv_next.position_type, currency_code, position_by_distribution_mv_next.source_entity_type, taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code], pk_columns: [account_group_id, dim_balance_date, distribution_type, taxonomy_node_id, position_by_distribution_mv_next.position_type, currency_code, position_by_distribution_mv_next.source_entity_type, taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code], pk_conflict: NoCheck } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, first_value, $expr1, $expr3, $expr4, $expr5, $expr6, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }
└── StreamProject
└─exprs:
  ┌─position_by_distribution_mv_next.account_group_id
  ├─position_by_distribution_mv_next.dim_balance_date
  ├─position_by_distribution_mv_next.distribution_type
  ├─position_by_distribution_mv_next.taxonomy_node_id
  ├─position_by_distribution_mv_next.taxonomy_code
  ├─position_by_distribution_mv_next.currency_code
  ├─position_by_distribution_mv_next.market_value
  ├─first_value
  ├─$expr1
  ├─Case((IsNull(first_value) OR (first_value = 0:Decimal)), 0:Decimal, (position_by_distribution_mv_next.market_value = 0:Decimal), 0:Decimal, (((position_by_distribution_mv_next.market_value - $expr1) < 0:Decimal) AND ((first_value + $expr1) > 0:Decimal)), Greatest(((position_by_distribution_mv_next.market_value / (first_value + $expr1)) - 1:Decimal), -0.999999999999999999:Decimal), Greatest((((position_by_distribution_mv_next.market_value - $expr1) / first_value) - 1:Decimal), -0.999999999999999999:Decimal)) as $expr3
  ├─Case((IsNull(first_value) OR (first_value = 0:Decimal)), 0:Decimal, (position_by_distribution_mv_next.fair_value = 0:Decimal), 0:Decimal, (((position_by_distribution_mv_next.fair_value - $expr1) < 0:Decimal) AND ((first_value + $expr1) > 0:Decimal)), Greatest(((position_by_distribution_mv_next.fair_value / (first_value + $expr1)) - 1:Decimal), -0.999999999999999999:Decimal), Greatest((((position_by_distribution_mv_next.fair_value - $expr1) / first_value) - 1:Decimal), -0.999999999999999999:Decimal)) as $expr4
  ├─Case((IsNull(first_value) OR (first_value = 0:Decimal)), 0:Decimal, (position_by_distribution_mv_next.market_value_system_currency = 0:Decimal), 0:Decimal, (((position_by_distribution_mv_next.market_value_system_currency - $expr2) < 0:Decimal) AND ((first_value + $expr2) > 0:Decimal)), Greatest(((position_by_distribution_mv_next.market_value_system_currency / (first_value + $expr2)) - 1:Decimal), -0.999999999999999999:Decimal), Greatest((((position_by_distribution_mv_next.market_value_system_currency - $expr2) / first_value) - 1:Decimal), -0.999999999999999999:Decimal)) as $expr5
  ├─Case((IsNull(first_value) OR (first_value = 0:Decimal)), 0:Decimal, (position_by_distribution_mv_next.fair_value_system_currency = 0:Decimal), 0:Decimal, (((position_by_distribution_mv_next.fair_value_system_currency - $expr2) < 0:Decimal) AND ((first_value + $expr2) > 0:Decimal)), Greatest(((position_by_distribution_mv_next.fair_value_system_currency / (first_value + $expr2)) - 1:Decimal), -0.999999999999999999:Decimal), Greatest((((position_by_distribution_mv_next.fair_value_system_currency - $expr2) / first_value) - 1:Decimal), -0.999999999999999999:Decimal)) as $expr6
  ├─position_by_distribution_mv_next.position_type
  ├─position_by_distribution_mv_next.source_entity_type
  ├─position_by_distribution_mv_next.position_summary_mv_next.source_entity_type
  ├─flow_by_distribution_mv_next.position_type
  ├─flow_by_distribution_mv_next.currency_code
  └─flow_by_distribution_mv_next.taxonomy_code
    ├── output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, first_value, $expr1, $expr3, $expr4, $expr5, $expr6, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ]
    ├── stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ]
    └── StreamProject { exprs: [position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, first_value, position_by_distribution_mv_next.fair_value, first_value, position_by_distribution_mv_next.market_value_system_currency, first_value, position_by_distribution_mv_next.fair_value_system_currency, first_value, Coalesce(flow_by_distribution_mv_next.adjusted_net_flow, 0:Decimal) as $expr1, Coalesce(flow_by_distribution_mv_next.adjusted_net_flow_system_currency, 0:Decimal) as $expr2, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code] } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, first_value, position_by_distribution_mv_next.fair_value, first_value, position_by_distribution_mv_next.market_value_system_currency, first_value, position_by_distribution_mv_next.fair_value_system_currency, first_value, $expr1, $expr2, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }
        └── MergeExecutor { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, first_value, first_value, first_value, first_value, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }

Fragment 61975 (Actor 740696,740695)
StreamSyncLogStore { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, first_value, first_value, first_value, first_value, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }
└── StreamHashJoin { type: LeftOuter, predicate: position_by_distribution_mv_next.account_group_id = flow_by_distribution_mv_next.account_group_id AND position_by_distribution_mv_next.dim_balance_date = flow_by_distribution_mv_next.dim_transaction_date AND position_by_distribution_mv_next.distribution_type = flow_by_distribution_mv_next.distribution_type AND position_by_distribution_mv_next.taxonomy_node_id = flow_by_distribution_mv_next.taxonomy_node_id } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, first_value, first_value, first_value, first_value, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }
    ├── MergeExecutor { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, first_value, first_value, first_value, first_value ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
    └── MergeExecutor { output: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }

Fragment 61976 (Actor 740699,740700)
StreamLocalityProvider { locality_columns: [position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id] } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, first_value, first_value, first_value, first_value ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
└── MergeExecutor { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, first_value, first_value, first_value, first_value ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }

Fragment 61977 (Actor 740701,740702)
StreamFilter { predicate: Not(IsNull(first_value)) } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, first_value, first_value, first_value, first_value ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
└── StreamOverWindow { window_functions: [first_value(position_by_distribution_mv_next.market_value) OVER(PARTITION BY position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id ORDER BY position_by_distribution_mv_next.dim_balance_date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING), first_value(position_by_distribution_mv_next.fair_value) OVER(PARTITION BY position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id ORDER BY position_by_distribution_mv_next.dim_balance_date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING), first_value(position_by_distribution_mv_next.market_value_system_currency) OVER(PARTITION BY position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id ORDER BY position_by_distribution_mv_next.dim_balance_date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING), first_value(position_by_distribution_mv_next.fair_value_system_currency) OVER(PARTITION BY position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id ORDER BY position_by_distribution_mv_next.dim_balance_date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING)] } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type, first_value, first_value, first_value, first_value ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
    └── StreamLocalityProvider { locality_columns: [position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id] } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
        └── MergeExecutor { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }

Fragment 61978 (Actor 740706,740705)
StreamFilter { predicate: (position_by_distribution_mv_next.position_type = 'POSITION':Varchar) AND (position_by_distribution_mv_next.source_entity_type = 'portfolio':Varchar) } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
└── StreamTableScan { table: position_by_distribution_mv_next, columns: [account_group_id, dim_balance_date, position_type, distribution_type, taxonomy_node_id, taxonomy_code, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, source_entity_type, position_summary_mv_next.source_entity_type] } { output: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.market_value, position_by_distribution_mv_next.fair_value, position_by_distribution_mv_next.market_value_system_currency, position_by_distribution_mv_next.fair_value_system_currency, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_distribution_mv_next.account_group_id, position_by_distribution_mv_next.dim_balance_date, position_by_distribution_mv_next.position_type, position_by_distribution_mv_next.currency_code, position_by_distribution_mv_next.source_entity_type, position_by_distribution_mv_next.distribution_type, position_by_distribution_mv_next.taxonomy_node_id, position_by_distribution_mv_next.taxonomy_code, position_by_distribution_mv_next.position_summary_mv_next.source_entity_type ] }
    ├── Upstream { output: [ account_group_id, dim_balance_date, position_type, distribution_type, taxonomy_node_id, taxonomy_code, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, source_entity_type, position_summary_mv_next.source_entity_type ], stream key: [] }
    └── BatchPlanNode { output: [ account_group_id, dim_balance_date, position_type, distribution_type, taxonomy_node_id, taxonomy_code, currency_code, market_value, fair_value, market_value_system_currency, fair_value_system_currency, source_entity_type, position_summary_mv_next.source_entity_type ], stream key: [] }

Fragment 61979 (Actor 740704,740703)
StreamLocalityProvider { locality_columns: [flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id] } { output: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ] }
└── MergeExecutor { output: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.taxonomy_code ] }

Fragment 61980 (Actor 740707,740708)
StreamFilter { predicate: (flow_by_distribution_mv_next.position_type = 'POSITION':Varchar) } { output: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.taxonomy_code ] }
└── StreamTableScan { table: flow_by_distribution_mv_next, columns: [account_group_id, dim_transaction_date, distribution_type, taxonomy_node_id, adjusted_net_flow, adjusted_net_flow_system_currency, position_type, currency_code, taxonomy_code] } { output: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.adjusted_net_flow, flow_by_distribution_mv_next.adjusted_net_flow_system_currency, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.taxonomy_code ], stream key: [ flow_by_distribution_mv_next.account_group_id, flow_by_distribution_mv_next.distribution_type, flow_by_distribution_mv_next.taxonomy_node_id, flow_by_distribution_mv_next.position_type, flow_by_distribution_mv_next.currency_code, flow_by_distribution_mv_next.dim_transaction_date, flow_by_distribution_mv_next.taxonomy_code ] }
    ├── Upstream { output: [ account_group_id, dim_transaction_date, distribution_type, taxonomy_node_id, adjusted_net_flow, adjusted_net_flow_system_currency, position_type, currency_code, taxonomy_code ], stream key: [] }
    └── BatchPlanNode { output: [ account_group_id, dim_transaction_date, distribution_type, taxonomy_node_id, adjusted_net_flow, adjusted_net_flow_system_currency, position_type, currency_code, taxonomy_code ], stream key: [] }