Answer : A,D and F
Option A is correct - Kinesis Data Streams is the right platform to fulfil the requirements since Kinesis Data Streams provides real-time data ingestion while using Streams API. There is no processing delay or buffering.
Besides Kinesis Data Streams to collect and process large streams of data records in real time. You can create data-processing applications, known as Kinesis Data Streams applications. A typical Kinesis Data Streams application reads data from a data stream as data records. These applications can use the Kinesis Client Library, and they can run on Amazon EC2 instances. se Kinesis Data Streams for rapid and continuous data intake and aggregation. The type of data used can include IT infrastructure log data, application logs, social media, market data feeds, and web clickstream data.
Because the response time for the data intake and processing is in real time, the processing is typically lightweight.
The following are typical scenarios for using Kinesis Data Streams:
Accelerated log and data feed intake and processing
Real-time metrics and reporting
Real-time data analytics
Complex stream processing
https://docs.aws.amazon.com/streams/latest/dev/introduction.html
Option B is incorrect - Amazon Kinesis Data Firehose is a fully managed service for delivering real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon Elasticsearch Service (Amazon ES), and Splunk. Kinesis Data Firehose can invoke your Lambda function to transform incoming source data and deliver the transformed data to destinations. You can enable Kinesis Data Firehose data transformation when you create your delivery stream. Amazon Kinesis Data Firehose can convert the format of your input data from JSON to Apache Parquet or Apache ORC before storing the data in Amazon S3. Parquet and ORC are columnar data formats that save space and enable faster queries compared to row-oriented formats like JSON. If you want to convert an input format other than JSON, such as comma-separated values (CSV) or structured text, you can use AWS Lambda to transform it to JSON first.
https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html
Option C is incorrect - The KPL can incur an additional processing delay of up to RecordMaxBufferedTime within the library (user-configurable). Larger values of RecordMaxBufferedTime results in higher packing efficiencies and better performance. Applications that cannot tolerate this additional delay may need to use the AWS SDK directly.
https://docs.aws.amazon.com/streams/latest/dev/developing-producers-with-kpl.html#developing-producers-with-kpl-when
Option D is correct - Streams API is the right mechanism to ingest data into stream. Once a stream is created, you can add data to it in the form of records. A record is a data structure that contains the data to be processed in the form of a data blob. After you store the data in the record, Kinesis Data Streams does not inspect, interpret, or change the data in any way. Each record also has an associated sequence number and partition key.
https://docs.aws.amazon.com/streams/latest/dev/developing-producers-with-sdk.html
Option E is incorrect - Discounts file is a Reference source, while Order data is asStreaming source in Kinesis Analytics Application
Your Amazon Kinesis Data Analytics application can receive input from a single streaming source and, optionally, use one reference data source. At the time that you create an application, you specify a streaming source. You can also modify an input after you create the application. Amazon Kinesis Data Analytics supports the following streaming sources for your application:
A Kinesis data stream
A Kinesis Data Firehose delivery stream
Kinesis Data Analytics continuously polls the streaming source for new data and ingests it in in-application streams according to the input configuration. Your application code can query the in-application stream.
Add a reference data source to an existing application to enrich the data coming in from streaming sources. You must store reference data as an object in your Amazon S3 bucket. When the application starts, Amazon Kinesis Data Analytics reads the Amazon S3 object and creates an in-application reference table. Your application code can then join it with an in-application stream.
You store reference data in the Amazon S3 object using supported formats (CSV, JSON).
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-streaming
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-reference
Option F is correct - Discounts file is a Reference source, while Order data is asStreaming source in Kinesis Analytics Application
Your Amazon Kinesis Data Analytics application can receive input from a single streaming source and, optionally, use one reference data source. At the time that you create an application, you specify a streaming source. You can also
modify an input after you create the application. Amazon Kinesis Data Analytics supports the following streaming sources for your application:
A Kinesis data stream
A Kinesis Data Firehose delivery stream
Kinesis Data Analytics continuously polls the streaming source for new data and ingests it in in-application streams according to the input configuration. Your application code can query the in-application stream.
Add a reference data source to an existing application to enrich the data coming in from streaming sources. You must store reference data as an object in your Amazon S3 bucket. When the application starts, Amazon Kinesis Data Analytics reads the Amazon S3 object and creates an in-application reference table. Your application code can then join it with an in-application stream.
You store reference data in the Amazon S3 object using supported formats (CSV, JSON).
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-streaming
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-reference
Option G is incorrect - Discounts file is a Reference source, while Order data is asStreaming source in Kinesis Analytics Application
Your Amazon Kinesis Data Analytics application can receive input from a single streaming source and, optionally, use one reference data source. At the time that you create an application, you specify a streaming source. You can also modify an input after you create the application. Amazon Kinesis Data Analytics supports the following streaming sources for your application:
A Kinesis data stream
A Kinesis Data Firehose delivery stream
Kinesis Data Analytics continuously polls the streaming source for new data and ingests it in in-application streams according to the input configuration. Your application code can query the in-application stream.
Add a reference data source to an existing application to enrich the data coming in from streaming sources. You must store reference data as an object in your Amazon S3 bucket. When the application starts, Amazon Kinesis Data Analytics reads the Amazon S3 object and creates an in-application reference table. Your application code can then join it with an in-application stream.
You store reference data in the Amazon S3 object using supported formats (CSV, JSON).
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-streaming
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-reference
Option H is incorrect - Discounts file is a Reference source, while Order data is asStreaming source in Kinesis Analytics Application
Your Amazon Kinesis Data Analytics application can receive input from a single streaming source and, optionally, use one reference data source. At the time that you create an application, you specify a streaming source. You can also modify an input after you create the application. Amazon Kinesis Data Analytics supports the following streaming sources for your application:
A Kinesis data stream
A Kinesis Data Firehose delivery stream
Kinesis Data Analytics continuously polls the streaming source for new data and ingests it in in-application streams according to the input configuration. Your application code can query the in-application stream.
Add a reference data source to an existing application to enrich the data coming in from streaming sources. You must store reference data as an object in your Amazon S3 bucket. When the application starts, Amazon Kinesis Data Analytics reads the Amazon S3 object and creates an in-application reference table. Your application code can then join it with an in-application stream.
You store reference data in the Amazon S3 object using supported formats (CSV, JSON).
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-streaming
https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html#source-reference