Courseiva

CCNA Data Ingestion and Transformation Questions

75 of 591 questions · Page 2/8 · Data Ingestion and Transformation · Answers revealed

76
MCQhard

A data engineer is designing a streaming pipeline using Amazon Kinesis Data Streams with a shard count of 10. The incoming data rate is 1 MB/second. The consuming application uses the Kinesis Client Library (KCL) with a single worker. What is the most likely performance bottleneck?

A.The Lambda function invoked by the stream has a cold start issue
B.The data stream has insufficient write capacity
C.The single KCL worker cannot process all shards in parallel
D.The shard count is too low to handle the data rate
AnswerC

KCL workers should be scaled to match shard count for parallel processing.

Why this answer

The Kinesis Client Library (KCL) uses a 1:1 mapping between shards and record processors by default. With 10 shards and only a single KCL worker, that worker must run all 10 record processors sequentially on a single host, creating a bottleneck. The worker cannot process records from multiple shards in parallel, so the throughput is limited by the single worker's processing capacity, not the stream's write capacity.

Exam trap

The trap here is that candidates often assume the bottleneck is on the write side (insufficient shards or write capacity) because they focus on the incoming data rate, but the question specifically tests the consumer-side limitation of a single KCL worker unable to parallelize across multiple shards.

How to eliminate wrong answers

Option A is wrong because Lambda cold starts are a potential issue only if the consuming application uses Lambda as a consumer, but the question specifies a KCL worker, not a Lambda function. Option B is wrong because the incoming data rate is 1 MB/second, and a single Kinesis shard supports up to 1 MB/second write capacity, so 10 shards provide 10 MB/second—far more than needed. Option D is wrong because the shard count of 10 is more than sufficient to handle the 1 MB/second data rate; the bottleneck is on the consumer side, not the stream's capacity.

77
MCQeasy

A company wants to ingest real-time clickstream data from a website into Amazon S3 with a maximum latency of 60 seconds. The data volume peaks at 500 MB/s. Which service should they use to buffer and deliver the data to S3?

A.Amazon Kinesis Data Firehose
B.Amazon Simple Queue Service (SQS)
C.Amazon Kinesis Data Streams
D.AWS Lambda
AnswerA

Firehose is designed for streaming ingestion into S3 with configurable buffering.

Why this answer

Amazon Kinesis Data Firehose is the correct choice because it is designed to ingest streaming data, buffer it, and deliver it to destinations like Amazon S3 with configurable buffer intervals (e.g., 60 seconds) and buffer sizes (e.g., up to 128 MB). It can handle the peak throughput of 500 MB/s by automatically scaling, and it meets the maximum latency requirement of 60 seconds by flushing data to S3 based on time or size thresholds.

Exam trap

The trap here is that candidates often confuse Kinesis Data Streams (a real-time processing stream requiring custom consumers) with Kinesis Data Firehose (a fully managed delivery service), leading them to pick Data Streams for its real-time capabilities, even though Firehose is the correct choice for direct S3 delivery with minimal latency.

How to eliminate wrong answers

Option B (Amazon Simple Queue Service) is wrong because SQS is a message queue for decoupling application components, not a streaming buffer designed for high-throughput data delivery to S3; it lacks native integration to automatically write data to S3 with configurable latency. Option C (Amazon Kinesis Data Streams) is wrong because it is a real-time data streaming service that requires custom consumers (e.g., Lambda or Kinesis Client Library) to read and write data to S3, adding complexity and latency beyond the 60-second requirement; it does not natively buffer and deliver to S3. Option D (AWS Lambda) is wrong because Lambda is a serverless compute service for running code in response to events, not a buffer or delivery mechanism; it cannot handle sustained 500 MB/s ingestion without additional services and would require custom orchestration to meet latency goals.

78
MCQhard

A company uses Amazon Kinesis Data Firehose to ingest log data from web servers into Amazon S3. The data is in JSON format and each record is approximately 2 KB. The delivery stream is configured to buffer incoming records for 60 seconds or 5 MB, whichever comes first. The company notices that the data in S3 is delayed by up to 5 minutes during peak hours. Which action would most effectively reduce the delivery latency?

A.Increase the buffer size to 10 MB to allow more records per delivery.
B.Decrease the buffer interval to 15 seconds.
C.Enable compression (GZIP) on the delivery stream.
D.Enable data transformation with AWS Lambda to convert JSON to Parquet.
AnswerB

Shorter buffer interval triggers more frequent deliveries, reducing latency.

Why this answer

The observed delay of up to 5 minutes during peak hours indicates that the buffer size threshold (5 MB) is rarely reached because each record is only ~2 KB, so the delivery stream relies on the buffer interval (60 seconds) to trigger delivery. By decreasing the buffer interval to 15 seconds, Kinesis Data Firehose will push data to S3 more frequently, directly reducing the maximum latency from 60 seconds to 15 seconds per batch, which eliminates the compounding delays caused by queuing during high-throughput periods.

Exam trap

The trap here is that candidates assume increasing buffer size or enabling compression will speed up delivery, but they fail to recognize that with small records, the buffer interval is the bottleneck, and only reducing that interval directly lowers latency.

How to eliminate wrong answers

Option A is wrong because increasing the buffer size to 10 MB would actually increase the time needed to fill the buffer, worsening the latency issue during peak hours when records are small and the buffer interval is the primary trigger. Option C is wrong because enabling GZIP compression reduces storage size and cost but does not affect the delivery frequency or buffer flush timing, so it has no impact on latency. Option D is wrong because converting JSON to Parquet via Lambda adds processing overhead and introduces additional latency from the transformation invocation, which would increase rather than reduce delivery delay.

79
MCQmedium

A data engineering team is responsible for ingesting streaming data from a fleet of IoT devices into Amazon S3 using Kinesis Data Firehose. The data volume spikes unpredictably, and the team has configured Kinesis Data Firehose with a buffer size of 5 MB and buffer interval of 60 seconds. During spikes, the team notices that the delivery to S3 is delayed, and some records are lost due to exceeding the service limits. The team needs to ensure no data loss and reduce delivery latency. What should the team do?

A.Implement an AWS Lambda function to pre-process the data and send it to Firehose in a throttled manner.
B.Increase the buffer size to 10 MB and buffer interval to 120 seconds to allow more data accumulation before delivery.
C.Use Amazon Kinesis Data Streams as the data source for Firehose to decouple ingestion and delivery.
D.Enable S3 Transfer Acceleration on the destination bucket.
AnswerC

Using Kinesis Data Streams as the data source decouples ingestion from delivery, providing a durable buffer that absorbs spikes. Firehose can be configured with smaller buffer settings for lower latency, and data is retained in the stream until delivered, preventing data loss.

Why this answer

Using Kinesis Data Streams as the data source for Firehose decouples ingestion and delivery. The stream acts as a durable buffer that can absorb unpredictable spikes, preventing data loss due to Firehose service limits. Firehose can then be configured with smaller buffer size/interval to reduce delivery latency, as the stream retains data until successful delivery.

Option B increases buffer size and interval, which would increase latency, contradicting the requirement. Option A adds complexity and does not directly address buffering. Option D is unrelated to Firehose buffering.

80
MCQhard

A company uses AWS Glue to process data from multiple S3 buckets. The Glue job runs daily and reads data from a bucket that contains millions of small files (each < 1 MB). The job has been running for hours and is often close to the 8-hour timeout limit. Which optimization would MOST reduce the job's runtime?

A.Pre-process the data to consolidate small files into larger files before the Glue job.
B.Convert the source data from CSV to Parquet format.
C.Increase the number of DPUs allocated to the Glue job.
D.Use a larger Spark shuffle partition size.
AnswerA

Fewer, larger files reduce the overhead of opening and reading files.

Why this answer

The most impactful optimization for reducing the runtime of a Glue job that reads millions of small files is to consolidate those files into larger files prior to processing. Each small file incurs overhead for listing, opening, and reading, and Spark's task scheduler must create a separate task for each file or partition. By grouping small files (e.g., via S3 batch operations or a compaction job), the number of files decreases dramatically, reducing scheduling overhead and I/O operations.

While converting to Parquet (Option B) and increasing DPUs (Option C) can improve performance, their benefits are limited if the underlying file count remains high. A larger Spark shuffle partition size (Option D) only affects shuffle operations, not the initial file read overhead. Therefore, file consolidation is the most effective single change.

81
MCQhard

A data engineer uses AWS Glue to catalog data from an S3 bucket. The data is partitioned by year, month, day. After adding new partitions, the Glue Crawler does not detect them. What is the MOST likely reason?

A.The crawler is configured to only add new partitions to existing tables, but the table schema has changed.
B.The crawler runs only once and does not schedule subsequent runs.
C.The IAM role lacks permission to write to the Glue Data Catalog.
D.The partition depth exceeds the crawler's default limit.
AnswerA

If the schema changed, the crawler may skip partitions; or if the crawler is set to not update new partitions, it won't add them.

Why this answer

The Glue Crawler, by default, is configured to add new partitions only if the table schema remains unchanged. When new partitions are added to an S3 bucket, if the underlying data schema has changed (e.g., new columns, different data types), the crawler will not add those partitions to the existing table. This is a common safeguard to prevent schema drift from corrupting the cataloged table structure.

Exam trap

The trap here is that candidates often assume partition detection failures are due to permissions or depth limits, but AWS Glue's default schema-change protection is the subtle and less obvious cause.

How to eliminate wrong answers

Option B is wrong because even if the crawler runs only once, it should still detect new partitions during that single run; the issue is about detection failure, not scheduling frequency. Option C is wrong because if the IAM role lacked permission to write to the Glue Data Catalog, the crawler would fail entirely or produce an error, not silently skip new partitions. Option D is wrong because the default partition depth limit in AWS Glue Crawlers is 10 levels, and the given path (year/month/day) is only 3 levels deep, well within the limit.

82
Multi-Selectmedium

A company uses Amazon Kinesis Data Firehose to ingest data into an S3 bucket. The data is in JSON format and the team wants to convert it to Parquet before storage. Which TWO configurations are required?

Select 2 answers
A.Use Kinesis Data Analytics to transform data to Parquet.
B.Create a Glue table with the schema of the data.
C.Configure a Lambda function to convert data on the fly.
D.Set up an Athena table to read the data.
E.Enable data format conversion in Firehose and set Output format to Parquet.
AnswersB, E

Firehose needs a schema for Parquet conversion.

Why this answer

Amazon Kinesis Data Firehose can automatically convert JSON data to Parquet format before delivery to S3. To enable this, you must: (1) Enable data format conversion in the Firehose delivery stream settings and set the output format to Parquet (Option E). (2) Provide a schema for the data, which is done by referencing an AWS Glue table that defines the schema (Option B). Option A is incorrect because Kinesis Data Analytics is not required; Firehose handles conversion natively.

Option C (Lambda) is a valid way to transform data but is not required and not listed as a configuration for this purpose. Option D (Athena) is for querying data already in S3, not for conversion during ingestion.

83
MCQhard

A company uses AWS Glue DataBrew for data preparation. The data source is an S3 bucket with millions of small CSV files (each < 1 MB). The DataBrew project takes a long time to load the sample data. What is the most likely cause and solution?

A.Use Amazon Athena to query the data instead of DataBrew
B.The DataBrew job is under-provisioned; increase the number of DPUs
C.The large number of small files causes S3 LIST overhead; concatenate files into larger files
D.Use AWS Glue ETL instead of DataBrew for this volume
AnswerC

S3 performance degrades with many small files; combining them reduces API calls.

Why this answer

DataBrew loads a sample of the data by listing objects in the S3 bucket. With millions of small CSV files, the S3 LIST API call becomes a bottleneck because each list operation has a 1000-object limit per response, requiring multiple paginated requests. Concatenating the small files into larger files reduces the number of objects, dramatically decreasing LIST overhead and speeding up sample loading.

Exam trap

The DEA-C01 exam often tests the misconception that increasing DPUs or switching to a different AWS service will fix performance issues, when the real root cause is S3's small-file overhead and the LIST API's pagination limit.

How to eliminate wrong answers

Option A is wrong because Athena is a query engine, not a data preparation tool; it would still suffer from the same small-file overhead when reading data, and it does not solve the DataBrew sample loading issue. Option B is wrong because DataBrew projects do not use DPUs for sample loading; DPUs are only relevant for running DataBrew jobs (recipes), and the bottleneck here is S3 LIST latency, not compute capacity. Option D is wrong because switching to Glue ETL would not inherently solve the small-file problem; Glue ETL also incurs overhead from listing and processing many small files, and the question specifically asks about DataBrew sample loading, not ETL job performance.

84
MCQmedium

A data engineering team needs to load data from an on-premises Oracle database to Amazon S3 daily. The data volume is about 50 GB per day, and the network bandwidth is 100 Mbps. The team wants to minimize operational overhead and use AWS managed services. Which solution should they choose?

A.Use AWS Database Migration Service (DMS) to migrate the data to S3.
B.Use AWS DataSync to copy the database files directly to S3.
C.Use AWS Glue with a JDBC connection and schedule a crawler to load data into S3.
D.Use Amazon Kinesis Data Firehose to stream data from Oracle to S3.
AnswerA

DMS supports ongoing replication and scheduled migrations from Oracle to S3.

Why this answer

