DAS-C01 · Question #164
A gaming company is collecting cllckstream data into multiple Amazon Kinesis data streams. The company uses Amazon Kinesis Data Firehose delivery streams to store the data in JSON format in Amazon…
The correct answer is D. Integrate an AWS Lambda function with Kinesis Data Firehose to convert source records to. To reduce Amazon Athena costs for querying clickstream data stored as JSON in Amazon S3, without recreating the data pipeline and with less management effort, converting data to Apache Parquet is essential. Integrating an AWS Lambda function with Kinesis Data Firehose allows…
Question
A gaming company is collecting cllckstream data into multiple Amazon Kinesis data streams. The company uses Amazon Kinesis Data Firehose delivery streams to store the data in JSON format in Amazon S3 Data scientists use Amazon Athena to query the most recent data and derive business insights. The company wants to reduce its Athena costs without having to recreate the data pipeline. The company prefers a solution that will require less management effort. Which set of actions can the data scientists take immediately to reduce costs?
Options
- AChange the Kinesis Data Firehose output format to Apache Parquet
- BCreate an Apache Spark Job that combines and converts JSON files to Apache Parquet files
- CCreate a Kinesis data stream as a delivery target for Kinesis Data Firehose
- DIntegrate an AWS Lambda function with Kinesis Data Firehose to convert source records to
How the community answered
(25 responses)- A28% (7)
- B4% (1)
- C12% (3)
- D56% (14)
Why each option
To reduce Amazon Athena costs for querying clickstream data stored as JSON in Amazon S3, without recreating the data pipeline and with less management effort, converting data to Apache Parquet is essential. Integrating an AWS Lambda function with Kinesis Data Firehose allows for custom data transformation to convert source JSON records to Parquet format before delivery to S3, optimizing data storage for Athena queries.
While changing Firehose output format to Apache Parquet directly is a valid approach to reduce Athena costs, integrating a Lambda function might be considered more flexible for custom JSON-to-Parquet transformations and potentially more 'immediate' for data scientists if core Firehose configurations are managed by a separate team.
Creating an Apache Spark job to convert files adds a new, separate processing layer and management overhead, which goes against the requirement for 'less management effort' and 'without recreating the data pipeline.'
Creating a Kinesis data stream as a delivery target for Kinesis Data Firehose does not address the core problem of reducing Athena costs associated with the file format in S3.
Amazon Athena costs are based on data scanned; columnar formats like Apache Parquet significantly reduce this cost. Integrating an AWS Lambda function with Kinesis Data Firehose enables custom data transformations, allowing source JSON records to be converted to the more efficient Parquet format before storage in S3, thereby optimizing data for Athena without altering the core pipeline.
Concept tested: Kinesis Firehose data transformation for Athena cost optimization
Source: https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html
Topics
Community Discussion
No community discussion yet for this question.