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

← cluster insights objects orphan_accruals_mv explain
Overview Objects Graph History
materialized view · insights.orphan_accruals_mv profiled over 5s
seconds (1–30)

Job is idle — throughput ~0; structure shown.

Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
42 operators
Materialize · insights.orphan_accruals_mv
0% idle 2 actors
Project · (Not(IsNull(foreign_exchange_rates_eod_ft.rate)) OR (accrua…
2 actors
Filter · (Not(IsNull(foreign_exchange_rates_eod_ft.rate)) OR (accrua…
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · accruals_agg_mv_next.currency_code = foreign_exchange_rates…
2 actors
HashJoin · LeftOuter · accruals_agg_mv_next.currency_code = foreign_exchange_rates… Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Filter · foreign_exchange_rates_eod_ft
0% idle 2 actors
StreamScan · foreign_exchange_rates_eod_ft
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 · IsNull(holding_values_raw_mv.account_id)
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · LeftOuter · accruals_agg_mv_next.account_id = holding_values_raw_mv.acc…
2 actors
HashJoin · LeftOuter · accruals_agg_mv_next.account_id = holding_values_raw_mv.acc… 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 · holding_values_raw_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 · accruals_agg_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.orphan_accruals_mv Materialize insights.orphan_accrual… idle · 2 actors Project · (Not(IsNull(foreign_exchange_rates_eod_ft.rate)) OR (accrua… Project (Not(IsNull(foreign_exc… — · 2 actors Filter · (Not(IsNull(foreign_exchange_rates_eod_ft.rate)) OR (accrua… Filter (Not(IsNull(foreign_exc… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · accruals_agg_mv_next.currency_code = foreign_exchange_rates… SyncLogStore LeftOuter · accruals_ag… — · 2 actors HashJoin · LeftOuter · accruals_agg_mv_next.currency_code = foreign_exchange_rates… HashJoin LeftOuter · accruals_ag… 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 · foreign_exchange_rates_eod_ft Filter foreign_exchange_rates_… idle · 2 actors StreamScan · foreign_exchange_rates_eod_ft StreamScan foreign_exchange_rates_… 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 · IsNull(holding_values_raw_mv.account_id) Filter IsNull(holding_values_r… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · LeftOuter · accruals_agg_mv_next.account_id = holding_values_raw_mv.acc… SyncLogStore LeftOuter · accruals_ag… — · 2 actors HashJoin · LeftOuter · accruals_agg_mv_next.account_id = holding_values_raw_mv.acc… HashJoin LeftOuter · accruals_ag… 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 · holding_values_raw_mv StreamScan holding_values_raw_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 StreamScan · accruals_agg_mv_next StreamScan accruals_agg_mv_next 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 62758 (Actor 744250,744249)
StreamMaterialize { columns: [account_id, asset_id, dim_value_date, type, currency_code, market_value, average_cost, average_cost_per_unit, purchased_quantity, fair_value, accrued_value, accrued_value_system_currency, market_value_system_currency, average_cost_system_currency, average_cost_per_unit_system_currency, fair_value_system_currency, foreign_exchange_rates_eod_ft.target_currency_code(hidden)], stream_key: [currency_code, dim_value_date, account_id, asset_id, type, foreign_exchange_rates_eod_ft.target_currency_code], pk_columns: [currency_code, dim_value_date, account_id, asset_id, type, foreign_exchange_rates_eod_ft.target_currency_code], pk_conflict: NoCheck }
├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code, 0:Decimal, 0:Decimal, 0:Decimal, 0:Decimal, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, 0:Decimal, 0:Decimal, 0:Decimal, $expr1, foreign_exchange_rates_eod_ft.target_currency_code ]
├── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type, foreign_exchange_rates_eod_ft.target_currency_code ]
└── StreamProject { exprs: [accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code, 0:Decimal, 0:Decimal, 0:Decimal, 0:Decimal, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, 0:Decimal, 0:Decimal, 0:Decimal, (accruals_agg_mv_next.accrued_amount * Coalesce(foreign_exchange_rates_eod_ft.rate, Case((accruals_agg_mv_next.currency_code = 'SAR':Varchar), 1:Int32, null:Int32)::Decimal)) as $expr1, foreign_exchange_rates_eod_ft.target_currency_code] }
    ├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code, 0:Decimal, 0:Decimal, 0:Decimal, 0:Decimal, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, 0:Decimal, 0:Decimal, 0:Decimal, $expr1, foreign_exchange_rates_eod_ft.target_currency_code ]
    ├── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type, foreign_exchange_rates_eod_ft.target_currency_code ]
    └── StreamFilter { predicate: (Not(IsNull(foreign_exchange_rates_eod_ft.rate)) OR (accruals_agg_mv_next.currency_code = 'SAR':Varchar)) }
        ├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.target_currency_code ]
        ├── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type, foreign_exchange_rates_eod_ft.target_currency_code ]
        └── MergeExecutor
            ├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.target_currency_code ]
            └── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type, foreign_exchange_rates_eod_ft.target_currency_code ]

Fragment 62759 (Actor 744247,744248)
StreamSyncLogStore
├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.target_currency_code ]
├── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type, foreign_exchange_rates_eod_ft.target_currency_code ]
└── StreamHashJoin { type: LeftOuter, predicate: accruals_agg_mv_next.currency_code = foreign_exchange_rates_eod_ft.source_currency_code AND accruals_agg_mv_next.dim_value_date = foreign_exchange_rates_eod_ft.date }
    ├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.target_currency_code ]
    ├── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type, foreign_exchange_rates_eod_ft.target_currency_code ]
    ├── MergeExecutor { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type ] }
    └── MergeExecutor { output: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.target_currency_code ], stream key: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.target_currency_code ] }