AWS DMS is the correct choice because it is purpose-built for migrating databases to AWS with minimal operational overhead. It can connect to an on-premises Oracle database via a JDBC or native Oracle connection, perform a full load, and then continuously replicate changes to an S3 target in Parquet or CSV format. With 50 GB/day over 100 Mbps (about 10.8 GB/hour theoretical max), the full load can complete in under 5 hours, and ongoing replication handles daily increments without manual intervention.

Exam trap

The trap here is that candidates confuse AWS DataSync's ability to transfer files with database migration, overlooking that DataSync cannot interpret database schemas or perform logical replication, while DMS is the only managed service that directly handles database-to-S3 ingestion with CDC.

How to eliminate wrong answers

Option B is wrong because AWS DataSync is designed for file-based data transfers (e.g., NFS, SMB) and cannot directly read Oracle database files or perform logical replication; it would require exporting the database to flat files first, adding operational overhead. Option C is wrong because AWS Glue with a JDBC connection and a scheduled crawler is intended for cataloging and ETL, not for continuous or scheduled data ingestion; Glue crawlers do not perform incremental loads or handle change data capture, and running them daily on 50 GB would be inefficient and costly. Option D is wrong because Amazon Kinesis Data Firehose requires a streaming data source (e.g., from an application or CDC tool) and cannot directly connect to an Oracle database; it would need an intermediary like DMS or a custom producer to stream data, adding complexity.

85
Multi-Selecthard

A company ingests IoT sensor data into Amazon Kinesis Data Streams. The data must be enriched with device metadata from Amazon DynamoDB and then stored in Amazon S3 in Apache Parquet format. The solution must minimize latency and cost. Which THREE steps should a data engineer implement? (Choose three.)

Select 3 answers
A.Deliver the enriched data to Amazon Kinesis Data Firehose and enable Parquet conversion.
B.Configure an AWS Lambda function to read from the stream, enrich, and write to S3.
C.Use AWS Glue streaming ETL to enrich and convert data to Parquet.
D.Use Amazon EMR with Spark Streaming to process and store the data.
E.Perform a DynamoDB lookup in the Flink application for each record.
.Use Amazon Kinesis Data Analytics for Apache Flink to enrich the stream with data from DynamoDB.
AnswersA, E

This step is correct because Kinesis Data Firehose is a fully managed service that can automatically convert incoming data to Parquet format before delivering to S3, reducing latency and operational overhead.

Why this answer

The correct three steps are: using Amazon Kinesis Data Analytics for Apache Flink to enrich the stream with data from DynamoDB (null), performing a DynamoDB lookup in the Flink application for each record (E), and delivering the enriched data to Amazon Kinesis Data Firehose with Parquet conversion enabled (A). Kinesis Data Analytics for Apache Flink reads from Kinesis Data Streams, enriches each record via DynamoDB lookups, and outputs the enriched stream to Kinesis Data Firehose. Firehose automatically converts data to Apache Parquet before writing to S3, minimizing latency and cost by leveraging managed services without custom code or additional infrastructure.

Exam trap

The trap here is that candidates often assume Lambda is the simplest and cheapest option for stream enrichment, but they overlook Lambda's concurrency limits, execution duration constraints, and lack of native Parquet conversion, which increases both latency and cost compared to using Kinesis Data Firehose with Flink for enrichment.

86
MCQhard

A data engineer runs the describe-stream command and sees the output above. The stream has a retention period of 24 hours. The engineer needs to ensure that consumers can replay data for up to 7 days. Which action is required?

A.Increase the number of shards to allow more data storage.
B.Delete the stream and recreate it with a longer retention period.
C.Use the IncreaseStreamRetentionPeriod API to set retention to 168 hours.
D.Create new consumer applications that read from the stream.
AnswerC

The API can increase retention up to 365 days.

Why this answer

The describe-stream output shows a retention period of 24 hours, but the requirement is to allow consumers to replay data for up to 7 days (168 hours). Amazon Kinesis Data Streams supports modifying the retention period dynamically without recreating the stream, using the IncreaseStreamRetentionPeriod API or the update-shard-count command. Option C correctly uses this API to set retention to 168 hours, which is the maximum supported retention period for Kinesis Data Streams.

Exam trap

The trap here is that candidates often confuse shard count with storage capacity, assuming that more shards allow more data to be stored, when in fact shards only control throughput and retention is a separate, configurable parameter.

How to eliminate wrong answers

Option A is wrong because increasing the number of shards increases the stream's throughput capacity (read/write operations per second), not the data retention period; shards do not affect how long data is stored. Option B is wrong because deleting and recreating the stream is unnecessary and disruptive; Kinesis allows you to modify the retention period on an existing stream without data loss or downtime. Option D is wrong because creating new consumer applications does not change the retention period; consumers can only replay data within the existing retention window, so they would still be limited to 24 hours of replay.

87
MCQhard

A company uses Amazon Kinesis Data Streams with a shard count of 10 to ingest clickstream data. The data is consumed by a Lambda function that transforms the records and writes to Amazon S3. Recently, the Lambda function started failing with 'ProvisionedThroughputExceededException' errors. The average record size is 5 KB, and the incoming data rate is 15 MB/s. What is the most likely cause and solution?

A.Increase the number of shards in the Kinesis data stream to 15.
B.Decrease the batch size of the Lambda event source mapping.
C.Increase the Lambda function's memory allocation to 3008 MB.
D.Increase the Lambda function's reserved concurrency.
AnswerA

Each shard provides 1 MB/s write capacity; 15 shards would support 15 MB/s.

Why this answer

The ProvisionedThroughputExceededException indicates that the total write throughput to the Kinesis stream is exceeding the provisioned capacity. With 10 shards, the maximum write throughput is 10 MB/s (1 MB/s per shard). The incoming data rate is 15 MB/s, which exceeds this limit, causing the error.

Increasing the shard count to 15 raises the write throughput to 15 MB/s, matching the incoming rate and resolving the issue.

Exam trap

The trap here is that candidates may focus on Lambda-side fixes (batch size, memory, concurrency) instead of recognizing that the error originates from the Kinesis stream's throughput capacity, which must be scaled horizontally by increasing shards.

How to eliminate wrong answers

Option B is wrong because decreasing the batch size of the Lambda event source mapping reduces the number of records per invocation but does not address the root cause of exceeding the stream's write throughput limit. Option C is wrong because increasing Lambda memory allocation improves compute performance but does not affect Kinesis stream throughput or the ProvisionedThroughputExceededException. Option D is wrong because increasing Lambda reserved concurrency allows more concurrent invocations but does not increase the stream's write capacity, which is the bottleneck.

88
MCQeasy

A data engineer needs to ingest streaming data from a social media API into Amazon S3 for batch analytics. The data arrives at a rate of 500 records per second. Which service should be used to capture the stream?

A.Amazon Simple Notification Service (SNS)
B.Amazon Simple Queue Service (SQS)
C.Amazon Kinesis Data Streams
D.Amazon MQ
AnswerC

Kinesis Data Streams is designed for real-time streaming data ingestion.

Why this answer

Amazon Kinesis Data Streams is designed for real-time streaming data ingestion at scale, supporting throughput of up to 1 MB/s or 1,000 records per second per shard. With 500 records per second, Kinesis can reliably capture and store the social media API data for up to 365 days, enabling batch analytics via S3 delivery through Kinesis Firehose or custom consumers.

Exam trap

The trap here is that candidates confuse SQS's message queueing with Kinesis's stream processing, overlooking that SQS lacks ordered, replayable, and high-throughput streaming capabilities required for real-time data ingestion into S3.

How to eliminate wrong answers

Option A is wrong because Amazon SNS is a pub/sub messaging service for push notifications and fan-out, not designed for persistent, ordered streaming data ingestion or high-throughput record capture. Option B is wrong because Amazon SQS is a message queue for decoupling microservices with at-least-once delivery, but it lacks the shard-based parallelism, replay capability, and long-term retention needed for streaming data to S3. Option D is wrong because Amazon MQ is a managed message broker for ActiveMQ or RabbitMQ protocols, optimized for JMS and enterprise messaging, not for high-velocity stream ingestion or direct integration with S3 batch analytics.

89
Multi-Selecthard

A data engineer needs to set up a data ingestion pipeline that reads from Amazon MSK (Managed Streaming for Kafka) and writes to Amazon S3 with transformations. The data is in Avro format and must be converted to Parquet. Which THREE components should be used together? (Choose THREE.)

Select 3 answers
A.AWS Lambda function to convert Avro to Parquet as a Firehose transformation
B.Amazon Athena to convert the data format
C.Amazon Kinesis Data Firehose delivery stream with MSK as source
D.Amazon MSK cluster as the data source
E.AWS Glue ETL job to read from MSK
AnswersA, C, D

Lambda can be used in Firehose to perform data transformation.

Why this answer

AWS Lambda can be used as a transformation function within a Kinesis Data Firehose delivery stream to convert Avro records to Parquet format before delivery to S3. This is a serverless, real-time approach that integrates directly with Firehose's transformation capabilities, avoiding the need for separate compute resources.

Exam trap

The trap here is that candidates often think AWS Glue ETL is required for format conversion in streaming pipelines, but Firehose with Lambda provides a simpler, real-time alternative for Avro-to-Parquet conversion without the overhead of a full ETL job.

90
MCQmedium

A company is streaming IoT data from thousands of devices into Amazon Kinesis Data Streams. The data must be transformed in real time before being stored in Amazon S3. Which service should be used to perform the transformation as the data streams through Kinesis?

A.AWS Glue
B.Amazon Kinesis Data Analytics for Apache Flink
C.Amazon EMR
D.AWS Lambda
AnswerB

Correctly processes streaming data in real time with Flink.

Why this answer

Amazon Kinesis Data Analytics for Apache Flink is the correct choice because it is purpose-built for running Apache Flink applications that can perform real-time transformations, filtering, and enrichment on data streaming through Kinesis Data Streams before outputting the results to destinations like Amazon S3. It integrates natively with Kinesis Data Streams as a source and can write transformed data directly to S3 using a Flink sink, making it ideal for this streaming ETL use case.

Exam trap

The trap here is that candidates often choose AWS Lambda because it is a familiar serverless option for event-driven processing, but they overlook its limitations in execution time, payload size, and lack of native state management for complex transformations, which makes Kinesis Data Analytics for Apache Flink the more robust and scalable choice for continuous streaming ETL.

How to eliminate wrong answers

Option A is wrong because AWS Glue is primarily a batch ETL service that processes data in job runs, not a real-time streaming transformation engine; while Glue Streaming exists, it is based on Spark Streaming and requires a separate Glue job with a streaming source, not a native Kinesis Data Streams integration for real-time transformations. Option C is wrong because Amazon EMR is a managed Hadoop/Spark cluster platform that can process streaming data but requires manual cluster management, provisioning, and configuration of Spark Streaming or Flink, adding operational overhead that is unnecessary for a simple transformation before S3 storage. Option D is wrong because AWS Lambda can process Kinesis Data Streams records in near real-time, but it has a maximum execution timeout of 15 minutes and a payload limit of 6 MB per invocation, making it unsuitable for high-throughput, continuous transformations of thousands of devices' data without risk of throttling or data loss.

91
Multi-Selecteasy

Which TWO AWS services can be used as sources for AWS Glue ETL jobs? (Choose two.)

Select 2 answers
A.Amazon Route 53
B.Amazon CloudFront
C.Amazon API Gateway
D.Amazon S3
E.Amazon RDS
AnswersD, E

S3 is a common source for Glue jobs.

Why this answer

Amazon S3 is a fully managed object storage service that serves as a common source for AWS Glue ETL jobs. Glue can read data from S3 using its built-in crawlers and connectors, supporting formats like Parquet, JSON, CSV, and Avro. The Glue Data Catalog can reference S3 locations, and ETL scripts can directly read from S3 buckets via the s3:// protocol.

Exam trap

The DEA-C01 exam often tests the misconception that any AWS service that stores or serves data (like Route 53 for DNS records or CloudFront for cached content) can be a Glue source, but Glue only supports sources that provide a direct data access interface (e.g., object storage, databases, or streaming services like Kinesis).

92
MCQmedium

Refer to the exhibit. A data engineer is running an AWS Glue job that reads data from an S3 source. The job fails with the error shown. What is the MOST likely cause?

A.The IAM role does not have s3:GetObject permission.
B.One of the source files is empty or corrupted.
C.The file is in JSON format but the schema expects Parquet.
D.The Glue job has insufficient memory allocated.
AnswerB

Empty file can return None when read, causing 'NoneType' has no attribute 'read'.

Why this answer

The error message indicates that the Glue job encountered a 'NullPointerException' or similar parsing failure when reading from S3. This typically occurs when a source file is empty or corrupted, causing the Spark DataFrame reader to fail during schema inference or data parsing. AWS Glue jobs rely on Spark's ability to read files; an empty or malformed file triggers a runtime error because Spark cannot extract any records or infer a valid schema from it.

Exam trap

The trap here is that candidates often assume permission errors (Option A) are the default cause of any S3-related failure, but the specific error message (NullPointerException) points to data corruption or empty files, not access control issues.

How to eliminate wrong answers

