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

← cluster insights objects flow_by_distribution_mv explain
Overview Objects Graph History
materialized view · insights.flow_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 lookupsAggregation state — unbounded unless keyed or temporally filteredWindow state — add a WHERE rank <= N to bound it
31 operators
Materialize · insights.flow_by_distribution_mv
0% idle 2 actors
OverWindow Window state — add a WHERE rank <= N to bound it
0% idle 2 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
Project
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · Inner · flow_asset_values_mv_next.asset_id = asset_distributions_fo…
2 actors
HashJoin · Inner · flow_asset_values_mv_next.asset_id = asset_distributions_fo… 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 · asset_distributions_for_consumers_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
StreamScan · flow_asset_values_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.flow_by_distribution_mv Materialize insights.flow_by_distri… idle · 2 actors OverWindow OverWindow idle · 2 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 Project Project — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · Inner · flow_asset_values_mv_next.asset_id = asset_distributions_fo… SyncLogStore Inner · flow_asset_valu… — · 2 actors HashJoin · Inner · flow_asset_values_mv_next.asset_id = asset_distributions_fo… HashJoin Inner · flow_asset_valu… 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 · asset_distributions_for_consumers_mv StreamScan asset_distributions_for… 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 · flow_asset_values_mv_next StreamScan flow_asset_values_mv_ne… 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 61692 (Actor 739869,739868)
StreamMaterialize { columns: [account_group_id, dim_transaction_date, distribution_type, taxonomy_node_id, taxonomy_code, position_type, currency_code, adjusted_net_flow, adjusted_net_flow_system_currency, cumulative_adjusted_netflow, cumulative_adjusted_netflow_system_currency], stream_key: [account_group_id, distribution_type, taxonomy_node_id, position_type, currency_code, dim_transaction_date, taxonomy_code], pk_columns: [account_group_id, distribution_type, taxonomy_node_id, position_type, currency_code, dim_transaction_date, taxonomy_code], pk_conflict: NoCheck }
├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2), sum, sum ]
├── stream key: [ flow_asset_values_mv_next.account_group_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.taxonomy_code ]
└── StreamOverWindow { window_functions: [sum(sum($expr1)) OVER(PARTITION BY flow_asset_values_mv_next.account_group_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency ORDER BY flow_asset_values_mv_next.dim_transaction_date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), sum(sum($expr2)) OVER(PARTITION BY flow_asset_values_mv_next.account_group_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency ORDER BY flow_asset_values_mv_next.dim_transaction_date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)] }
    ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2), sum, sum ]
    ├── stream key: [ flow_asset_values_mv_next.account_group_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.taxonomy_code ]
    └── StreamLocalityProvider { locality_columns: [flow_asset_values_mv_next.account_group_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency] }
        ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2) ]
        ├── stream key: [ flow_asset_values_mv_next.account_group_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.taxonomy_code ]
        └── MergeExecutor { output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2) ], stream key: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency ] }

Fragment 61693 (Actor 739879,739878)
StreamProject { exprs: [flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2)] }
├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2) ]
├── stream key: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency ]
└── StreamHashAgg { group_key: [flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency], aggs: [sum($expr1), sum($expr2), count] }
    ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, sum($expr1), sum($expr2), count ]
    ├── stream key: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency ]
    └── StreamLocalityProvider { locality_columns: [flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency] }
        ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, $expr1, $expr2, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
        ├── stream key: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
        └── MergeExecutor
            ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, $expr1, $expr2, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
            └── stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]

Fragment 61694 (Actor 739881,739880)
StreamProject { exprs: [flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, (flow_asset_values_mv_next.net_value_group * asset_distributions_for_consumers_mv.share) as $expr1, (flow_asset_values_mv_next.net_value_system * asset_distributions_for_consumers_mv.share) as $expr2, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date] }
├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, $expr1, $expr2, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
├── stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
└── MergeExecutor
    ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
    └── stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]