Fragment 62760 (Actor 744252,744251)
StreamLocalityProvider { locality_columns: [accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date] }
├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ]
├── stream key: [ accruals_agg_mv_next.currency_code, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.type ]
└── MergeExecutor { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ] }

Fragment 62761 (Actor 744371,744372)
StreamFilter { predicate: IsNull(holding_values_raw_mv.account_id) } { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ] }
└── MergeExecutor { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ] }

Fragment 62762 (Actor 744370,744369)
StreamSyncLogStore { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ] }
└── StreamHashJoin { type: LeftOuter, predicate: accruals_agg_mv_next.account_id = holding_values_raw_mv.account_id AND accruals_agg_mv_next.asset_id = holding_values_raw_mv.asset_id AND accruals_agg_mv_next.dim_value_date = holding_values_raw_mv.dim_value_date AND accruals_agg_mv_next.type = holding_values_raw_mv.type }
    ├── output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency, holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ]
    ├── stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ]
    ├── MergeExecutor { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ] }
    └── MergeExecutor { output: [ holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ] }

Fragment 62763 (Actor 744374,744373)
StreamLocalityProvider { locality_columns: [accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type] } { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.type, accruals_agg_mv_next.currency_code ] }
└── MergeExecutor { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type ] }

Fragment 62764 (Actor 744384,744383)
StreamTableScan { table: accruals_agg_mv_next, columns: [account_id, asset_id, dim_value_date, currency_code, type, accrued_amount, accrued_value_system_currency] } { output: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type, accruals_agg_mv_next.accrued_amount, accruals_agg_mv_next.accrued_value_system_currency ], stream key: [ accruals_agg_mv_next.account_id, accruals_agg_mv_next.asset_id, accruals_agg_mv_next.dim_value_date, accruals_agg_mv_next.currency_code, accruals_agg_mv_next.type ] }
├── Upstream { output: [ account_id, asset_id, dim_value_date, currency_code, type, accrued_amount, accrued_value_system_currency ], stream key: [] }
└── BatchPlanNode { output: [ account_id, asset_id, dim_value_date, currency_code, type, accrued_amount, accrued_value_system_currency ], stream key: [] }

Fragment 62765 (Actor 744351,744352)
StreamLocalityProvider { locality_columns: [holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type] } { output: [ holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ] }
└── MergeExecutor { output: [ holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ holding_values_raw_mv.account_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.asset_id, holding_values_raw_mv.type ] }

Fragment 62766 (Actor 744350,744349)
StreamTableScan { table: holding_values_raw_mv, columns: [account_id, asset_id, dim_value_date, type] } { output: [ holding_values_raw_mv.account_id, holding_values_raw_mv.asset_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.type ], stream key: [ holding_values_raw_mv.account_id, holding_values_raw_mv.dim_value_date, holding_values_raw_mv.asset_id, holding_values_raw_mv.type ] }
├── Upstream { output: [ account_id, asset_id, dim_value_date, type ], stream key: [] }
└── BatchPlanNode { output: [ account_id, asset_id, dim_value_date, type ], stream key: [] }

Fragment 62767 (Actor 744399,744400)
StreamLocalityProvider { locality_columns: [foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date] } { output: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.target_currency_code ], stream key: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.target_currency_code ] }
└── MergeExecutor { output: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.target_currency_code ], stream key: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.target_currency_code, foreign_exchange_rates_eod_ft.date ] }

Fragment 62768 (Actor 744403,744404)
StreamFilter { predicate: (foreign_exchange_rates_eod_ft.target_currency_code = 'SAR':Varchar) } { output: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.target_currency_code ], stream key: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.target_currency_code, foreign_exchange_rates_eod_ft.date ] }
└── StreamTableScan { table: foreign_exchange_rates_eod_ft, columns: [source_currency_code, date, rate, target_currency_code] } { output: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.date, foreign_exchange_rates_eod_ft.rate, foreign_exchange_rates_eod_ft.target_currency_code ], stream key: [ foreign_exchange_rates_eod_ft.source_currency_code, foreign_exchange_rates_eod_ft.target_currency_code, foreign_exchange_rates_eod_ft.date ] }
    ├── Upstream { output: [ source_currency_code, date, rate, target_currency_code ], stream key: [] }
    └── BatchPlanNode { output: [ source_currency_code, date, rate, target_currency_code ], stream key: [] }