Option A is wrong because the error shown is a parsing or runtime exception, not an access denied error; if the IAM role lacked s3:GetObject permission, the job would fail with an AmazonS3Exception or AccessDenied error, not a NullPointerException. Option C is wrong because a mismatch between file format and expected schema (e.g., JSON vs. Parquet) would produce a format-specific parsing error (like 'Cannot parse JSON' or 'Parquet column not found'), not a generic NullPointerException.

Option D is wrong because insufficient memory typically causes an OutOfMemoryError or Spark executor failures, not a NullPointerException during file reading.

93
Matchingmedium

Match each AWS service to its primary purpose in data engineering.

Drag a concept onto its matching description — or click a concept then click the description.

Concepts
Matches

Serverless ETL and data catalog

Data warehousing and SQL analytics

Big data processing using Hadoop/Spark

Building and managing data lakes

Real-time streaming data ingestion

Why these pairings

The correct matches are: Amazon S3 → object storage for data lakes (A), AWS Glue → serverless ETL (B), Amazon Athena → interactive SQL queries on S3 (C), and Amazon Redshift → data warehousing (D). Common confusions involve mixing up services like Kinesis (streaming) with Glue (ETL) or Data Pipeline (orchestration) with Kinesis (ingestion).

94
Multi-Selectmedium

Which TWO services can be used to ingest streaming data into Amazon S3? (Choose two.)

Select 2 answers
A.Amazon Athena
B.AWS Glue
C.Amazon Kinesis Data Streams
D.AWS Database Migration Service (DMS)
E.Amazon Kinesis Data Firehose
AnswersC, E

Data Streams can be consumed and written to S3 via a consumer application.

Why this answer

Amazon Kinesis Data Streams is a real-time streaming service that can ingest and store streaming data, which can then be consumed and written to Amazon S3 using a Kinesis Data Analytics or a custom consumer application. Amazon Kinesis Data Firehose is a fully managed service that can directly load streaming data into Amazon S3, Amazon Redshift, or Amazon Elasticsearch Service, with optional data transformation and compression.

Exam trap

The trap here is that candidates often confuse AWS Glue's ETL capabilities with real-time streaming ingestion, or mistakenly think Amazon Athena can ingest data because it queries S3, but neither service is designed for streaming data ingestion.

95
MCQmedium

A data engineering team needs to ingest streaming data from thousands of IoT devices and store it in Amazon S3 for batch processing. The data arrives at a rate of 10 MB/s, with occasional spikes up to 50 MB/s. The data must be processed in near real-time with minimal latency. Which AWS service should be used for ingestion?

A.Amazon DynamoDB Streams
B.Amazon Kinesis Data Streams
C.Amazon SQS
D.Amazon S3
AnswerB

Designed for real-time data streaming with high throughput and S3 integration via Kinesis Firehose.

Why this answer

Amazon Kinesis Data Streams is designed for real-time streaming data ingestion at scale, handling throughput from megabytes to gigabytes per second with low latency. It can absorb the described 10 MB/s baseline and 50 MB/s spikes by sharding, and integrates directly with AWS Lambda or Kinesis Data Firehose to land data into Amazon S3 for batch processing.

Exam trap

The trap here is that candidates confuse Amazon SQS with a streaming service, but SQS is a pull-based queue with no ordering guarantees across multiple consumers, whereas Kinesis Data Streams provides ordered, replayable, and near-real-time data ingestion.

How to eliminate wrong answers

Option A is wrong because DynamoDB Streams captures changes to DynamoDB tables, not arbitrary streaming data from IoT devices, and its throughput is limited by the table's capacity, making it unsuitable for high-volume, low-latency ingestion. Option C is wrong because Amazon SQS is a message queue for decoupling components, not a streaming ingestion service; it does not support real-time processing with sub-second latency for continuous data streams and has a 256 KB message size limit. Option D is wrong because Amazon S3 is an object storage service, not a real-time ingestion endpoint; writing directly to S3 from thousands of devices would cause high latency due to HTTP overhead and lack of streaming semantics, and it cannot handle the required near-real-time processing.

96
MCQhard

A financial services company is building a real-time fraud detection system. Transaction data is ingested via Amazon Kinesis Data Streams and processed by an Amazon Kinesis Data Analytics for Apache Flink application that runs sliding window aggregations. The output is written to an Amazon S3 bucket for downstream analysis. The Flink application is configured with parallelism of 4 and checkpointing every minute. The company has noticed that the application is experiencing high latency and the checkpointing is frequently failing. The CloudWatch metrics show that the Flink application's CPU utilization is near 100% and the checkpoint duration is spiking to over 5 minutes. The data engineer needs to improve performance. Which action should the data engineer take?

A.Increase the number of shards in the source Kinesis stream to improve throughput.
B.Increase the parallelism of the Flink application to distribute the workload across more resources.
C.Increase the heap memory of the Flink application to handle larger state.
D.Decrease the checkpoint interval to 30 seconds to reduce the amount of state being checkpointed.
AnswerB

More parallelism can reduce CPU utilization and checkpoint time.

Why this answer

Increasing the parallelism of the Flink application allows the workload to be distributed across more resources, which reduces CPU pressure and checkpoint duration. The high CPU utilization and checkpoint spikes indicate that the current parallelism (4) is insufficient for the data volume. Option A is incorrect because increasing shards in the source stream without increasing parallelism may not help if the bottleneck is processing capacity, not ingestion throughput.

Option C is incorrect while increasing heap memory might help with state size, the primary issue here is CPU saturation, not memory. Option D is incorrect because decreasing the checkpoint interval would increase checkpoint frequency, potentially worsening failures and latency.

97
Multi-Selecthard

A data engineer is troubleshooting a Kinesis Data Streams consumer application that is falling behind. The stream has 10 shards and is receiving 5 MB/s of data. The consumer uses the Kinesis Client Library (KCL) with a single worker. The worker is processing all 10 shards but is experiencing high latency and checkpointing delays. Which THREE actions should the engineer take to improve consumer performance? (Select THREE.)

Select 3 answers
A.Increase the number of KCL workers to match the number of shards.
B.Enable enhanced fan-out for the consumer.
C.Decrease the checkpoint interval to reduce checkpointing overhead.
D.Increase the KCL maxRecords parameter to process more records per call.
E.Increase the number of shards in the stream.
AnswersA, B, D

Multiple workers can process shards in parallel, reducing per-worker load.

Why this answer

The KCL worker is processing all 10 shards sequentially within a single worker, causing a bottleneck. By increasing the number of KCL workers to match the number of shards, each worker can process one shard in parallel, significantly improving throughput and reducing latency. This is a standard scaling pattern for KCL-based consumers.

Exam trap

The trap here is that candidates may think decreasing the checkpoint interval (Option C) reduces overhead, when in fact it increases the frequency of DynamoDB writes and can degrade performance; the correct approach is to increase the checkpoint interval or use asynchronous checkpointing.

98
MCQeasy

A data engineer needs to ingest real-time clickstream data from a website into Amazon S3 for analytics. The data arrives as JSON records, each under 1 KB. The engineer wants to use a serverless solution with automatic scaling and minimal operational overhead. Which AWS service should be used as the ingestion endpoint?

A.Amazon S3 with presigned URLs
B.Amazon Kinesis Data Analytics
C.Amazon Kinesis Data Firehose
D.AWS Lambda function behind an API Gateway
AnswerC

Serverless, automatically scales, delivers to S3 with optional transformation.

Why this answer

Amazon Kinesis Data Firehose is the correct choice because it is a fully managed, serverless service designed to ingest streaming data and automatically load it into Amazon S3 with no ongoing administration. It handles automatic scaling, converts incoming JSON records to formats like Parquet or ORC if needed, and can batch data into S3 based on time or size intervals, making it ideal for real-time clickstream ingestion with minimal operational overhead.

Exam trap

The DEA-C01 exam often tests the distinction between Kinesis Data Firehose and Kinesis Data Streams, where candidates mistakenly choose Data Streams for S3 ingestion, but Firehose is the correct serverless option for direct S3 delivery with automatic scaling and no consumer management.

How to eliminate wrong answers

Option A is wrong because Amazon S3 with presigned URLs is intended for direct uploads from clients, not for continuous real-time streaming ingestion, and it lacks automatic scaling and built-in data transformation capabilities. Option B is wrong because Amazon Kinesis Data Analytics is a service for running SQL or Apache Flink queries on streaming data, not an ingestion endpoint for loading data into S3. Option D is wrong because while an AWS Lambda function behind an API Gateway can ingest data, it requires manual scaling configuration, has a maximum payload size of 6 MB for API Gateway and 256 KB for synchronous Lambda invocations, and introduces higher operational overhead compared to a purpose-built streaming ingestion service like Firehose.

99
MCQhard

A company uses Amazon Kinesis Data Firehose to deliver streaming data to Amazon S3. The data is in JSON format and each record is about 2 KB. The delivery stream is configured to buffer data for 60 seconds or 5 MB, whichever comes first. The team notices that the S3 objects are very small (around 1 MB) and numerous, causing high costs due to S3 PUT requests. Which configuration change should the team make to reduce the number of S3 objects?

A.Enable compression (GZIP) on the delivery stream.
B.Increase the buffer size to 50 MB and the buffer interval to 300 seconds.
C.Reduce the buffer interval to 30 seconds and keep buffer size at 5 MB.
D.Switch from Kinesis Data Firehose to Amazon Kinesis Data Streams and use a Lambda function to write to S3.
AnswerB

Larger buffer accumulates more data before writing, resulting in fewer, larger objects.

Why this answer

Increasing the buffer size to 50 MB and the buffer interval to 300 seconds allows Kinesis Data Firehose to accumulate more data before writing to S3, resulting in fewer, larger objects. The current configuration triggers a write every 60 seconds or when 5 MB is buffered, but since each record is only 2 KB, the 5 MB threshold is rarely met, causing frequent small writes. By raising both thresholds, the delivery stream will buffer more records and write larger objects, reducing the number of S3 PUT requests and associated costs.

Exam trap

The trap here is that candidates often think reducing the buffer interval or enabling compression will reduce object count, but in reality, compression reduces object size (increasing count) and a shorter interval increases write frequency, both worsening the problem.

How to eliminate wrong answers

Option A is wrong because enabling GZIP compression reduces the size of the data written to S3, which would make objects even smaller and potentially increase the number of PUT requests, not decrease them. Option C is wrong because reducing the buffer interval to 30 seconds would cause more frequent writes to S3, increasing the number of small objects and exacerbating the cost issue. Option D is wrong because switching to Kinesis Data Streams with a Lambda function adds complexity and does not inherently reduce the number of S3 objects; the Lambda function would still need to batch writes appropriately, and without proper buffering, it could produce even more small objects.

100
MCQhard

A data engineer is troubleshooting a Kinesis Data Streams application that is experiencing high latency. The stream has 2 shards. The application is using a single Kinesis Client Library (KCL) worker to process all shards. Which change will MOST likely reduce latency?

A.Increase the number of shards to 4.
B.Deploy multiple KCL workers to process shards in parallel.
C.Use a larger instance type for the Kinesis stream.
D.Decrease the number of shards to 1.
AnswerB

Multiple workers can process shards concurrently, reducing latency.

Why this answer

The application uses a single KCL worker to process all 2 shards, which processes records sequentially and causes high latency. Deploying multiple KCL workers (ideally one per shard) enables parallel processing of shards, significantly reducing latency. Option A is incorrect because increasing shard count to 4 adds more capacity but does not address the bottleneck of a single worker; the same worker would process all 4 shards sequentially, potentially worsening latency.

Option C is incorrect because Kinesis Data Streams is a managed service; there is no instance type to change for the stream itself. The KCL worker runs on your compute resources, not on the stream. Option D is incorrect because decreasing shards to 1 reduces the level of parallelism, increasing the workload per shard and likely increasing latency further.

101
Multi-Selectmedium

A company is using AWS Glue to run ETL jobs that read from Amazon S3 and write to Amazon Redshift. The jobs are failing intermittently with 'Out of Memory' errors. Which TWO actions should the data engineer take to resolve this issue? (Choose TWO.)

Select 2 answers
A.Switch the output to Amazon S3 instead of Redshift
B.Increase the number of DPUs allocated to the Glue job
C.Reduce the number of partitions in the input data
D.Increase the spark.sql.shuffle.partitions parameter
E.Enable job metrics in CloudWatch to monitor memory usage
AnswersB, E

More DPUs provide more memory.

Why this answer

Increasing the number of DPUs allocated to the Glue job (Option B) directly addresses the 'Out of Memory' errors by providing more memory and compute resources per executor. AWS Glue uses Apache Spark under the hood, where each DPU provides 4 vCPU and 16 GB of memory; adding more DPUs increases the total memory available for data processing, reducing the likelihood of OOM errors during shuffle or aggregation operations.

Exam trap

The trap here is that candidates often confuse increasing shuffle partitions (Option D) with a direct fix for OOM errors, when in fact it can increase memory pressure due to more concurrent tasks and metadata overhead, while the correct approach is to allocate more DPUs to scale memory and compute resources.

102
Multi-Selecteasy

A data engineer needs to transfer 50 TB of data from an on-premises data center to Amazon S3 over a 1 Gbps network. The transfer must be completed within one week. Which TWO AWS services can be used for this task? (Choose TWO.)

