A city 311 call center streams both audio recordings and their text transcripts through Amazon Kinesis Data Streams and lands them in Amazon S3. An ML engineer needs a storage layout that supports both model training on the transcripts and later replay of the paired audio for quality review. Which approach best meets this need?
Select an answer to reveal the explanation.
Short Explanation
Think of the audio and its transcript like a photo and its caption — split them up and you can still read the caption, but you've lost the ability to tell the story together. Landing both in S3 under a shared key or metadata link keeps them paired so training and replay work off the same evidence. Partitioning by date just keeps that pairing organized as volume grows.
Full Explanation
S3 works well here because it's durable, cheap object storage that can hold both binary audio and text side by side, and a shared identifier — a common key prefix or a metadata record pointing at both objects — lets any downstream job join them back together for training or for a human reviewer replaying the call. Discarding the audio treats the recording as disposable, but quality review, dispute resolution, and future model retraining (for example, adding an audio-based sentiment signal) all depend on having the original recording, not just its text. Encoding audio into a stream partition key confuses two unrelated concerns: partition keys route records for parallel processing, they are not a storage mechanism, and Kinesis Data Streams is not meant as a long-term audio archive. Using the Feature Store online store for raw audio misapplies a tool built for low-latency numeric or categorical feature lookups at inference time; it isn't sized or priced for large binary media, and it doesn't support the batch training access pattern this pipeline needs. Scope note: at high call volume, add a metadata catalog on top of the S3 layout so joins stay fast rather than relying on prefix scans. Operational check: confirm a sample transcript's key or metadata record resolves to its matching audio object before the pipeline goes live.