Fragment 61695 (Actor 739882,739883)
StreamSyncLogStore
├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
├── stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
└── StreamHashJoin { type: Inner, predicate: flow_asset_values_mv_next.asset_id = asset_distributions_for_consumers_mv.asset_id AND (flow_asset_values_mv_next.dim_transaction_date >= asset_distributions_for_consumers_mv.effective_start_date) AND (flow_asset_values_mv_next.dim_transaction_date < asset_distributions_for_consumers_mv.effective_end_date) }
    ├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
    ├── stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
    ├── MergeExecutor { output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag ], stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag ] }
    └── MergeExecutor { output: [ asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.effective_start_date, asset_distributions_for_consumers_mv.effective_end_date, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension ], stream key: [ asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ] }

Fragment 61696 (Actor 739885,739884)
StreamLocalityProvider { locality_columns: [flow_asset_values_mv_next.asset_id] } { output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag ], stream key: [ flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag ] }
└── MergeExecutor { output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag ], stream key: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag ] }

Fragment 61697 (Actor 739891,739890)
StreamTableScan { table: flow_asset_values_mv_next, columns: [account_group_id, dim_transaction_date, asset_id, position_type, group_currency, net_value_group, net_value_system, asset_type, flow_values_mv_next.position_type_expanded, flag] }
├── output: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.position_type, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.net_value_group, flow_asset_values_mv_next.net_value_system, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.flag ]
├── stream key: [ flow_asset_values_mv_next.account_group_id, flow_asset_values_mv_next.dim_transaction_date, flow_asset_values_mv_next.asset_id, flow_asset_values_mv_next.asset_type, flow_asset_values_mv_next.flow_values_mv_next.position_type_expanded, flow_asset_values_mv_next.group_currency, flow_asset_values_mv_next.flag ]
├── Upstream { output: [ account_group_id, dim_transaction_date, asset_id, position_type, group_currency, net_value_group, net_value_system, asset_type, flow_values_mv_next.position_type_expanded, flag ], stream key: [] }
└── BatchPlanNode { output: [ account_group_id, dim_transaction_date, asset_id, position_type, group_currency, net_value_group, net_value_system, asset_type, flow_values_mv_next.position_type_expanded, flag ], stream key: [] }

Fragment 61698 (Actor 739887,739886)
StreamLocalityProvider { locality_columns: [asset_distributions_for_consumers_mv.asset_id] } { output: [ asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.effective_start_date, asset_distributions_for_consumers_mv.effective_end_date, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension ], stream key: [ asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ] }
└── MergeExecutor { output: [ asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.effective_start_date, asset_distributions_for_consumers_mv.effective_end_date, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension ], stream key: [ asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ] }

Fragment 61699 (Actor 739888,739889)
StreamTableScan { table: asset_distributions_for_consumers_mv, columns: [asset_id, distribution_type, effective_start_date, effective_end_date, taxonomy_node_id, taxonomy_code, share, taxonomy_nodes_dm.dimension_id, asset_distributions_dm.dimension] }
├── output: [ asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.distribution_type, asset_distributions_for_consumers_mv.effective_start_date, asset_distributions_for_consumers_mv.effective_end_date, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.taxonomy_code, asset_distributions_for_consumers_mv.share, asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension ]
├── stream key: [ asset_distributions_for_consumers_mv.taxonomy_nodes_dm.dimension_id, asset_distributions_for_consumers_mv.taxonomy_node_id, asset_distributions_for_consumers_mv.asset_id, asset_distributions_for_consumers_mv.asset_distributions_dm.dimension, asset_distributions_for_consumers_mv.effective_start_date ]
├── Upstream { output: [ asset_id, distribution_type, effective_start_date, effective_end_date, taxonomy_node_id, taxonomy_code, share, taxonomy_nodes_dm.dimension_id, asset_distributions_dm.dimension ], stream key: [] }
└── BatchPlanNode { output: [ asset_id, distribution_type, effective_start_date, effective_end_date, taxonomy_node_id, taxonomy_code, share, taxonomy_nodes_dm.dimension_id, asset_distributions_dm.dimension ], stream key: [] }