Fragment 61882 (Actor 740426,740425)
StreamMaterialize { columns: [opportunity_id, resource_id, fact_date, asset_id, asset_type, asset_name, asset_market_value, asset_currency_code, asset_percentage_value, asset_weight, portfolio_currency_code, portfolio_market_value, portfolio_to_account_groups_mv.account_group_id(hidden), portfolios_dm.portfolio_id(hidden), portfolio_to_account_groups_mv.$src(hidden), opportunity_conditions_mv.activity_name(hidden), opportunity_conditions_mv._rw_projected_row_id(hidden), opportunity_conditions_mv._rw_projected_row_id#1(hidden), assets_dm.id(hidden)], stream_key: [portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, fact_date, asset_currency_code], pk_columns: [portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, fact_date, asset_currency_code], pk_conflict: NoCheck }
├── output: [ opportunity_conditions_mv.opportunity_id, portfolio_to_account_groups_mv.portfolio_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm.type, assets_dm.name_en, sum(position_by_asset_mv_next.market_value), position_by_asset_mv_next.currency_code, $expr3, sum(position_by_asset_mv_next.weight), portfolios_dm.base_currency_code, $expr4, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id ]
├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ]
└── StreamProject { exprs: [opportunity_conditions_mv.opportunity_id, portfolio_to_account_groups_mv.portfolio_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm.type, assets_dm.name_en, sum(position_by_asset_mv_next.market_value), position_by_asset_mv_next.currency_code, (sum(position_by_asset_mv_next.weight) * 100:Decimal) as $expr3, sum(position_by_asset_mv_next.weight), portfolios_dm.base_currency_code, (sum(position_by_asset_mv_next.market_value) / sum(position_by_asset_mv_next.weight)) as $expr4, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id] }
├── output: [ opportunity_conditions_mv.opportunity_id, portfolio_to_account_groups_mv.portfolio_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, assets_dm.type, assets_dm.name_en, sum(position_by_asset_mv_next.market_value), position_by_asset_mv_next.currency_code, $expr3, sum(position_by_asset_mv_next.weight), portfolios_dm.base_currency_code, $expr4, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id ]
├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ]
└── MergeExecutor { output: [ position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), portfolio_to_account_groups_mv.portfolio_id, portfolios_dm.base_currency_code, assets_dm.name_en, assets_dm.type, opportunity_conditions_mv.opportunity_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61883 (Actor 740427,740428)
StreamSyncLogStore { output: [ position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), portfolio_to_account_groups_mv.portfolio_id, portfolios_dm.base_currency_code, assets_dm.name_en, assets_dm.type, opportunity_conditions_mv.opportunity_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── StreamHashJoin { type: Inner, predicate: portfolio_to_account_groups_mv.account_group_id = position_by_asset_mv_next.account_group_id }
├── output: [ position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), portfolio_to_account_groups_mv.portfolio_id, portfolios_dm.base_currency_code, assets_dm.name_en, assets_dm.type, opportunity_conditions_mv.opportunity_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, position_by_asset_mv_next.account_group_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id ]
├── stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ]
├── MergeExecutor { output: [ portfolios_dm.base_currency_code, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── MergeExecutor { output: [ opportunity_conditions_mv.opportunity_id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ position_by_asset_mv_next.account_group_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61884 (Actor 740435,740436)
StreamLocalityProvider { locality_columns: [portfolio_to_account_groups_mv.account_group_id] } { output: [ portfolios_dm.base_currency_code, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── MergeExecutor { output: [ portfolios_dm.base_currency_code, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ] }
Fragment 61885 (Actor 740437,740438)
StreamSyncLogStore { output: [ portfolios_dm.base_currency_code, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── StreamHashJoin { type: Inner, predicate: portfolios_dm.portfolio_id = portfolio_to_account_groups_mv.portfolio_id } { output: [ portfolios_dm.base_currency_code, portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolios_dm.portfolio_id, portfolio_to_account_groups_mv.$src ] }
├── MergeExecutor { output: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code ], stream key: [ portfolios_dm.portfolio_id ] }
└── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
Fragment 61886 (Actor 740342,740341)
StreamTableScan { table: portfolios_dm, columns: [portfolio_id, base_currency_code] } { output: [ portfolios_dm.portfolio_id, portfolios_dm.base_currency_code ], stream key: [ portfolios_dm.portfolio_id ] }
├── Upstream { output: [ portfolio_id, base_currency_code ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, base_currency_code ], stream key: [] }
Fragment 61887 (Actor 740446,740445)
StreamLocalityProvider { locality_columns: [portfolio_to_account_groups_mv.portfolio_id] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
Fragment 61888 (Actor 740449,740450)
StreamProject { exprs: [portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── StreamFilter { predicate: (portfolio_to_account_groups_mv.type = 'all':Varchar) } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, portfolio_to_account_groups_mv.type ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
└── StreamTableScan { table: portfolio_to_account_groups_mv, columns: [portfolio_id, account_group_id, $src, type] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.$src, portfolio_to_account_groups_mv.type ], stream key: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.$src ] }
├── Upstream { output: [ portfolio_id, account_group_id, $src, type ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, account_group_id, $src, type ], stream key: [] }
Fragment 61889 (Actor 740448,740447)
StreamLocalityProvider { locality_columns: [position_by_asset_mv_next.account_group_id] } { output: [ opportunity_conditions_mv.opportunity_id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ position_by_asset_mv_next.account_group_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── MergeExecutor { output: [ opportunity_conditions_mv.opportunity_id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61890 (Actor 740455,740456)
StreamSyncLogStore { output: [ opportunity_conditions_mv.opportunity_id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── StreamHashJoin { type: Inner, predicate: opportunity_conditions_mv.activity_name = 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar AND Case((opportunity_conditions_mv.op = 'GTE':Varchar), (sum(position_by_asset_mv_next.weight) >= opportunity_conditions_mv.threshold), (opportunity_conditions_mv.op = 'GT':Varchar), (sum(position_by_asset_mv_next.weight) > opportunity_conditions_mv.threshold), (opportunity_conditions_mv.op = 'LTE':Varchar), (sum(position_by_asset_mv_next.weight) <= opportunity_conditions_mv.threshold), (opportunity_conditions_mv.op = 'LT':Varchar), (sum(position_by_asset_mv_next.weight) < opportunity_conditions_mv.threshold), (opportunity_conditions_mv.op = 'EQ':Varchar), (sum(position_by_asset_mv_next.weight) = opportunity_conditions_mv.threshold), false:Boolean) }
├── output: [ opportunity_conditions_mv.opportunity_id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), opportunity_conditions_mv.activity_name, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ]
├── stream key: [ opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1, assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ]
├── MergeExecutor { output: [ opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.op, opportunity_conditions_mv.threshold, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ], stream key: [ opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ] }
└── MergeExecutor { output: [ assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61891 (Actor 740461,740462)
StreamLocalityProvider { locality_columns: [opportunity_conditions_mv.activity_name] } { output: [ opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.op, opportunity_conditions_mv.threshold, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ], stream key: [ opportunity_conditions_mv.activity_name, opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ] }
└── MergeExecutor { output: [ opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.op, opportunity_conditions_mv.threshold, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ], stream key: [ opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ] }
Fragment 61892 (Actor 740343,740344)
StreamTableScan { table: opportunity_conditions_mv, columns: [opportunity_id, activity_name, op, threshold, _rw_projected_row_id, _rw_projected_row_id#1] } { output: [ opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv.activity_name, opportunity_conditions_mv.op, opportunity_conditions_mv.threshold, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ], stream key: [ opportunity_conditions_mv.opportunity_id, opportunity_conditions_mv._rw_projected_row_id, opportunity_conditions_mv._rw_projected_row_id#1 ] }
├── Upstream { output: [ opportunity_id, activity_name, op, threshold, _rw_projected_row_id, _rw_projected_row_id#1 ], stream key: [] }
└── BatchPlanNode { output: [ opportunity_id, activity_name, op, threshold, _rw_projected_row_id, _rw_projected_row_id#1 ], stream key: [] }
Fragment 61893 (Actor 740464,740463)
StreamLocalityProvider { locality_columns: ['GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar] } { output: [ assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── MergeExecutor { output: [ assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61894 (Actor 740466,740465)
StreamProject { exprs: [assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id] } { output: [ assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), 'GET_PORTFOLIO_EXTREME_SINGLE_HOLDING_PERCENTAGE':Varchar, assets_dm.id ], stream key: [ assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── MergeExecutor { output: [ assets_dm.id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61895 (Actor 740468,740467)
StreamSyncLogStore { output: [ assets_dm.id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── StreamHashJoin { type: Inner, predicate: assets_dm.id = position_by_asset_mv_next.asset_id } { output: [ assets_dm.id, assets_dm.name_en, assets_dm.type, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ assets_dm.id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
├── MergeExecutor { output: [ assets_dm.id, assets_dm.name_en, assets_dm.type ], stream key: [ assets_dm.id ] }
└── MergeExecutor { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
Fragment 61896 (Actor 740481,740482)
StreamTableScan { table: assets_dm, columns: [id, name_en, type] } { output: [ assets_dm.id, assets_dm.name_en, assets_dm.type ], stream key: [ assets_dm.id ] }
├── Upstream { output: [ id, name_en, type ], stream key: [] }
└── BatchPlanNode { output: [ id, name_en, type ], stream key: [] }
Fragment 61897 (Actor 740469,740470)
StreamLocalityProvider { locality_columns: [position_by_asset_mv_next.asset_id] } { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ position_by_asset_mv_next.asset_id, position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.currency_code ] }
└── MergeExecutor { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code ] }
Fragment 61898 (Actor 740472,740471)
StreamFilter { predicate: (sum(position_by_asset_mv_next.market_value) > 0:Decimal) AND (sum(position_by_asset_mv_next.weight) > 0:Decimal) AND (sum(position_by_asset_mv_next.weight) < 1:Decimal) } { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code ] }
└── StreamProject { exprs: [position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight)] } { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight) ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code ] }
└── StreamHashAgg { group_key: [position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code], aggs: [sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), count] } { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, sum(position_by_asset_mv_next.market_value), sum(position_by_asset_mv_next.weight), count ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code ] }
└── StreamLocalityProvider { locality_columns: [position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code] }
├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
└── MergeExecutor { output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ], stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ] }
Fragment 61899 (Actor 740474,740475)
StreamProject { exprs: [position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type] }
├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
└── StreamDynamicFilter { predicate: ($expr1 >= $expr2), output_watermarks: [[$expr1]], output: [position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, $expr1, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type], cleaned_by_watermark: true }
├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, $expr1, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
├── StreamProject { exprs: [position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, AtTimeZone(position_by_asset_mv_next.dim_balance_date::Timestamp, 'UTC':Varchar) as $expr1, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type] }
│ ├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, $expr1, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
│ ├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
│ └── StreamFilter { predicate: (position_by_asset_mv_next.source_entity_type = 'portfolio':Varchar) AND (position_by_asset_mv_next.position_type = 'POSITION':Varchar) AND Not(IsNull(position_by_asset_mv_next.asset_id)) }
│ ├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
│ ├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
│ └── StreamTableScan { table: position_by_asset_mv_next, columns: [account_group_id, dim_balance_date, asset_id, currency_code, market_value, weight, position_type, position_values_mv_next.holding_currency_expanded, asset_currency, source_entity_type, position_values_mv_next.position_type_expanded, flag, position_summary_mv_next.source_entity_type] }
│ ├── output: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.market_value, position_by_asset_mv_next.weight, position_by_asset_mv_next.position_type, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
│ ├── stream key: [ position_by_asset_mv_next.account_group_id, position_by_asset_mv_next.dim_balance_date, position_by_asset_mv_next.position_type, position_by_asset_mv_next.currency_code, position_by_asset_mv_next.position_values_mv_next.holding_currency_expanded, position_by_asset_mv_next.asset_currency, position_by_asset_mv_next.source_entity_type, position_by_asset_mv_next.position_values_mv_next.position_type_expanded, position_by_asset_mv_next.asset_id, position_by_asset_mv_next.flag, position_by_asset_mv_next.position_summary_mv_next.source_entity_type ]
│ ├── Upstream { output: [ account_group_id, dim_balance_date, asset_id, currency_code, market_value, weight, position_type, position_values_mv_next.holding_currency_expanded, asset_currency, source_entity_type, position_values_mv_next.position_type_expanded, flag, position_summary_mv_next.source_entity_type ], stream key: [] }
│ └── BatchPlanNode { output: [ account_group_id, dim_balance_date, asset_id, currency_code, market_value, weight, position_type, position_values_mv_next.holding_currency_expanded, asset_currency, source_entity_type, position_values_mv_next.position_type_expanded, flag, position_summary_mv_next.source_entity_type ], stream key: [] }
└── MergeExecutor { output: [ $expr2 ], stream key: [] }
Fragment 61900 (Actor 740473)
StreamProject { exprs: [SubtractWithTimeZone(now, '30 days':Interval, 'UTC':Varchar) as $expr2], output_watermarks: [[$expr2]] } { output: [ $expr2 ], stream key: [] }
└── StreamNow { output: [ now ], stream key: [] }