Select 2 answers
A.AWS Glue
B.AWS DataSync
C.AWS Snowball
D.Amazon S3 Transfer Acceleration
E.AWS Direct Connect
AnswersB, C

Designed for network-based bulk data transfer.

Why this answer

AWS DataSync is correct because it is designed to efficiently transfer large datasets over the network using a purpose-built agent that parallelizes data transfer and optimizes network utilization. With a 1 Gbps link, DataSync can transfer 50 TB within a week by leveraging its built-in compression, encryption, and incremental transfer capabilities, making it suitable for this time-constrained migration.

Exam trap

The trap here is that candidates assume S3 Transfer Acceleration can accelerate any transfer, but it only optimizes the last-mile upload to S3 and does not address the bottleneck of moving data from on-premises storage to the internet, nor does it provide a mechanism to pull data from on-premises systems.

103
MCQhard

A company is using Amazon Kinesis Data Streams to ingest real-time clickstream data. The data is consumed by a fleet of EC2 instances running a custom application that processes the records and writes to DynamoDB. The application is experiencing high latency and records are being processed slower than they are produced. The stream has 5 shards. Which action would MOST effectively improve processing speed?

A.Use the Kinesis Client Library (KCL) to automatically distribute shards among instances.
B.Increase the EC2 instance size to provide more CPU and memory.
C.Add more EC2 instances consuming from the same stream without changing shard count.
D.Increase the number of shards in the Kinesis stream.
AnswerD

More shards increase the stream's capacity and allow more parallel consumers.

Why this answer

The bottleneck is the number of shards in the Kinesis stream. Each shard provides a fixed read capacity of 2 MB/s and 5 read transactions per second. With only 5 shards, the total read throughput is limited regardless of how many EC2 instances consume the data.

Increasing the number of shards increases the total read capacity, allowing more records to be consumed in parallel and reducing processing latency.

Exam trap

The trap here is that candidates often think adding more consumers (EC2 instances) will automatically speed up processing, but they fail to recognize that each shard's read throughput is fixed, so without increasing shards, additional consumers cannot consume more data in parallel.

How to eliminate wrong answers

Option A is wrong because the Kinesis Client Library (KCL) manages shard-to-instance assignment and checkpointing, but it does not increase the total throughput of the stream; it only distributes existing shard capacity among consumers. Option B is wrong because increasing EC2 instance size improves compute resources but does not address the fundamental read throughput limit imposed by the number of shards; the application will still be throttled by the shard's 2 MB/s read limit. Option C is wrong because adding more EC2 instances without increasing the number of shards does not increase the total read capacity; each shard can only be consumed by one record processor at a time (within a single KCL application), so additional instances will remain idle or cause contention.

104
MCQeasy

A data engineer is ingesting streaming data from thousands of IoT devices into AWS. The data is JSON-formatted and must be stored in Amazon S3 for long-term analytics. Which service is most appropriate for real-time ingestion and routing to S3?

A.Amazon SQS
B.Amazon Kinesis Data Firehose
C.Amazon Kinesis Data Streams
D.AWS Glue
AnswerB

Kinesis Data Firehose can deliver streaming data directly to S3 without additional code.

Why this answer

Amazon Kinesis Data Firehose is the most appropriate service because it is designed for real-time ingestion of streaming data and can directly deliver data to Amazon S3 without requiring custom code. It automatically handles buffering, compression, and partitioning of JSON data, making it ideal for long-term analytics storage.

Exam trap

The trap here is that candidates often confuse Kinesis Data Streams with Kinesis Data Firehose, assuming both can directly write to S3, but Data Streams requires a downstream consumer to perform the write, making Firehose the correct choice for direct, managed ingestion to S3.

How to eliminate wrong answers

Option A is wrong because Amazon SQS is a message queue service for decoupling application components, not a streaming ingestion service; it lacks built-in data transformation and direct S3 delivery capabilities. Option C is wrong because Amazon Kinesis Data Streams is a real-time data streaming service that requires a separate consumer (e.g., Lambda or Firehose) to write data to S3, adding complexity and latency; it is not a direct ingestion-to-S3 solution. Option D is wrong because AWS Glue is a serverless ETL service for batch data processing and cataloging, not designed for real-time streaming ingestion or direct routing to S3.

105
MCQhard

A healthcare company is ingesting patient data from a legacy system into an Amazon S3 data lake using AWS Glue. The legacy system produces CSV files with inconsistent schemas (columns may appear or disappear in different files). The data engineer needs to create a Glue ETL job that can handle schema evolution and transform the data into a standardized parquet format. The job should also be able to process new files as they arrive. Which approach should the data engineer use?

A.Use AWS Glue crawlers to create a schema in the Data Catalog and then use a standard Spark DataFrame for transformation.
B.Use AWS Glue DynamicFrames to read the CSV files and apply transformations using resolveChoice and applyMapping.
C.Use a Python shell job in Glue to manually parse each file and write to parquet.
D.Use a Glue ETL job with a static schema defined in the script and ignore files that don't match.
AnswerB

DynamicFrames support schema evolution.

Why this answer

AWS Glue DynamicFrames support schema evolution by allowing schema-on-read, and the `resolveChoice` and `applyMapping` transformations can handle inconsistent schemas across CSV files. Option A is wrong because crawlers only catalog schemas, not perform ETL transformations. Option C is wrong because Python shell jobs are not designed for large-scale ETL and lack native schema evolution handling.

Option D is wrong because a static schema would reject files with missing or extra columns, failing to handle schema evolution.

106
Multi-Selectmedium

A data engineer needs to schedule a nightly ETL job that reads from an Amazon RDS database and writes to Amazon S3 in Parquet format. The solution must be serverless and minimize cost. Which TWO AWS services should be used? (Choose TWO.)

Select 2 answers
A.AWS Data Pipeline
B.AWS Lambda
C.Amazon Athena
D.Amazon S3
E.AWS Glue
AnswersD, E

S3 is the destination for the transformed data.

Why this answer

AWS Glue can run serverless ETL jobs. Amazon S3 is the destination. Lambda could trigger but not run the ETL itself; Data Pipeline is not serverless; Athena is query-only.

107
MCQhard

A company has a Glue ETL job that reads from an Amazon RDS for MySQL table and writes to Amazon S3. The job runs hourly and processes new records based on a 'last_modified' timestamp column. Recently, the job started missing some records because the timestamp in MySQL is stored with microsecond precision but Glue's job bookmark only tracks second precision. Which solution addresses this issue?

A.Use a job parameter to store the last processed timestamp with millisecond precision and query records greater than that value.
B.Increase the job frequency to every 30 minutes.
C.Run a full refresh of the table each time instead of incremental.
D.Modify the MySQL table to use a DATE data type instead of TIMESTAMP.
AnswerA

Custom job bookmark with higher precision.

Why this answer

AWS Glue job bookmarks track timestamps with only second precision, so records with microsecond differences within the same second are missed. By using a custom job parameter to store the last processed timestamp with millisecond precision and querying records greater than that value, you bypass Glue's bookmark limitation and capture all new or modified records.

Exam trap

The trap here is that candidates assume Glue job bookmarks automatically handle all timestamp precisions, but the exam tests awareness that bookmarks default to second-level granularity and that custom logic is required for sub-second precision.

How to eliminate wrong answers

Option B is wrong because increasing job frequency does not address the precision mismatch; it only reduces the window for missed records but does not eliminate the root cause of second-level granularity. Option C is wrong because running a full refresh each time is inefficient and costly, and it does not solve the precision issue—it simply avoids incremental processing. Option D is wrong because changing the column to DATE data type would lose time-of-day information entirely, making incremental processing based on last_modified impossible.

108
MCQmedium

An e-commerce company ingests clickstream data from their website into Amazon S3. The data is in JSON format, and each file is about 10 MB. They need to transform the data into a columnar format for analytics and load it into Amazon Redshift nightly. The transformation should be cost-effective and require minimal operational overhead. Which approach meets these requirements?

A.Use AWS Glue ETL job to convert to Parquet and load into Redshift.
B.Use Amazon Redshift COPY command to load JSON directly.
C.Use Amazon EMR with Spark to transform and load data.
D.Use AWS Lambda to transform each file and write to Redshift.
AnswerA

Serverless and minimal overhead.

Why this answer

AWS Glue ETL is the correct choice because it is a serverless, managed service that can efficiently convert JSON to Parquet (a columnar format optimized for Redshift) and load the data into Redshift with minimal operational overhead. The nightly batch processing of 10 MB files is well-suited for Glue's pay-per-use pricing, making it cost-effective without requiring infrastructure management.

Exam trap

The trap here is that candidates may choose Amazon EMR or Lambda because they are familiar with Spark or serverless functions, but they overlook the operational overhead of EMR and the execution limits of Lambda for batch workloads, while Glue provides a balanced, managed solution for this specific use case.

How to eliminate wrong answers

Option B is wrong because the Redshift COPY command can load JSON directly, but it does not transform the data into a columnar format like Parquet; it loads JSON as-is, which is less efficient for analytics and may require additional schema handling. Option C is wrong because Amazon EMR with Spark introduces significant operational overhead for managing clusters, tuning, and monitoring, which is unnecessary for a simple nightly transformation of small 10 MB files. Option D is wrong because AWS Lambda has a maximum execution timeout of 15 minutes and limited memory (up to 10 GB), making it unsuitable for batch processing multiple files or handling large datasets; it is designed for event-driven, short-lived tasks, not nightly ETL workloads.

109
MCQeasy

A data engineer is tasked with transforming JSON data from an S3 bucket into Parquet format for efficient querying. The transformation should run on a schedule every hour. Which AWS service is best suited for this task?

A.AWS Lambda
B.Amazon Athena
C.AWS Glue
D.Amazon EMR
AnswerC

Glue provides managed ETL jobs that can be scheduled and support Parquet conversion.

Why this answer

AWS Glue is the best choice because it is a fully managed ETL service designed specifically for transforming and cataloging data at scale. It can natively read JSON from S3, convert it to Parquet, and run on a scheduled hourly basis using a Glue job with a trigger, without requiring server management or custom infrastructure.

Exam trap

The trap here is that candidates often confuse Athena's ability to query Parquet with the ability to transform data into Parquet, but Athena is a query engine, not an ETL service, and cannot perform scheduled data format conversions.

How to eliminate wrong answers

Option A is wrong because AWS Lambda has a maximum execution timeout of 15 minutes and a 10 GB memory limit, making it unsuitable for processing large JSON datasets or running long-running hourly transformations. Option B is wrong because Amazon Athena is an interactive query service for analyzing data directly in S3, not a transformation engine; it cannot convert JSON to Parquet and write the output back to S3 in a scheduled, automated manner. Option D is wrong because Amazon EMR requires provisioning and managing a cluster of EC2 instances, which adds operational overhead and cost, whereas the task calls for a serverless, scheduled transformation with minimal management.

110
MCQmedium

A company uses AWS Glue ETL jobs to process data from an S3 data lake. The job reads data in CSV format, transforms it, and writes to Parquet. The job runs daily and takes 2 hours to complete. The data volume is increasing by 20% each month. The engineer wants to reduce the job runtime. Which action is most effective?

A.Increase the number of DPUs for the Glue job
B.Enable compression on the input CSV files
C.Switch from Python Shell to Spark ETL
D.Partition the input data in S3 by date and use partition pruning in the job
AnswerD

Partition pruning limits the data read to only relevant partitions, drastically reducing processing time.

Why this answer

Most effective because partitioning the input data by date and using partition pruning allows the Glue ETL job to read only the relevant partitions instead of scanning the entire S3 data lake. This drastically reduces the amount of data processed, which directly addresses the growing data volume and shortens job runtime. Partition pruning is a core optimization for Spark-based Glue jobs, as it leverages Hive-style partitioning to skip unnecessary files.

Exam trap

The trap here is that candidates often assume increasing DPUs or enabling compression is the universal fix, but they fail to recognize that reducing the data scanned via partition pruning is the most impactful optimization for growing datasets in S3-based Glue jobs.

How to eliminate wrong answers

Option A is wrong because increasing DPUs (Data Processing Units) adds more parallelism but does not reduce the volume of data read; it may help only if the job is CPU-bound, but the primary bottleneck here is the increasing data volume, not compute capacity. Option B is wrong because enabling compression on input CSV files reduces storage size and I/O overhead, but CSV is not splittable when compressed (e.g., Gzip), which can actually harm parallelism and increase runtime; moreover, the job still reads all data. Option C is wrong because the question states the job already uses AWS Glue ETL, which is Spark-based by default; switching from Python Shell to Spark ETL would be a regression, as Python Shell is single-node and slower for large datasets, but the current job is already using Spark (implied by Glue ETL), so this change is irrelevant or counterproductive.

111
MCQmedium

A streaming application sends data to Amazon Kinesis Data Streams. The data must be enriched with reference data from an Amazon DynamoDB table in real-time. Which AWS service can be used to perform this enrichment with minimal latency?

A.Amazon Kinesis Data Analytics for Apache Flink
B.Amazon Kinesis Data Firehose with Lambda transformation
C.AWS Lambda function triggered by Kinesis Data Streams
D.AWS Glue streaming ETL
AnswerA

Flink can perform low-latency stream processing and join with DynamoDB.

Why this answer

