Explanation
Stream-static join is the correct answer because:
- Stateless tables in streaming contexts don't maintain state information across processing windows
- Stream-static join involves joining a streaming dataset with a static (non-streaming) reference table
- This operation doesn't require maintaining state about the streaming data since the static table is fixed and doesn't change during processing
- The state dimension remains limited because only the static table data needs to be loaded, not historical streaming data
Why other options are incorrect:
- A. Stream-stream join: Requires maintaining state for both streaming sources to handle late-arriving data and ensure correct joins
- C. Stateful aggregation: By definition maintains state (counts, sums, etc.) across processing windows
- D. Drop duplicates: Requires maintaining state to track which records have already been seen to identify duplicates
Stream-static joins are commonly used for enrichment operations where streaming data is joined with reference/lookup tables, making them suitable for stateless processing scenarios where state maintenance needs to be minimized.