Job is idle — throughput ~0; structure shown.
Fragment 19411 (Actor 157453,157452)
StreamSink { type: upsert, columns: [rate_date, base_currency, quote_currency, rate], downstream_pk: [fx_rates_eod_mv.rate_date, fx_rates_eod_mv.base_currency, fx_rates_eod_mv.quote_currency] }
├── output: [ fx_rates_eod_mv.rate_date, fx_rates_eod_mv.base_currency, fx_rates_eod_mv.quote_currency, fx_rates_eod_mv.rate ]
├── stream key: [ fx_rates_eod_mv.base_currency, fx_rates_eod_mv.quote_currency, fx_rates_eod_mv.rate_date ]
└── StreamTableScan { table: fx_rates_eod_mv, columns: [rate_date, base_currency, quote_currency, rate] }
├── output: [ fx_rates_eod_mv.rate_date, fx_rates_eod_mv.base_currency, fx_rates_eod_mv.quote_currency, fx_rates_eod_mv.rate ]
├── stream key: [ fx_rates_eod_mv.base_currency, fx_rates_eod_mv.quote_currency, fx_rates_eod_mv.rate_date ]
├── Upstream { output: [ rate_date, base_currency, quote_currency, rate ], stream key: [] }
└── BatchPlanNode { output: [ rate_date, base_currency, quote_currency, rate ], stream key: [] }