Amazon Kinesis Data Analytics for Apache Flink is correct because it allows you to run Apache Flink applications that can read from a Kinesis data stream, perform stateful stream processing, and enrich records in real-time by joining with reference data stored in DynamoDB. Flink's asynchronous I/O and managed state enable sub-second enrichment latency without the cold-start delays or concurrency limits of Lambda-based approaches.

Exam trap

The DEA-C01 exam often tests the distinction between real-time stream processing (Kinesis Data Analytics for Flink) and near-real-time or batch-oriented services (Firehose, Glue ETL), leading candidates to choose Lambda because they assume serverless functions are always the lowest-latency option, ignoring concurrency and cold-start limitations in streaming contexts.

How to eliminate wrong answers

Option B is wrong because Amazon Kinesis Data Firehose is a near-real-time delivery service with a minimum buffer interval of 60 seconds, making it unsuitable for real-time enrichment with minimal latency. Option C is wrong because AWS Lambda triggered by Kinesis Data Streams has a maximum concurrency limit per shard (e.g., 10 concurrent invocations per shard) and incurs cold-start latency, which can cause backpressure and increased processing delays for high-throughput streaming workloads. Option D is wrong because AWS Glue streaming ETL is based on Apache Spark Structured Streaming, which introduces higher startup overhead and micro-batch latency (typically seconds), making it less optimal for sub-second real-time enrichment compared to Flink's event-at-a-time processing.

112
MCQhard

A company uses AWS Glue to transform data stored in Amazon S3. During a run, the job fails with a 'OutOfMemoryError' in the Spark executor. The job processes 2 TB of parquet files using 10 DPUs. The data is evenly distributed across partitions. Which action would MOST likely resolve the issue without impacting the job logic?

A.Enable S3 request rate increase to speed up data reading.
B.Increase the number of DPUs allocated to the Glue job.
C.Repartition the data to a larger number of partitions.
D.Change the input format from Parquet to Snappy-compressed CSV.
AnswerB

More DPUs increase total memory available.

Why this answer

The OutOfMemoryError in the Spark executor indicates that the available memory per executor is insufficient for the data being processed. Increasing the number of DPUs allocated to the Glue job increases the total memory and compute resources available, allowing Spark to handle the 2 TB dataset without changing the job logic.

Exam trap

The trap here is that candidates may confuse memory issues with I/O bottlenecks or data skew, leading them to choose repartitioning or format changes, but the direct fix for insufficient executor memory is to increase DPUs.

How to eliminate wrong answers

Option A is wrong because enabling S3 request rate increase speeds up data reading but does not address the memory exhaustion in the Spark executor; the bottleneck is memory, not I/O throughput. Option C is wrong because repartitioning the data to a larger number of partitions can actually increase memory overhead due to more shuffle operations and task metadata, potentially worsening the OutOfMemoryError. Option D is wrong because changing the input format from Parquet to Snappy-compressed CSV would increase data size (Parquet is columnar and more efficient) and processing complexity, likely increasing memory pressure rather than resolving it.

113
MCQeasy

A data engineer needs to ingest data from an external partner's FTP server to Amazon S3. The data arrives once daily as a CSV file. Which AWS service should be used for this ingestion?

A.AWS DataSync
B.Amazon Kinesis Data Firehose
C.Amazon AppFlow
D.AWS Transfer Family
AnswerD

AWS Transfer Family provides managed FTP and SFTP support for S3.

Why this answer

AWS Transfer Family provides fully managed support for file transfers over SFTP, FTPS, and FTP protocols, making it the correct choice for ingesting CSV files from an external partner's FTP server. It integrates directly with Amazon S3 as a destination, enabling automated, secure, and scheduled transfers without custom infrastructure.

Exam trap

The trap here is that candidates often confuse AWS DataSync (which is for NFS/SMB, not FTP) with a general-purpose file transfer service, or they incorrectly assume Kinesis Data Firehose can handle batch file ingestion from external sources.

How to eliminate wrong answers

Option A is wrong because AWS DataSync is designed for high-speed, large-scale data transfers between on-premises storage and AWS, but it does not support the FTP protocol; it uses its own agent-based architecture over NFS/SMB. Option B is wrong because Amazon Kinesis Data Firehose is a streaming ingestion service for real-time data (e.g., logs, events) and cannot connect to an FTP server or handle scheduled batch file transfers. Option C is wrong because Amazon AppFlow supports SaaS application integrations (e.g., Salesforce, Slack) and does not support FTP as a source or destination.

114
MCQeasy

A company is using Amazon Kinesis Data Firehose to ingest data into Amazon S3. The data must be transformed from JSON to Parquet format before delivery. Which feature should be enabled on the Firehose delivery stream?

A.Amazon Kinesis Data Analytics
B.Amazon S3 event notifications
C.Format conversion (Parquet/ORC)
D.AWS Lambda transformation
AnswerC

Firehose natively supports converting JSON to Parquet or ORC.

Why this answer

Amazon Kinesis Data Firehose has a built-in format conversion feature that can automatically convert input data from JSON to Parquet or ORC format before delivery to Amazon S3. Option A (Amazon Kinesis Data Analytics) is for real-time stream processing, not format conversion within Firehose. Option B (Amazon S3 event notifications) triggers notifications on S3 events, not data transformation.

Option D (AWS Lambda transformation) allows custom code for data transformation but is not specifically for converting JSON to Parquet; the built-in format conversion is the appropriate feature for this task.

115
Multi-Selectmedium

A data engineer needs to design a data ingestion pipeline that captures streaming data from mobile app events into Amazon S3 for analytics. The pipeline must support real-time processing of events and allow for schema evolution over time. Which AWS services should the engineer use? (Choose THREE.)

Select 3 answers
A.Amazon Kinesis Data Analytics
B.Amazon Kinesis Data Firehose
C.AWS Glue ETL jobs
D.Amazon Kinesis Data Streams
E.AWS AppFlow
AnswersA, B, D

Enables real-time processing and schema evolution.

Why this answer

Amazon Kinesis Data Analytics is correct because it enables real-time processing of streaming data using SQL or Apache Flink, allowing the engineer to analyze mobile app events as they arrive. This supports the requirement for real-time processing before the data is stored in Amazon S3 for analytics.

Exam trap

The trap here is that candidates often confuse AWS Glue ETL jobs as a streaming solution, but Glue is fundamentally batch-oriented and cannot meet real-time processing requirements, while AppFlow is mistakenly chosen for its integration capabilities despite lacking streaming ingestion support.

116
Multi-Selecthard

A company is using Amazon Kinesis Data Analytics for Apache Flink to process real-time clickstream data. The application reads from a Kinesis stream and writes aggregated results to an Amazon S3 bucket. The company notices that the application is falling behind and the checkpoint duration is increasing. Which THREE actions should the data engineer take to improve performance? (Choose THREE.)

Select 3 answers
A.Decrease the number of shards in the source Kinesis stream.
B.Use multiple S3 prefixes in the output path to avoid throttling.
C.Increase the heap memory of the Flink application.
D.Increase the checkpoint interval to reduce checkpoint overhead.
E.Increase the parallelism of the Flink application.
AnswersB, D, E

Multiple prefixes increase S3 write performance.

Why this answer

Options B, D, and E are correct. Using multiple S3 prefixes in the output path (B) reduces the risk of S3 write throttling by distributing writes across multiple partition keys. Increasing the checkpoint interval (D) reduces the frequency of checkpointing, thus decreasing the overhead and allowing the application to process more data between checkpoints.

Increasing parallelism (E) allows the Flink application to process more data in parallel, improving throughput. Decreasing the number of shards (A) would reduce the incoming data rate and potentially worsen the lag. Increasing heap memory (C) might help with memory pressure but does not directly address checkpoint duration or processing lag; the primary issues are related to parallelism and checkpoint overhead.

117
MCQmedium

A data engineering team is ingesting streaming data from IoT devices into Amazon Kinesis Data Streams. The data is then consumed by an AWS Lambda function that transforms each record and writes it to Amazon S3. Recently, the Lambda function started failing with 'ProvisionedThroughputExceededException' errors when writing to S3. The team has already increased the Lambda function's memory and timeout. Which action should the team take to resolve the issue?

A.Use S3 Batch Operations to write data in batches.
B.Increase the number of shards in the Kinesis data stream.
C.Enable S3 Transfer Acceleration on the destination bucket.
D.Implement retries with exponential backoff in the Lambda function for S3 put operations.
AnswerD

This handles transient S3 throttling by retrying with backoff.

Why this answer

The 'ProvisionedThroughputExceededException' error indicates that the Lambda function is being throttled by S3 due to exceeding the bucket's request rate limits. Implementing retries with exponential backoff in the Lambda function for S3 put operations is the correct solution because it allows the function to gracefully handle transient throttling errors by waiting progressively longer between retries, which aligns with AWS's guidance for managing S3 request rate limits.

Exam trap

The trap here is that candidates confuse the source of the error (Kinesis vs. S3) and incorrectly assume that increasing Kinesis shards will fix the S3 throttling, or they mistake S3 Transfer Acceleration for a solution to rate limits when it only improves network latency.

How to eliminate wrong answers

Option A is wrong because S3 Batch Operations is designed for bulk processing of existing objects in S3, not for handling real-time streaming writes from Lambda, and it does not address the immediate throttling issue during individual put operations. Option B is wrong because increasing the number of shards in the Kinesis data stream would increase the parallelism of data ingestion into Lambda, but the error occurs when writing to S3, not when reading from Kinesis, so it would not resolve the S3 throttling. Option C is wrong because S3 Transfer Acceleration optimizes network transfer speed by using AWS edge locations, but it does not affect S3's internal request rate limits or throttle errors, which are based on bucket-level throughput capacity.

118
Multi-Selecteasy

A data engineer is designing a serverless data ingestion pipeline that uses Amazon Kinesis Data Firehose to deliver data to Amazon S3. The data must be transformed using AWS Lambda before being written to S3. Which two steps are required to enable this transformation? (Select TWO.)

Select 2 answers
A.Set up an S3 event notification to trigger the Lambda function on object creation.
B.Configure a Lambda function as a data transformation source in the Firehose delivery stream.
C.Ensure the Lambda function returns the transformed data in the format required by Firehose.
D.Subscribe the Lambda function to the CloudWatch Logs log group for the Firehose stream.
E.Have the Lambda function write the transformed data directly to the S3 bucket.
AnswersB, C

This enables Firehose to invoke Lambda for transformation.

Why this answer

Amazon Kinesis Data Firehose can be configured to invoke a Lambda function as a data transformation source. This allows Firehose to pass incoming records to the Lambda function, which processes and returns the transformed records before they are delivered to the S3 destination. Option C is correct because the Lambda function must return data in the specific format that Firehose expects, including a record ID, result status, and base64-encoded data, otherwise the transformation will fail.

Exam trap

The trap here is that candidates often confuse post-delivery transformations (using S3 event notifications) with in-stream transformations (using Firehose's built-in Lambda integration), leading them to select Option A instead of the correct Firehose-specific configuration.

119
MCQeasy

A data engineer is using AWS Glue to run an ETL job that reads data from Amazon DynamoDB and writes to Amazon Redshift. The job fails with a 'ThroughputExceededException' error. What is the most likely cause?

A.The Glue job has a timeout setting that is too low
B.The Redshift cluster's concurrency scaling is insufficient
C.The DynamoDB table's read capacity is insufficient for the Glue job's read rate
D.The S3 bucket where Glue writes temporary data does not have proper permissions
AnswerC

Glue reads from DynamoDB and may exceed provisioned read capacity, causing throttling.

Why this answer

The 'ThroughputExceededException' error occurs when AWS Glue reads from DynamoDB at a rate that exceeds the table's provisioned read capacity, causing DynamoDB to throttle requests. Option A is incorrect because a timeout setting would result in a different error (e.g., 'Job run timeout'). Option B is incorrect because Redshift concurrency scaling affects query performance, not DynamoDB read throttling.

Option D is incorrect because S3 permissions issues would cause 'AccessDenied' errors, not throughput exceedance.

120
MCQhard

A data pipeline uses AWS Glue ETL to process data from an S3 bucket and write results to a Redshift cluster. The job fails with a 'DiskFull' error on the Glue worker nodes. What is the best way to resolve this issue?

A.Increase the number of Glue DPUs or use G.1X worker type.
B.Decrease the number of partitions in the output.
C.Use a different file format like Parquet to reduce storage.
D.Increase the job timeout setting.
AnswerA

More DPUs or larger workers provide additional disk and memory.

Why this answer

The 'DiskFull' error on Glue worker nodes indicates that the local storage allocated per worker is insufficient for the data being processed. Increasing the number of DPUs or switching to a G.1X worker type (which provides more disk space per worker) directly addresses this by either distributing the workload across more workers or upgrading to a worker type with higher storage capacity.

Exam trap

The trap here is that candidates often confuse storage on the worker nodes with storage in the output target, leading them to choose file format optimization (Option C) instead of addressing the worker-level resource constraint.

How to eliminate wrong answers

Option B is wrong because decreasing the number of output partitions reduces parallelism and can actually increase the data volume per worker, worsening the disk space issue. Option C is wrong because using Parquet reduces storage in the output target (e.g., S3 or Redshift), not on the Glue worker nodes' local ephemeral storage where the 'DiskFull' error occurs. Option D is wrong because increasing the job timeout only extends the maximum execution duration; it does not affect the disk space available on worker nodes.

121
MCQhard

A data engineer is troubleshooting a Kinesis Data Firehose delivery stream that is experiencing high error rates when writing to an S3 bucket. The error logs indicate 'AccessDenied' errors. The S3 bucket policy allows access from the Firehose service, but the errors persist. What is the most likely cause?

A.The S3 bucket has a lifecycle policy that is deleting objects too quickly
B.The IAM role assumed by Firehose does not have the s3:PutObject permission
C.The S3 bucket has default encryption enabled
D.The S3 bucket uses an AWS KMS key for encryption and Firehose does not have kms:Decrypt permission
AnswerB

Firehose requires the IAM role to have S3 write permissions.

Why this answer

The most likely cause is that the IAM role assumed by Kinesis Data Firehose lacks the `s3:PutObject` permission. Even if the S3 bucket policy allows access from the Firehose service, the IAM role must explicitly grant the necessary S3 write permissions for Firehose to deliver data. Without this permission, Firehose receives 'AccessDenied' errors when attempting to write objects to the bucket.

Exam trap

The trap here is that candidates assume a bucket policy allowing Firehose access is sufficient, but the IAM role assumed by Firehose must also explicitly grant the write permissions, as AWS evaluates both identity-based and resource-based policies.

How to eliminate wrong answers

Option A is wrong because a lifecycle policy that deletes objects too quickly would not cause 'AccessDenied' errors; it would cause data to be deleted after delivery, not prevent writes. Option C is wrong because default encryption on the S3 bucket does not block write access; Firehose can write encrypted objects as long as it has the necessary permissions. Option D is wrong because the error is 'AccessDenied', not a KMS-related error; if the issue were KMS permissions, the error would typically be 'KMS.AccessDeniedException' or similar, and Firehose would need `kms:GenerateDataKey` (not `kms:Decrypt`) to encrypt objects with SSE-KMS.

122
Drag & Dropmedium

Arrange the steps to implement a data lake on Amazon S3 with AWS Lake Formation.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

Start by creating the S3 bucket. Then register it in Lake Formation, set up administrators, define the schema in Glue Catalog, and finally grant access to users.

123
Multi-Selecteasy

Which TWO AWS services can be used to transform data in transit during ingestion? (Choose 2.)

Select 2 answers
A.Amazon S3 Transfer Acceleration
B.Amazon Kinesis Data Firehose with Lambda transformation
C.AWS Glue ETL
D.Amazon Athena
E.AWS Data Pipeline
AnswersB, C

Firehose can call Lambda to transform records.

Why this answer

Amazon Kinesis Data Firehose can invoke an AWS Lambda function to transform streaming data in real time before delivering it to a destination, making it suitable for transforming data in transit during ingestion. AWS Glue ETL can be used for both batch and streaming transformations; specifically, AWS Glue supports streaming ETL jobs that can transform data in transit as it is ingested from sources like Amazon MSK or Kinesis Data Streams. Therefore, both services can transform data during ingestion, albeit with different use cases and latency characteristics.

Exam trap

Candidates often mistakenly think that AWS Glue ETL is only for batch processing and cannot transform data in transit, but AWS Glue supports streaming ETL jobs that can transform data during ingestion, making it a valid choice for in-transit transformation.

124
Multi-Selectmedium

Which TWO AWS services can be used to ingest streaming data into Amazon S3 with minimal code? (Choose two.)

Select 2 answers
A.AWS Lambda
B.Amazon Kinesis Data Firehose
C.Amazon Managed Streaming for Apache Kafka (MSK) with S3 sink connector
D.AWS Database Migration Service (DMS)
E.AWS DataSync
AnswersB, C

Firehose is serverless and delivers streaming data to S3 without code.

Why this answer

Amazon Kinesis Data Firehose (Option B) is a fully managed service that can ingest streaming data and deliver it to Amazon S3 with minimal configuration and no code required. Amazon MSK with the S3 sink connector (Option C) allows streaming data from Apache Kafka topics to be automatically written to S3 with minimal code, as the connector handles the integration. Option A (AWS Lambda) requires custom code to process and write data to S3.

Option D (AWS DMS) is designed for database migration, not streaming ingestion. Option E (AWS DataSync) is for batch file transfers, not real-time streaming.

125
Multi-Selectmedium

A company is using Amazon Kinesis Data Streams to ingest clickstream data from a website. The data is consumed by an AWS Lambda function that enriches records and writes to Amazon S3. The Lambda function is experiencing high error rates due to records exceeding the 256 KB payload limit. Which TWO actions should the team take to resolve this issue?

Select 2 answers
A.Increase the Lambda function timeout.
B.Enable compression on the producer side before sending records to Kinesis.
C.Use the Kinesis Producer Library (KPL) to aggregate multiple small records into a single larger record.
D.Switch from Kinesis Data Streams to Kinesis Data Firehose.
E.Increase the number of shards in the Kinesis stream.
AnswersB, C

Compression reduces record size below the 256 KB limit.

Why this answer

Enabling compression on the producer side reduces the size of each record before it is sent to Kinesis Data Streams, directly addressing the 256 KB payload limit. Option C is correct because the Kinesis Producer Library (KPL) aggregates multiple small records into a single larger record, which is then stored as one Kinesis record, reducing the number of records that exceed the limit and improving throughput.

Exam trap

The trap here is that candidates may confuse increasing shards (which increases throughput) with reducing record size, or think that switching to Firehose bypasses the 256 KB limit, when in fact Firehose also has a per-record size limit and does not address the root cause.

126
MCQmedium

A data engineer needs to transform CSV files arriving in an S3 bucket into Parquet format and store them in another S3 bucket. The transformation is simple and on-demand, triggered by data arrival. Which solution is the MOST cost-effective and requires the least operational overhead?

A.Use Amazon EMR with Spark streaming
B.Use Amazon Athena to create a new table with Parquet format
C.Use AWS Glue ETL jobs scheduled to run every hour
D.Use S3 Events to trigger an AWS Lambda function that transforms the data
AnswerD

Lambda is event-driven, cost-effective, and serverless.

Why this answer

Using S3 Events to trigger an AWS Lambda function is the most cost-effective and operationally lightweight solution for simple, on-demand CSV-to-Parquet transformations. Lambda scales automatically with each S3 PUT event, incurs no idle cost, and requires no cluster management, making it ideal for event-driven, low-volume transformations.

Exam trap

The DEA-C01 exam often tests the misconception that AWS Glue is always the best choice for ETL, but for simple, event-driven transformations with minimal overhead, Lambda is more cost-effective and operationally simpler than Glue's managed Spark environment.

How to eliminate wrong answers

Option A is wrong because Amazon EMR with Spark streaming introduces significant operational overhead (cluster provisioning, scaling, and management) and cost (even with auto-scaling, you pay for running instances) for a simple, on-demand transformation that does not require real-time streaming. Option B is wrong because Amazon Athena cannot transform data into Parquet format; it is a query engine that can read from and write to Parquet tables via CTAS statements, but it does not provide a direct, event-driven transformation trigger and incurs per-query costs that can be higher than Lambda for frequent small files. Option C is wrong because AWS Glue ETL jobs scheduled every hour introduce unnecessary latency (up to 1 hour delay) and cost (minimum billing per DPU hour) for an on-demand workload triggered by data arrival, and the scheduled polling approach is less efficient than event-driven invocation.

127
MCQhard

A company uses Amazon Kinesis Data Firehose to deliver log data to Amazon S3. The data is transformed by a Lambda function that adds a timestamp field. Recently, the Firehose delivery stream has been failing with 'Lambda invocation failed' errors. The Lambda function's CloudWatch Logs show that the function is timing out. What is the MOST likely cause?

A.The Lambda function lacks permission to write to CloudWatch Logs.
B.The Firehose buffer size is too large, causing the Lambda function to receive too many records.
C.The Lambda function timeout is set to 1 minute, which is adequate.
D.The Lambda function is running out of memory.
AnswerB

Correct. A large Firehose buffer size causes Lambda to receive a large batch, leading to timeout if the function cannot process it within its configured timeout.

Why this answer

Kinesis Data Firehose sends batches of records to the Lambda function for transformation. If the buffer size (or batch size) is too large, the Lambda function receives too many records and exceeds its configured timeout, causing 'Lambda invocation failed' errors. The timeout errors in CloudWatch Logs confirm this.

Option A is incorrect because the function is being invoked, so Lambda permissions are working. Option C is incorrect because a 1-minute timeout may be insufficient for large batches. Option D is incorrect because the logs indicate a timeout, not an out-of-memory error.

Exam trap

Candidates often confuse timeout issues with permission or memory problems. Here, the CloudWatch Logs explicitly show timeouts, pointing to batch size or timeout configuration as the root cause.

128
Drag & Dropmedium

Order the steps to troubleshoot a failed AWS Glue job that reads from JDBC and writes to S3.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

Start with logs to identify errors, then check connectivity, IAM permissions, test connection, and review script.

129
MCQhard

A financial services company ingests real-time stock trade data from multiple exchanges into Amazon Kinesis Data Streams. Each trade record is a JSON object containing fields: trade_id, symbol, price, quantity, and timestamp. The data is consumed by an AWS Lambda function that performs data validation and enrichment, then writes the processed records to an Amazon DynamoDB table for low-latency querying. Recently, the Lambda function has been timing out and failing to process all records. The Lambda function is configured with a 5-second timeout and 128 MB memory. The average record size is 2 KB, and the stream receives about 1000 records per second. The Lambda function's concurrency limit is 1000. Which set of actions should the data engineer take to resolve the issue without losing data?

A.Increase the Lambda function timeout to 60 seconds and memory to 1024 MB. Set the batch size to 100 records and enable parallelization factor of 10.
B.Increase the number of shards in the Kinesis data stream to 20 and keep the Lambda configuration unchanged.
C.Replace the Lambda function with a Kinesis Data Firehose delivery stream that writes directly to DynamoDB using a Lambda transformation.
D.Increase the Lambda function timeout to 60 seconds and memory to 1024 MB. Set the batch size to 100 records.
AnswerA

This combination increases processing capacity and prevents timeouts.

Why this answer

Increasing the Lambda timeout and memory addresses the processing bottleneck, while setting the batch size to 100 and enabling a parallelization factor of 10 allows each shard to process up to 10 concurrent batches, dramatically increasing throughput to handle 1000 records/sec (each shard can process 10 batches of 100 records concurrently, yielding 1000 records/sec per shard if the stream has at least 1 shard). This combination ensures no data loss by keeping up with the ingestion rate without exceeding the Lambda concurrency limit of 1000.

Exam trap

The trap here is that candidates often overlook the parallelization factor setting, assuming that increasing batch size and Lambda resources alone will suffice, but without parallelization, each shard can only process one batch at a time, creating a throughput bottleneck that leads to data loss.

How to eliminate wrong answers

Option B is wrong because simply increasing shards to 20 does not resolve the Lambda timeout issue; the function still has only 5 seconds and 128 MB, so it will continue to fail even with more shards. Option C is wrong because Kinesis Data Firehose cannot write directly to DynamoDB; it only supports destinations like S3, Redshift, Elasticsearch, and Splunk, and using a Lambda transformation would still require sufficient timeout and memory. Option D is wrong because increasing timeout and memory alone without enabling parallelization factor means each shard can only process one batch at a time, which at 100 records per batch would only handle 100 records per second per shard, insufficient for the 1000 records/sec load.

130
Multi-Selectmedium

A data engineering team uses AWS Glue to extract, transform, and load (ETL) data from Amazon RDS for MySQL to Amazon S3. The job runs daily and processes incremental data. The team notices that the job is taking longer than expected. Which TWO actions can improve the job performance? (Choose two.)

Select 2 answers
A.Change the worker type to Standard (single node).
B.Use pushdown predicates to filter data at the source.
C.Add more transformations to the ETL script to clean data.
D.Increase the number of DPUs for the Glue job.
E.Disable compression on the output data to reduce CPU usage.
AnswersB, D

Pushdown predicates filter data at the source, reducing data transfer and improving performance.

Why this answer

B is correct because pushdown predicates allow filtering at the source (RDS MySQL), reducing the amount of data transferred to the Glue job and thus speeding up processing. D is correct because increasing DPUs allocates more resources (CPU, memory) to the Glue job, enabling parallel processing and faster execution. A is wrong because changing to Standard (single node) reduces parallelism, slowing down the job.

C is wrong because adding more transformations increases processing time, not improving performance. E is wrong because disabling compression on output data increases I/O and storage costs, not improving performance.

131
Multi-Selectmedium

A data engineer is designing a data ingestion pipeline for IoT sensor data. The sensors send JSON messages every second, and the data must be stored in Amazon S3 in near real-time (within 5 minutes). The engineer also needs to transform the data by adding a timestamp and filtering out malformed records. Which THREE services should be used together?

Select 3 answers
A.AWS Glue
B.Amazon Athena
C.Amazon Simple Queue Service (SQS)
D.AWS IoT Core
E.Amazon Kinesis Data Firehose
AnswersA, D, E

AWS Glue can be used for streaming ETL transformations, such as adding timestamps and filtering malformed records, making it a valid component of the pipeline.

Why this answer

AWS IoT Core (D) securely ingests sensor data via MQTT and routes it to a Kinesis data stream using a rule. AWS Glue Streaming ETL (A) consumes from the stream, adds a timestamp, filters malformed records, and writes the cleaned data to Kinesis Data Firehose (E). Firehose buffers and delivers the data to Amazon S3 within minutes, meeting the near-real-time requirement.

Exam trap

Candidates often mistakenly think that Kinesis Data Firehose can be consumed directly by Glue Streaming ETL, but Glue actually reads from a Kinesis Data Streams. The correct pipeline uses IoT Core to route to a Data Stream, Glue to transform, and Firehose to deliver to S3.

132
MCQeasy

Refer to the exhibit. A company uses S3 Event Notifications to trigger an AWS Lambda function whenever a new object is uploaded to an S3 bucket. The Lambda function processes the file and moves it to a different bucket. Recently, the function has been failing intermittently. The engineer checks the Lambda CloudWatch logs and sees the above event. What is the MOST likely cause of the intermittent failures?

A.The event JSON is malformed; the 'EventSource' should be 's3.amazonaws.com'.
B.The S3 bucket name contains a hyphen, which is not allowed.
C.The S3 event notifications are not guaranteed to be delivered exactly once, causing duplicate processing.
D.The event is missing the 'object:versionId' field.
AnswerC

At-least-once delivery can cause issues.

Why this answer

S3 Event Notifications are asynchronous and may be duplicated or delivered out of order, causing race conditions. Option A is wrong because the event has all required fields. Option B is wrong because the bucket name is valid.

Option D is wrong because the event format is correct.

133
MCQmedium

A data engineer is designing a pipeline that ingests JSON logs from an application into Amazon S3. The logs contain a timestamp field. The pipeline must partition the data by date in S3 (e.g., year=2024/month=10/day=01). Which approach minimizes transformation effort?

A.Use Amazon Kinesis Data Firehose with dynamic partitioning
B.Use AWS Glue crawlers to infer schema and create partitions
C.Use AWS Lambda to process each object and copy to the appropriate prefix
D.Use Amazon Athena to create partitions on the existing data
AnswerA

Firehose can dynamically partition data based on the timestamp and deliver to S3 partitioned prefixes.

Why this answer

Amazon Kinesis Data Firehose with dynamic partitioning can automatically partition incoming JSON data based on the timestamp field without requiring custom transformation code. It evaluates the timestamp using a JQ expression or inline parsing, then writes records directly to S3 prefixes like year=2024/month=10/day=01. This minimizes transformation effort because the partitioning logic is configured declaratively in the Firehose delivery stream, eliminating the need for Lambda functions or post-ingestion processing.

Exam trap

The trap here is that candidates confuse metadata partitioning (e.g., using Glue crawlers or Athena) with physical partitioning in S3, assuming that catalog operations alone reorganize the data, when in fact only ingestion-time partitioning (like Firehose dynamic partitioning) creates the folder structure without extra transformation effort.

How to eliminate wrong answers

Option B is wrong because AWS Glue crawlers infer schema and create partition metadata in the Glue Data Catalog, but they do not physically reorganize data into partitioned S3 prefixes; they only add partition keys to the catalog after data is already stored. Option C is wrong because using AWS Lambda to process each object and copy it to the appropriate prefix introduces significant transformation effort, including writing custom code for parsing, partitioning logic, and handling retries, which contradicts the goal of minimizing effort. Option D is wrong because Amazon Athena can create partitions on existing data using ALTER TABLE ADD PARTITION or MSCK REPAIR TABLE, but this only updates the catalog metadata and does not physically partition the data in S3; the data remains in a flat structure, and Athena queries still scan all files unless partitions are manually created.

134
MCQhard

An e-commerce company uses AWS Glue to process clickstream data from its website. The data is stored in Amazon S3 in partitioned Parquet format by date and hour. A recent increase in traffic has caused the Glue job to fail with 'Java heap space' errors. The job runs with 10 DPUs and uses Spark's default configurations. The data engineer needs to resolve the memory issue without modifying the ETL script. What should the data engineer do?

A.Decrease the Spark configuration 'spark.sql.shuffle.partitions' to 50.
B.Change the worker type to G.1X.
C.Increase the Spark configuration 'spark.sql.shuffle.partitions' to 500.
D.Increase the number of DPUs to 20.
AnswerC

More shuffle partitions reduce the size of data per partition, mitigating memory issues.

Why this answer

Increasing 'spark.sql.shuffle.partitions' to 500 reduces the amount of data handled per partition during shuffle operations, which alleviates memory pressure and prevents 'Java heap space' errors. This is a configuration change that does not require modifying the ETL script. Option A is wrong because decreasing partitions increases data per partition, worsening memory issues.

Option B is wrong because changing worker type to G.1X (which has more memory per executor) might help but does not address the root cause if the issue is due to too few shuffle partitions; it is also not a direct fix for shuffle memory. Option D is wrong because increasing DPUs adds more executors but does not solve the per-executor memory issue caused by large shuffle partitions.

135
MCQeasy

A data engineer is using AWS Glue to perform ETL on data stored in an S3 bucket. The source data is in CSV format with a header row, and the target is a set of Parquet files partitioned by date. The engineer notices that the Glue job is reading all files in the source prefix, including temporary files that should be ignored. What is the MOST efficient way to exclude these temporary files?

A.Change the source format from CSV to Parquet.
B.Set up an S3 event notification to trigger a Lambda function that moves temporary files.
C.Use an S3 prefix exclusion pattern in the Glue job's source path.
D.Create a custom classifier in the Glue Data Catalog.
AnswerC

Glue supports S3 include/exclude patterns to filter files.

Why this answer

AWS Glue supports S3 path exclusion patterns using glob-style syntax (e.g., `--exclude` or `excludePatterns` in the job parameters). By specifying a pattern like `**/_temporary/**` or `*.tmp`, the Glue job will skip those files during the read phase, avoiding unnecessary data processing and reducing costs. This is the most efficient approach as it requires no additional infrastructure or data movement.

Exam trap

The trap here is that candidates often assume Glue automatically ignores hidden or temporary files (like Spark's `_temporary` or Hadoop's `_SUCCESS`), but in reality, Glue reads all files under the specified prefix unless an explicit exclusion pattern is provided.

How to eliminate wrong answers

Option A is wrong because changing the source format from CSV to Parquet does not address the issue of excluding temporary files; it only changes the file format, and temporary files would still be read if they exist in the source prefix. Option B is wrong because setting up an S3 event notification to trigger a Lambda function that moves temporary files adds unnecessary complexity, latency, and cost; it also requires managing additional AWS resources and does not solve the problem at the Glue job level. Option D is wrong because a custom classifier in the Glue Data Catalog is used to infer schema from data formats (e.g., custom CSV delimiters), not to exclude files from being read during ETL processing.

136
Multi-Selecthard

A company ingests streaming data from social media feeds into Amazon Kinesis Data Streams. The data is consumed by an AWS Lambda function that transforms and writes to Amazon S3. Recently, the Lambda function started timing out and dropping records. The data volume has tripled. Which actions should the data engineer take to resolve this? (Choose TWO.)

Select 2 answers
A.Increase the number of shards in the Kinesis data stream
B.Replace Lambda with Amazon Kinesis Data Firehose for the transformation
C.Increase the Lambda function timeout to 15 minutes
D.Set a reserved concurrency on the Lambda function
E.Increase the memory allocated to the Lambda function
AnswersA, E

More shards increase throughput capacity.

Why this answer

(increase shards) increases the Kinesis stream's throughput capacity to handle the tripled data volume, reducing backpressure on the Lambda consumer. Option E (increase Lambda memory) also increases CPU allocation, allowing the Lambda function to process each record faster, which helps prevent timeouts. Option B (replace Lambda with Firehose) could be an alternative but is not a direct fix for the existing Lambda-based architecture and may not be suitable for complex transformations.

Option C (increase timeout to 15 minutes) might allow more time but does not address the underlying root cause of insufficient throughput or processing power. Option D (reserved concurrency) prevents other functions from affecting this function's concurrency but does not increase total processing capacity; it could even limit scaling if set too low.

137
MCQhard

A data pipeline ingests streaming data from Kinesis Data Streams into S3 via Kinesis Data Firehose. Occasionally, small files are written to S3, increasing downstream processing costs. What is the most efficient way to reduce the number of small files?

A.Use a Lambda function to aggregate records before sending to Firehose.
B.Use the Kinesis Client Library (KCL) to write larger batches to S3 directly.
C.Run a daily AWS Glue job to concatenate small files.
D.Increase the Firehose buffering interval to 300 seconds and buffering size to 64 MB.
AnswerD

Firehose will buffer more data per file.

Why this answer

Kinesis Data Firehose allows you to configure buffering hints (size and interval) to control when data is delivered to S3. By increasing the buffering interval to 300 seconds and the buffering size to 64 MB, Firehose accumulates more records before writing, which reduces the number of small files. This is the most efficient approach as it requires no additional infrastructure or post-processing.

Exam trap

The trap here is that candidates may think a Lambda pre-aggregation (Option A) or a Glue job (Option C) is necessary, when in fact Firehose's built-in buffering configuration is the simplest and most cost-effective solution to control file sizes.

How to eliminate wrong answers

Option A is wrong because using a Lambda function to aggregate records before sending to Firehose adds latency and complexity, and Firehose already has built-in buffering capabilities that can be tuned without extra services. Option B is wrong because the Kinesis Client Library (KCL) is designed for consuming and processing records from a stream, not for writing directly to S3; it would require custom code to batch and write to S3, which is less efficient and not a managed solution. Option C is wrong because running a daily AWS Glue job to concatenate small files is a reactive, post-processing approach that does not prevent small files from being created in the first place, and it incurs additional compute costs and delays.

138
Drag & Dropmedium

Order the steps to query data in Amazon Redshift Spectrum from an external table in Athena.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

Start by creating the external schema in Redshift, then the external table, grant permissions, run the query, and verify results.

139
Multi-Selecthard

A company uses AWS Glue to transform data from Amazon S3 into Parquet format. The job fails with an out-of-memory error for large files. Which TWO actions can resolve this issue? (Choose TWO.)

Select 2 answers
A.Change the input format from CSV to JSON.
B.Increase the number of DPUs allocated to the job.
C.Use the Glue streaming ETL feature.
D.Enable CloudWatch logs for detailed error analysis.
E.Split the input data into smaller files.
AnswersB, E

More DPUs provide more memory and processing power.

Why this answer

Increasing the number of DPUs (Data Processing Units) allocated to the Glue job provides more memory and compute capacity, which directly addresses out-of-memory errors when processing large files. AWS Glue uses Apache Spark under the hood, and each DPU provides 4 vCPU and 16 GB of memory, so adding DPUs scales the available resources for in-memory transformations.

Exam trap

The trap here is that candidates may think enabling logging (CloudWatch) or changing file formats will fix memory issues, but only resource scaling (DPUs) or data partitioning (smaller files) address the root cause of insufficient memory for large in-memory transformations.

140
MCQmedium

Refer to the exhibit. A data engineer deploys this CloudFormation template to create an AWS Glue job. The job fails on the first run with an error: 'AccessDeniedException: User: arn:aws:sts::123456789012:assumed-role/GlueServiceRole/... is not authorized to perform: s3:GetObject on resource: s3://my-bucket/scripts/etl.py'. What is the most likely cause?

A.The ExecutionProperty MaxConcurrentRuns is set to 1, preventing the job from running.
B.The IAM role associated with the Glue job does not have an S3 GetObject permission for the script location.
C.The MaxRetries is set to 0, so the job does not retry on failure.
D.The script location is incorrectly specified; it should be an S3 URI with bucket and key.
AnswerB

Glue needs s3:GetObject on the script.

Why this answer

The error message indicates that the IAM role 'GlueServiceRole' assumed by the AWS Glue job does not have the s3:GetObject permission for the script object at s3://my-bucket/scripts/etl.py. AWS Glue requires the execution role to have read access to the script location specified in the 'ScriptLocation' parameter. Without this permission, the job fails immediately on startup because it cannot download and execute the ETL script.

Exam trap

The DEA-C01 exam often tests the distinction between permissions errors and configuration errors, where candidates might incorrectly focus on script location format or job parameters instead of recognizing that an AccessDeniedException is a clear IAM permissions issue.

How to eliminate wrong answers

Option A is wrong because ExecutionProperty MaxConcurrentRuns controls how many concurrent runs of the job are allowed, not whether the job can start; it would not cause an AccessDeniedException. Option C is wrong because MaxRetries determines how many times the job retries after a failure, but the job fails on the first run with an access denied error, not a retry-related issue. Option D is wrong because the script location is already specified as an S3 URI (s3://my-bucket/scripts/etl.py), which is the correct format; the error is about permissions, not format.

141
MCQeasy

A company uses AWS Glue to run ETL jobs that process data from Amazon RDS to Amazon S3. The job runs successfully but the data in S3 is missing some records that exist in the source. The engineer notices that the job uses a JDBC connection and the query extracts data based on a timestamp column. What is the MOST likely cause of the missing records?

A.The timestamp column includes time portion and the job is using an exclusive upper bound.
B.The S3 bucket lacks write permissions.
C.The JDBC connection uses connection pooling, causing some records to be dropped.
D.The Glue job is configured to only read from one table.
AnswerA

Correct. When extracting data using a timestamp column, if the job uses an exclusive upper bound, records with timestamps equal to the boundary value may be missed, especially when the timestamp includes time portion.

Why this answer

The job extracts data based on a timestamp column and uses an exclusive upper bound (e.g., WHERE timestamp < some_value). If the timestamp includes a time portion, records with a timestamp exactly equal to the upper bound are excluded, causing them to be missing from S3. Option B is incorrect because S3 bucket permissions would cause the job to fail, not simply miss records.

Option C is incorrect because connection pooling does not cause records to be dropped. Option D is incorrect because the Glue job can be configured to read from multiple tables; this is unrelated to the missing records.

142
MCQeasy

Refer to the exhibit. A data engineer runs the AWS CLI command and observes the output. The stream has two shards. A producer sends a record with a partition key that hashes to 150000000000000000000000000000000000000. To which shard will the record be written?

A.shardId-000000000001
B.The record will be rejected because it does not match any shard
C.shardId-000000000000
D.The record will be written to both shards
AnswerA

The hash key falls within the range of the second shard.

Why this answer

The record will be written to shardId-000000000001 because the hash key range for shardId-000000000000 is [0, 170141183460469231731687303715884105727) and for shardId-000000000001 is [170141183460469231731687303715884105727, 340282366920938463463374607431768211455). The partition key hash value of 150000000000000000000000000000000000000 falls within the second shard's range, so the record is routed to shardId-000000000001.

Exam trap

The DEA-C01 exam often tests the misconception that the shard ID (e.g., 000000000000) corresponds to the numeric order of the hash range, but in reality, the shard ID is a sequential identifier and the hash key range is what determines routing, not the shard ID itself.

How to eliminate wrong answers

Option B is wrong because the record's hash value falls within a valid shard's hash key range, so it will not be rejected; Kinesis Data Streams accepts any record with a valid partition key. Option C is wrong because the hash value 150000000000000000000000000000000000000 is greater than the upper bound of shardId-000000000000's range (170141183460469231731687303715884105727), so it does not belong to that shard. Option D is wrong because each record is written to exactly one shard based on its partition key hash; Kinesis does not write records to multiple shards.

143
Multi-Selectmedium

A company ingests IoT data into an S3 bucket using AWS IoT Core rules. The data is in JSON format, and each record is about 500 bytes. The data volume is 5 GB per day. The company wants to convert the data to Parquet format and partition it by year/month/day. Which TWO AWS services can be used together to achieve this with minimal operational overhead?

Select 2 answers
A.Amazon Athena CTAS query
B.AWS Glue ETL job triggered by S3 event
C.AWS Lambda function triggered by S3 event
D.Amazon EMR with Spark job
E.Amazon Kinesis Data Firehose with Parquet conversion
AnswersB, C

Glue can be triggered by S3 events (via Lambda or EventBridge) and perform the conversion and partitioning.

Why this answer

(AWS Glue ETL job triggered by S3 event) is correct because it provides a serverless, fully managed ETL solution that can convert JSON to Parquet and partition by year/month/day with minimal operational overhead. The S3 event trigger automatically invokes the Glue job when new data arrives, eliminating the need for manual scheduling or infrastructure management.

Exam trap

The trap here is that candidates often choose Amazon Kinesis Data Firehose (Option E) thinking it's the simplest for Parquet conversion, but it is designed for streaming data, not for batch processing of S3-uploaded files, and it lacks native S3 event-driven partitioning for historical data.

144
Multi-Selecteasy

A data engineer needs to ingest data from an Amazon RDS MySQL database into a data lake on Amazon S3. The engineer wants to perform an initial full load and then capture incremental changes. Which TWO AWS services can be combined to achieve this?

Select 2 answers
A.Amazon Kinesis Data Firehose
B.AWS Glue
C.Amazon S3
D.AWS Database Migration Service (DMS)
E.AWS Data Pipeline
AnswersC, D

S3 is the target for the data lake.

Why this answer

Amazon S3 is the target data lake storage layer, not a service that performs data ingestion or change data capture. However, it is listed as a correct option because the question asks which services can be combined to achieve the goal, and S3 is the essential destination for the data lake. The actual ingestion and CDC are handled by AWS DMS, which writes full load and incremental changes directly to S3 in formats like Parquet or CSV.

Exam trap

The trap here is that candidates assume Amazon S3 is only a storage service and not a correct answer, but the question asks for services that can be combined, and S3 is the required target for the data lake, making it a valid choice alongside DMS.

145
MCQhard

A company uses Kinesis Data Analytics for SQL-based real-time analytics on streaming data. They notice that the application is processing data slower than the incoming rate, causing increased latency. Which action is MOST likely to improve the throughput?

A.Increase the number of Kinesis Processing Units (KPUs) for the application
B.Increase the number of shards in the Kinesis data stream
C.Enable auto-scaling on the Kinesis data stream
D.Decrease the retention period of the Kinesis data stream
AnswerA

More KPUs increase parallelism and throughput.

Why this answer

Kinesis Data Analytics for SQL applications processes data using Kinesis Processing Units (KPUs), which define the compute and memory resources available. When the incoming data rate exceeds the processing capacity, increasing the number of KPUs directly scales the application's parallelism and throughput, allowing it to keep up with the stream. This is the most direct way to reduce latency caused by insufficient processing power.

Exam trap

The trap here is that candidates often confuse scaling the source stream (shards) with scaling the analytics application (KPUs), assuming that more shards automatically improve processing throughput, when in fact the application's compute resources are the limiting factor.

How to eliminate wrong answers

Option B is wrong because increasing the number of shards in the Kinesis data stream increases the ingestion capacity and parallelism of the source stream, but it does not directly increase the processing capacity of the Kinesis Data Analytics application; the application must also be scaled (e.g., via KPUs) to consume the additional shards. Option C is wrong because enabling auto-scaling on the Kinesis data stream only adjusts the number of shards based on throughput, which again does not address the application's processing bottleneck. Option D is wrong because decreasing the retention period of the Kinesis data stream only reduces how long data is stored in the stream; it does not affect the processing rate or throughput of the analytics application.

146
MCQhard

A company uses AWS Glue to run ETL jobs that process data from Amazon RDS for MySQL and load it into Amazon S3. The job runs daily and processes incremental changes using the JDBC connection. Recently, the job has been failing with a 'Communications link failure' error. The RDS instance is in a private subnet. Which step should the engineer take first to diagnose the issue?

A.Verify that the IAM role used by Glue has the correct permissions to access RDS.
B.Change the Glue job type from Spark to Python shell.
C.Check the security group and network ACL rules for the RDS instance and the Glue connection.
D.Check that the JDBC driver is compatible with the Glue version.
AnswerC

Network misconfiguration is the most common cause of link failure.

Why this answer

The 'Communications link failure' error typically indicates a network connectivity issue between AWS Glue and the RDS instance. Since the RDS instance is in a private subnet, the Glue job must be able to reach it via a VPC endpoint or a Glue connection that uses network configuration. Checking the security group (inbound rules for the RDS instance allowing traffic from Glue's elastic network interfaces) and network ACLs (ensuring ephemeral ports are open) is the first logical step to diagnose connectivity.

Exam trap

The trap here is that candidates often jump to IAM permissions or JDBC driver issues first, but the 'Communications link failure' error is a classic network connectivity symptom that requires checking security groups and network ACLs before anything else.

How to eliminate wrong answers

Option A is wrong because IAM permissions control authentication and authorization to AWS services, not network-level connectivity; a 'Communications link failure' is a network error, not an access denied error. Option B is wrong because changing the job type from Spark to Python shell does not resolve network connectivity issues; it only changes the execution environment and may even introduce new limitations for JDBC connections. Option D is wrong because JDBC driver compatibility would cause a different error (e.g., 'No suitable driver' or class not found), not a 'Communications link failure', which is a network timeout or connection reset.

147
Multi-Selectmedium

A company is building a data lake on Amazon S3. Data arrives from multiple sources in JSON, CSV, and Avro formats. The data must be transformed to Parquet and partitioned by date and source. Which TWO services can perform this transformation with minimal custom code? (Choose TWO.)

Select 2 answers
A.Amazon EMR with Spark
B.AWS Lake Formation
C.Amazon Athena CTAS queries
D.AWS Glue ETL jobs
E.Amazon Kinesis Data Firehose
AnswersA, D

EMR can run Spark for large-scale transformations.

Why this answer

Both Amazon EMR with Spark and AWS Glue ETL jobs can perform the transformation with minimal custom code. Spark natively supports reading JSON, CSV, and Avro formats and writing Parquet with partitioning by date and source, requiring only a concise PySpark or Scala script. Similarly, AWS Glue provides a managed Spark environment with built-in transforms and crawlers, allowing users to write Spark scripts or use visual ETL jobs with minimal code.

The other options either lack native transformation capabilities (Lake Formation, Athena CTAS queries) or are designed for streaming data (Kinesis Data Firehose).

Exam trap

The trap here is that candidates often confuse AWS Lake Formation's data catalog and permission features with actual data transformation capabilities, or they assume Kinesis Data Firehose can transform existing S3 objects when it only processes streaming data in transit.

148
MCQmedium

A social media company ingests user activity data from multiple sources using Amazon Kinesis Data Firehose. The data is delivered to Amazon S3 in near-real-time. The company wants to transform the data by adding a timestamp and masking email addresses before storing it in S3. The transformation should be applied to all records. What is the most cost-effective way to implement this transformation?

A.Use Amazon Athena to run a CTAS query that transforms the data and writes to a new location.
B.Use AWS Glue to schedule a batch job every 5 minutes to transform the data.
C.Use Amazon S3 Events to trigger a Lambda function whenever a new object is created.
D.Configure the Firehose delivery stream to invoke a Lambda function for data transformation.
AnswerD

Firehose supports built-in Lambda transformation for real-time processing.

Why this answer

The most cost-effective way is to configure the Kinesis Data Firehose delivery stream to invoke an AWS Lambda function for data transformation before the data is delivered to S3. This approach is serverless and only runs when data is flowing, so you pay only for the compute time used during transformation. Option A (Athena CTAS) would require querying after storage, adding cost and latency.

Option B (Glue batch job) runs on a schedule regardless of data volume, leading to idle costs, and introduces latency. Option C (S3 Events with Lambda) triggers after data is already stored, meaning the data is first stored in raw form, then transformed, doubling storage costs and adding complexity. Therefore, the Firehose-integrated Lambda is the most cost-effective and low-latency option.

149
MCQeasy

A data engineering team is ingesting streaming data from IoT devices using AWS IoT Core and needs to process the data in near real-time with minimal code. Which AWS service should they use to transform the data before storing it in Amazon S3?

A.Amazon Kinesis Data Analytics
B.AWS Glue
C.Amazon Redshift
D.Amazon Athena
AnswerA

Kinesis Data Analytics can run SQL queries on streaming data from IoT Core in near real-time.

Why this answer

Amazon Kinesis Data Analytics (now part of Amazon Managed Service for Apache Flink) is the correct choice because it allows you to transform streaming data in near real-time using SQL or Apache Flink with minimal code. It can directly consume data from AWS IoT Core via Kinesis Data Streams or Amazon MSK, apply transformations like filtering, aggregation, or enrichment, and then output the processed data to Amazon S3 without requiring custom application servers.

Exam trap

The trap here is that candidates often confuse AWS Glue's streaming ETL capability (which still requires writing Scala or Python code and managing checkpointing) with the 'minimal code' requirement, or they mistakenly think Amazon Athena can transform data before it lands in S3, when in fact Athena only queries data already stored.

How to eliminate wrong answers

Option B (AWS Glue) is wrong because it is a serverless ETL service designed for batch processing and schema discovery, not for near real-time streaming transformations with minimal code. Option C (Amazon Redshift) is wrong because it is a data warehouse for analytical queries on structured data, not a streaming transformation engine, and it cannot directly ingest from IoT Core without an intermediary. Option D (Amazon Athena) is wrong because it is an interactive query service for analyzing data already stored in S3 using SQL, not a service for transforming data in flight before storage.

150
MCQeasy

A company needs to ingest data from Amazon S3 into Amazon Redshift for analytics. The data arrives in CSV format with headers and may contain duplicate rows. Which Redshift command should be used to load the data while handling duplicates?

A.COPY command with the `REMOVEDUPLICATES` option
B.INSERT INTO ... SELECT DISTINCT from S3 via Spectrum
C.Use a staging table with COPY and then MERGE into the target table
D.CREATE TABLE AS SELECT DISTINCT from the S3 bucket
AnswerC

MERGE allows handling duplicates.

Why this answer

The correct approach to handle duplicates when loading data from S3 into Redshift is to use a staging table with the COPY command, followed by a MERGE (or UPSERT) operation to insert distinct rows into the target table. Option A is incorrect because `REMOVEDUPLICATES` is not a valid COPY option. Option B is incorrect because INSERT INTO ...

SELECT DISTINCT via Spectrum does not use Redshift's native ingestion and may be slower. Option D is incorrect because CREATE TABLE AS SELECT DISTINCT does not integrate with existing tables and is not a standard loading pattern.

← PreviousPage 2 of 8 · 591 questions totalNext →

Ready to test yourself?

Try a timed practice session using only Data Ingestion and Transformation questions.