Courseiva

CCNA Data Operations and Support Questions

60 of 360 questions · Page 5/5 · Data Operations and Support · Answers revealed

301
MCQmedium

Refer to the exhibit. A data engineer sees this output from the AWS CLI for a failed Glue job. The job uses 10 workers of Standard type. What is the MOST appropriate action to resolve the OutOfMemoryError?

A.Increase NumberOfWorkers to 20
B.Reduce NumberOfWorkers to 5
C.Change WorkerType to G.1X
D.Increase MaxCapacity to 20
AnswerC

Correct. Changing WorkerType to G.1X doubles the memory per worker (from 4 GB to 8 GB), resolving the OutOfMemoryError.

Why this answer

The OutOfMemoryError occurs because each Standard worker has a memory limit of 4 GB. Increasing MaxCapacity to 20 does not increase memory per worker when NumberOfWorkers is explicitly set; it only increases the total DPU allocation but the job still uses 10 workers each with 1 DPU. The correct solution is to change the worker type to G.1X, which provides 2 DPUs (8 GB memory) per worker, effectively doubling the memory per worker and resolving the error.

Option A (increase workers) adds parallelism but does not increase per-worker memory. Option B (reduce workers) decreases parallelism and may aggravate memory pressure. Option D (increase MaxCapacity) is ineffective when NumberOfWorkers is fixed.

Exam trap

Candidates often mistakenly think increasing MaxCapacity raises memory per worker, but when NumberOfWorkers is set, MaxCapacity only sets the maximum total DPU; the job still uses exactly the specified number of workers each with the default DPU for the worker type.

302
MCQmedium

A data engineer runs an AWS Glue ETL job that reads from an S3 bucket containing JSON files. The job fails with an error indicating that some records are malformed. The engineer wants to skip the malformed records and continue processing. Which approach should the engineer take?

A.Pre-process the JSON files to correct the malformed records before Glue reads them.
B.Convert the JSON files to Parquet format and use Glue to read Parquet.
C.Use AWS Glue Schema Registry to reject invalid records.
D.Configure the Glue DynamicFrame to use the `withErrorThreshold` option to skip corrupt records.
AnswerD

Glue can skip malformed records using error thresholds.

Why this answer

The `withErrorThreshold` option on an AWS Glue DynamicFrame allows the ETL job to skip a specified number of corrupt or malformed records without failing. This is the most direct way to handle malformed JSON records in Glue. Option A is incorrect because pre-processing all files is inefficient and may not be feasible for large datasets.

Option B is incorrect because converting to Parquet does not address the issue of malformed JSON within the existing files. Option C is incorrect because AWS Glue Schema Registry validates schema compliance, not individual record malformation; it would reject entire datasets that don't match the schema, not skip malformed records.

303
Multi-Selectmedium

A company's Amazon Redshift cluster is running slowly. The data engineer suspects that table design is the cause. Which TWO design practices can improve query performance? (Choose TWO.)

Select 2 answers
A.Define appropriate sort keys on frequently filtered columns.
B.Use GROUP BY instead of DISTINCT in queries.
C.Define appropriate distribution keys to collocate joins.
D.Increase the number of slices per node by resizing the cluster.
E.Use VARCHAR instead of CHAR for fixed-length strings.
AnswersA, C

Sort keys minimize the number of blocks scanned.

Why this answer

Options A and C are correct. Defining appropriate sort keys on frequently filtered columns allows Redshift to use zone maps to skip irrelevant blocks, reducing the amount of data scanned. Defining appropriate distribution keys to collocate data on the same node slices minimizes data shuffling during joins, improving performance.

Option B is incorrect because GROUP BY and DISTINCT are query optimization techniques, not table design practices. Option D is incorrect because resizing the cluster (adding nodes or slices) is an infrastructure change, not a table design practice. Option E is incorrect because using VARCHAR instead of CHAR for fixed-length strings does not directly impact query performance from a table design perspective; it is a data type choice that affects storage but not query performance via sort or distribution design.

304
MCQmedium

A company runs a daily batch process that reads data from Amazon S3, transforms it with AWS Glue, and loads it into Amazon Redshift. The process takes 6 hours, but the business requires completion within 4 hours. Which design change would MOST reduce runtime?

A.Increase the number of Glue workers
B.Load data directly from S3 to Redshift using COPY command, then transform in Redshift
C.Use S3 Select to filter data before Glue
D.Switch to columnar storage in Redshift
AnswerB

COPY is highly efficient for bulk loading, and in-database transformation can be faster than Glue.

Why this answer

Loading data directly from S3 to Redshift using the COPY command eliminates the AWS Glue transformation step, which is the primary bottleneck. The COPY command is optimized for high-speed bulk loads, and performing transformations within Redshift (e.g., using SQL or stored procedures) can often be faster than an external ETL tool. Option A (increasing Glue workers) may help parallelism but does not address the overhead of the Glue job itself.

Option C (S3 Select) reduces the data volume scanned by Glue but still requires the Glue transformation. Option D (columnar storage) is already the default in Redshift and does not reduce the Glue job runtime.

305
MCQmedium

A data engineer is monitoring an Amazon EMR cluster running a Spark job. The job is processing a large dataset and the engineer notices that the cluster is using a high percentage of disk space on the core nodes. The job fails with 'No space left on device' error. What is the most effective way to resolve this issue without modifying the job logic?

A.Attach additional EBS volumes to the core nodes.
B.Increase the EBS volume size attached to the core nodes.
C.Change the core node instance type to one with more memory.
D.Increase the number of core nodes in the cluster.
AnswerD

More nodes distribute the intermediate data, reducing disk usage per node.

Why this answer

Increasing the number of core nodes distributes the intermediate shuffle data and temporary files across more nodes, reducing the per-node disk usage. This directly addresses the 'No space left on device' error without altering the Spark job logic, as core nodes in EMR store both HDFS data and local shuffle spills.

Exam trap

The trap here is that candidates confuse storage issues with memory or compute issues, and incorrectly choose to increase EBS volume size (Option B) instead of scaling horizontally, which is the most effective way to distribute disk load in a distributed system like EMR.

How to eliminate wrong answers

Option A is wrong because attaching additional EBS volumes does not increase the total available disk space on the core nodes unless they are mounted and configured; EMR automatically uses the root volume for local data, and adding extra volumes requires manual intervention or instance store configuration, which is not a direct fix. Option B is wrong because increasing the EBS volume size on existing core nodes only provides more space on the root device, but the error may stem from ephemeral storage or HDFS usage; moreover, this requires stopping the cluster or modifying the launch configuration, which is less effective than scaling horizontally. Option C is wrong because changing the instance type to one with more memory does not increase disk space; it addresses memory constraints, not the 'No space left on device' error, which is a storage issue.

306
MCQhard

A data pipeline uses AWS Glue to run ETL jobs that read from and write to an Amazon Redshift cluster. The pipeline recently started failing with the error 'ERROR: cannot execute INSERT in a read-only transaction'. The Glue job's IAM role has the necessary permissions. What could be the cause of this error?

A.The Glue job is using a transaction that was opened in read-only mode.
B.The Redshift cluster is in read-only mode due to maintenance.
C.The Glue connection is configured with 'read-only' set to true.
D.The Glue job's IAM role does not have sufficient Redshift permissions.
AnswerA

If auto_commit=False and the first operation is a SELECT, the session becomes read-only; subsequent INSERT fails.

Why this answer

The error 'ERROR: cannot execute INSERT in a read-only transaction' occurs when attempting to write data within a transaction that was opened as read-only. In AWS Glue ETL jobs, if the Spark session is configured with `auto_commit=False` or if the job explicitly starts a read-only transaction (e.g., via `SET TRANSACTION READ ONLY`), any subsequent INSERT operation will fail. Option A correctly identifies this cause.

Option B is incorrect because Redshift clusters do not enter a read-only mode during maintenance; instead, they are briefly unavailable. Option C is incorrect because Glue connections do not have a 'read-only' property; the connection string may set `defaultTransactionIsolation`, but not a read-only flag. Option D is incorrect because the IAM role has necessary permissions per the question stem, and insufficient permissions would produce a different error (e.g., permission denied).

307
MCQeasy

A company uses AWS Glue to run ETL jobs that process data from an Amazon RDS for MySQL database and load it into an Amazon S3 data lake. The Glue job runs daily and processes incremental data. Recently, the job has been taking longer than expected. The engineer checks the CloudWatch logs and sees that the job is spending most of its time on the 'Reading from JDBC' phase. The MySQL table has 10 million rows and is indexed on the primary key. The Glue job uses a 'job bookmark' to track processed data. The engineer wants to improve the performance of the read phase. Which action is most likely to help?

A.Increase the JDBC 'fetchSize' parameter to 10000.
B.Disable job bookmark and perform a full refresh each time.
C.Increase the number of DPUs for the Glue job.
D.Modify the job to use a 'query' parameter that selects only the new or modified rows based on a timestamp column.
AnswerD

By filtering at the source, less data is read and transferred, speeding up the read phase.

Why this answer

Modifying the job to use a 'query' parameter with a WHERE clause that filters on a timestamp column (the bookmark key) allows AWS Glue to read only the new or modified rows, reducing the amount of data transferred from the database and significantly improving read performance. Option A is wrong because increasing the JDBC 'fetchSize' parameter can improve throughput per connection but does not address the root cause of reading all 10 million rows; it may also cause memory issues if set too high. Option B is wrong because disabling job bookmarks and performing a full refresh would reprocess all data, making the job even slower and defeating the purpose of incremental processing.

Option C is wrong because increasing the number of DPUs adds parallelism but does not reduce the volume of data read; the database can still become a bottleneck when reading the entire table.

308
MCQhard

Refer to the exhibit. An AWS Glue job is failing with 'AccessDenied' when trying to write to the 'data-lake-bucket' which is encrypted with an AWS KMS key. The IAM role used by the Glue job has the attached policy shown. What is the MOST likely cause of the failure?

A.The policy does not include s3:ListBucket permission.
B.The policy does not include s3:GetObject permission.
C.The KMS key ARN in the policy is incorrect.
D.The policy does not include kms:GenerateDataKey or kms:Encrypt permission.
AnswerD

Writing to SSE-KMS encrypted S3 requires GenerateDataKey and Encrypt.

Why this answer

The policy allows s3:PutObject but does not include kms:GenerateDataKey or kms:Encrypt permissions, which are required to write to an SSE-KMS encrypted S3 bucket. Option A is incorrect because ListBucket is allowed. Option B is incorrect because GetObject is allowed.

Option C is incorrect because the KMS key ARN in the policy is correct; the issue is missing KMS actions.

309
MCQhard

A company uses Amazon DynamoDB as the primary data store for a real-time application. The data engineer observes that some read requests are returning stale data, even though the application uses strongly consistent reads. The table has auto-scaling enabled with a maximum read capacity of 10,000 RCUs. The observed read traffic averages 8,000 RCUs but occasionally spikes to 12,000 RCUs. What is the most likely cause of the stale reads?

A.Read capacity auto-scaling cannot keep up with sudden traffic spikes, causing throttling and fallback to eventually consistent reads.
B.The application uses write sharding, causing read-after-write inconsistencies.
C.The application is using DynamoDB Accelerator (DAX) which caches data and may return stale values.
D.The table is part of a DynamoDB global table, and the application reads from a replica in a different region.
AnswerA

Throttling can cause fallback to eventual consistency.

Why this answer

When read traffic spikes above the maximum auto-scaling limit of 10,000 RCUs (e.g., to 12,000 RCUs), the table cannot provision enough read capacity units quickly enough. This leads to throttling of requests. The AWS SDKs are designed to retry throttled requests, and under certain conditions, they may fall back to eventually consistent reads to reduce latency, which can return stale data.

This explains why stale data appears even when the application explicitly requests strongly consistent reads. Option B is incorrect: write sharding does not inherently cause read-after-write inconsistencies; DynamoDB's strong consistency guarantees hold if capacity is sufficient. Option C is incorrect: DAX is a caching layer that provides eventual consistency by default; strongly consistent reads bypass DAX and go directly to the table, so DAX is not involved.

Option D is incorrect: global tables replicate data asynchronously, but the statement says the application uses a single table; moreover, reading from a replica region would use eventually consistent reads only if configured, but the question states strongly consistent reads are used.

310
Drag & Dropmedium

Order the steps to set up a Kinesis Data Analytics application for real-time stream processing.

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

First, set up the source stream. Then create the analytics application, configure it with the source and logic, start it, and finally monitor performance.

311
Multi-Selectmedium

A company is using AWS Glue Data Catalog to store metadata about datasets in S3. The data engineer wants to implement a data governance solution that tracks lineage and versioning of datasets. Which TWO AWS services can be used together to achieve this?

Select 2 answers
A.AWS Data Pipeline
B.AWS Lake Formation
C.AWS Glue Data Catalog
D.AWS CloudTrail
E.Amazon S3
AnswersB, C

Provides data lineage and versioning capabilities.

Why this answer

The correct answers are B (AWS Lake Formation) and C (AWS Glue Data Catalog). AWS Lake Formation provides data lineage tracking and versioning capabilities for datasets in the data lake. AWS Glue Data Catalog serves as the central metadata repository and integrates with Lake Formation to enable governance features like lineage.

Option A (AWS Data Pipeline) is a data orchestration service, not a governance tool. Option D (AWS CloudTrail) logs API calls but does not track data lineage or versioning. Option E (Amazon S3) is object storage and does not provide lineage or versioning by itself.

312
MCQeasy

A company runs a daily batch processing job on Amazon EMR that reads data from Amazon S3 and writes results back to S3. The job takes longer than expected. The engineer wants to monitor the job's resource utilization. Which AWS service should be used to collect and visualize metrics such as CPU and memory usage of the EMR cluster's nodes?

A.AWS Config to record configuration changes in the EMR cluster.
B.Amazon Athena to query EMR job logs stored in S3.
C.Amazon CloudWatch with the CloudWatch Agent installed on the EMR nodes.
D.AWS CloudTrail to log API calls made by the EMR job.
AnswerC

CloudWatch can collect CPU, memory, and disk metrics from EC2 instances (EMR nodes) via the CloudWatch Agent.

Why this answer

Amazon CloudWatch with the CloudWatch Agent installed on EMR nodes can collect CPU, memory, and other system-level metrics, which can be visualized in CloudWatch dashboards. Option A is incorrect because AWS Config records configuration changes, not resource utilization. Option B is incorrect because Amazon Athena is a query service for data in S3, not a monitoring service.

Option D is incorrect because AWS CloudTrail logs API calls, not performance metrics.

313
MCQeasy

Refer to the exhibit. A data engineer sees this error log from an Amazon EC2 instance that is trying to access an S3 bucket in the us-west-2 region. The EC2 instance is in a VPC with a private subnet and no internet gateway. What is the MOST likely cause of this error?

A.The S3 bucket is in a different region than us-west-2.
B.The VPC does not have a VPC endpoint for S3.
C.The S3 bucket does not exist.
D.The IAM role attached to the EC2 instance does not have s3:GetObject permission.
AnswerB

Private subnet needs VPC endpoint to access S3.

Why this answer

The EC2 instance is in a private subnet without an internet gateway, so it cannot reach S3 over the internet. A VPC endpoint (Gateway or Interface) for S3 is required for private connectivity. The error log shows a connection timeout, which is consistent with the lack of a VPC endpoint.

Option A is incorrect because the bucket's region is us-west-2 as specified, and the bucket exists (DNS resolves). Option C is incorrect because the error is a timeout, not a 404 (bucket not found). Option D is incorrect because the error is a connection timeout, not an access denied (403), so IAM permissions are not the issue.

314
Multi-Selecthard

A data engineer is designing a disaster recovery strategy for an Amazon RDS for MySQL database with Multi-AZ deployment. Which THREE actions should the engineer take to meet a Recovery Point Objective (RPO) of 5 minutes and a Recovery Time Objective (RTO) of 15 minutes? (Choose THREE.)

Select 3 answers
A.Enable automated backups with a retention period of 7 days.
B.Create a cross-region read replica to another AWS region.
C.Configure the DB instance to be Single-AZ for simplicity.
D.Export automated snapshots to an S3 bucket in a different region.
E.Enable Multi-AZ deployment for automatic failover.
AnswersA, B, E

Automated backups allow point-in-time recovery within the retention window, helping meet RPO.

Why this answer

To achieve an RPO of 5 minutes and RTO of 15 minutes for an Amazon RDS for MySQL database with Multi-AZ deployment, the engineer should enable automated backups (A) for point-in-time recovery within minutes, create a cross-region read replica (B) for fast failover in another region, and enable Multi-AZ deployment (E) for automatic failover within the same region. Option C (Single-AZ) would not provide high availability, and option D (exporting snapshots to S3) is too slow for the required RTO.

315
MCQmedium

An IAM policy is attached to an IAM role used by an EC2 instance in the 10.0.0.0/8 VPC. The EC2 instance cannot read objects from the S3 bucket. What is the most likely cause?

A.The policy does not grant s3:ListBucket permission.
B.The S3 bucket has a bucket policy that denies public access, and the IAM policy alone is insufficient.
C.The bucket is encrypted with SSE-KMS and the role does not have kms:Decrypt permission.
D.The EC2 instance's public IP is not in the 10.0.0.0/8 range.
AnswerB

The IAM policy allows access, but if the bucket policy denies all access except from specific principals, the IAM role may still be denied. The bucket policy must explicitly allow the role.

Why this answer

The most likely cause is that the S3 bucket has a bucket policy that denies access or does not explicitly grant access to the IAM role. Even if the IAM policy attached to the role allows S3 actions, a bucket policy can override it with an explicit deny or by not granting access to the role. Option A is incorrect because the s3:GetObject operation does not require s3:ListBucket permission.

Option C is incorrect because SSE-KMS is not mentioned and would require specific kms:Decrypt permission, but it is not the most likely cause. Option D is incorrect because the EC2 instance's private IP is within the 10.0.0.0/8 VPC range, and the public IP is irrelevant for in-VPC communication.

Exam trap

A common trap is to assume that IAM policies alone are sufficient for S3 access, but bucket policies can override them with explicit denies or by not granting access to the role.

316
Multi-Selectmedium

A company uses Amazon S3 to store data for analytics. The data engineer needs to ensure that the S3 bucket is protected against accidental deletion of objects. Which THREE actions should the engineer take? (Choose THREE.)

Select 3 answers
A.Enable server access logging for the S3 bucket.
B.Create an S3 bucket policy that explicitly denies the s3:DeleteObject action.
C.Configure a lifecycle policy to transition objects to Glacier.
D.Enable versioning on the S3 bucket.
E.Enable MFA Delete on the S3 bucket.
AnswersB, D, E

Prevents any user from deleting objects.

Why this answer

To protect against accidental deletion of objects in Amazon S3, three effective measures are: creating a bucket policy that explicitly denies the s3:DeleteObject action (option B), enabling versioning (option D), and enabling MFA Delete (option E). Option B ensures that no principal can delete objects unless an explicit allow overrides it. Option D preserves all object versions, allowing recovery of deleted objects.

Option E requires multi-factor authentication for deletion operations, adding an extra security layer. Option A (server access logging) is for auditing, not prevention. Option C (lifecycle policy to Glacier) does not prevent deletion; it transitions objects to cheaper storage but objects can still be deleted by lifecycle rules or manually.

317
MCQmedium

A company uses AWS DMS to migrate data from an on-premises Oracle database to Amazon Aurora MySQL. The migration is successful, but the ongoing replication task is experiencing high latency. Which configuration change is most likely to reduce latency?

A.Increase the size of the DMS replication instance.
B.Decrease the task's batch size and batch apply timeout.
C.Change the target endpoint to Amazon S3.
D.Enable Change Data Capture (CDC) from binary logs.
AnswerA

A larger instance provides more resources to process change data capture (CDC) faster.

Why this answer

Increasing the size of the DMS replication instance provides more CPU and memory, which can process and apply changes faster, thereby reducing latency in ongoing replication. Option B is incorrect because decreasing the batch size and batch apply timeout would likely increase latency by reducing the efficiency of batch writes. Option C is incorrect because changing the target endpoint to Amazon S3 is not relevant; the target is Aurora MySQL, and migrating to S3 would not resolve latency issues for the current setup.

Option D is incorrect because enabling CDC from binary logs is not applicable; the source is Oracle, which uses redo logs, not binary logs. Additionally, CDC is already used in ongoing replication from Oracle.

318
MCQeasy

A company uses Amazon Athena to query data in S3. Recently, queries have become slow. The data is stored as CSV files in a partitioned table. What is the most effective way to improve query performance?

A.Increase the number of nodes in the Athena query engine.
B.Convert the data to Parquet format and optimize partitioning.
C.Convert the data to JSON format.
D.Increase the size of the CSV files to reduce the number of files.
AnswerB

Converting to Parquet (columnar) and optimizing partitioning reduces data scanned through column pruning and partition pruning, significantly improving performance. This is the correct answer.

Why this answer

The correct answer. Parquet is a columnar storage format that allows Athena to read only the columns needed for a query, reducing I/O and improving performance. Combined with effective partitioning, it enables partition pruning, which further limits the data scanned.

CSV files are row-based and require full scans, even with partitioning. Option A is incorrect because Athena is serverless and users cannot increase nodes; resources are managed automatically. Option C is incorrect: JSON is also row-based and verbose, making it even slower than CSV.

Option D is incorrect because larger CSV files still lead to full scans; Parquet's columnar nature is more impactful than file size.

Exam trap

A common trap is to think that simply increasing file size or using a more popular format like JSON will help. However, the key is switching to a columnar format (Parquet or ORC) that minimizes data scanned.

319
Multi-Selecthard

Which THREE considerations are important when designing a data pipeline that uses AWS Glue to process streaming data from Amazon Kinesis Data Streams? (Choose 3.)

Select 3 answers
A.Set the number of Glue workers to match the number of shards for optimal parallelism
B.Ensure the Kinesis stream has enough shards to handle the expected record rate
C.Configure checkpointing to prevent data loss on failure
D.Use batch window to accumulate data before processing
E.Convert data to Avro format for better compression
AnswersA, B, C

Each worker can consume one shard.

Why this answer

A, B, and C are correct. A: Setting the number of Glue workers to match the number of shards ensures optimal parallelism and resource utilization. B: Ensuring sufficient shards in Kinesis Data Streams is essential to handle the expected record rate and avoid throttling.

C: Configuring checkpointing in AWS Glue streaming jobs prevents data loss and allows resumption from the last checkpoint on failure. D (batch window) is not appropriate for streaming pipelines as it introduces latency and is more suited for batch processing. E (converting to Avro) is a general data optimization but not a critical consideration specifically for Glue streaming with Kinesis.

320
MCQeasy

A company runs a nightly batch processing pipeline using AWS Glue ETL jobs. The pipeline reads data from an Amazon S3 bucket, transforms it, and writes results to an Amazon Redshift cluster. Recently, the data volume has increased significantly, and some Glue jobs are failing with the error 'java.lang.OutOfMemoryError: Java heap space'. The data engineer needs to modify the job configuration to prevent these failures without changing the code. The job currently uses 10 DPUs and processes data in a single Spark DataFrame. Which of the following is the MOST effective solution?

A.Reduce the number of DPUs to 5 and increase the Spark executor memory by setting 'spark.executor.memory' in job parameters.
B.Increase the number of DPUs to 20 and enable job bookmarking for incremental processing.
C.Change the script to use DynamicFrame instead of DataFrame and disable the 'spark.sql.shuffle.partitions' configuration.
D.Add a 'coalesce(1)' operation before writing to Redshift to reduce the number of output files.
AnswerB

More DPUs increase total available memory; job bookmarking reduces data volumes by processing only new data.

Why this answer

Increasing DPUs from 10 to 20 provides more memory and compute resources, directly addressing the 'java.lang.OutOfMemoryError: Java heap space' caused by insufficient memory for the single DataFrame. Enabling job bookmarking allows incremental processing, which reduces the volume of data processed per run, further mitigating memory pressure without code changes.

Exam trap

The trap here is that candidates may think reducing DPUs or using coalesce reduces memory usage, but in reality, both actions increase memory pressure on individual executors, making OOM errors more likely.

How to eliminate wrong answers

Option A is wrong because reducing DPUs to 5 would decrease available memory, worsening the OOM error, and increasing 'spark.executor.memory' without more DPUs cannot compensate for the overall resource reduction. Option C is wrong because changing to DynamicFrame does not inherently reduce memory usage; disabling 'spark.sql.shuffle.partitions' may cause imbalanced partitions and does not address the heap space issue. Option D is wrong because 'coalesce(1)' forces all data into a single partition, which increases memory pressure on that executor and can trigger or worsen OOM errors.

321
MCQhard

A team manages an Amazon DynamoDB table with on-demand capacity. Recently, they noticed increased throttling errors during peak hours. The table has a Lambda trigger that processes changes and writes to an S3 bucket. Which design change would BEST reduce throttling?

A.Switch the table to provisioned capacity and enable auto-scaling.
B.Increase the write capacity units to handle the peak load.
C.Enable S3 bucket versioning to reduce the number of writes.
D.Implement DynamoDB Accelerator (DAX) to cache frequent reads.
AnswerD

DAX reduces read load on the table, lowering throttling.

Why this answer

DynamoDB Accelerator (DAX) provides an in-memory cache that reduces the number of read requests hitting the table, which can alleviate throttling during peak hours. The question describes throttling errors, which are typically caused by exceeding the table's read or write capacity; DAX offloads read traffic, reducing the load on the table and thus decreasing throttling events.

Exam trap

The trap here is that candidates may assume throttling is always due to insufficient write capacity, but the question's context of a Lambda trigger writing to S3 can increase read traffic (e.g., via stream processing or re-reading items), making DAX a read-side solution that addresses the actual cause.

How to eliminate wrong answers

Option A is wrong because switching to provisioned capacity with auto-scaling does not address the root cause of throttling under on-demand capacity, which already scales automatically; throttling in on-demand mode is usually due to exceeding the table's per-partition throughput limits or burst capacity, not capacity mode. Option B is wrong because increasing write capacity units is not applicable to on-demand capacity, which does not use provisioned write capacity units; on-demand tables automatically scale, and throttling is not resolved by manually setting a capacity that doesn't exist in that mode. Option C is wrong because enabling S3 bucket versioning increases the number of writes (by storing multiple versions of objects) rather than reducing them, and it does not affect DynamoDB throttling.

322
MCQeasy

A data engineer needs to move data from an Amazon S3 bucket to an Amazon Redshift cluster on a daily schedule. The data is in CSV format and the target table already exists. Which AWS service should the engineer use to automate this task?

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

Glue provides job scheduling and ETL capabilities.

Why this answer

AWS Glue is the correct choice because it provides managed ETL (extract, transform, load) capabilities and can be scheduled to run daily. Glue jobs can directly read CSV files from S3 and write to a Redshift table that already exists. Option A (correct) accurately identifies AWS Glue for this automated data movement task.

Option B (Amazon Athena) is wrong because Athena is an interactive query service, not an ETL scheduler; it cannot autonomously move data on a schedule. Option C (Amazon EMR) is wrong because while EMR can handle such tasks, it requires provisioning a cluster, managing lifecycle, and more configuration than needed for a simple daily copy—Glue is simpler and more cost-effective for this use case. Option D (Amazon Kinesis Data Analytics) is wrong because it is designed for processing streaming data in real time, not for batch copying of CSV files.

323
MCQeasy

A data engineer needs to monitor the number of records processed by an AWS Glue ETL job and send an alert if the count drops below a threshold. Which AWS service should be used to create this custom metric?

A.Amazon S3
B.AWS Config
C.Amazon CloudWatch
D.AWS CloudTrail
AnswerC

CloudWatch can store custom metrics and trigger alarms.

Why this answer

Amazon CloudWatch is the correct service for creating custom metrics because it allows you to publish your own data points, such as the number of records processed by an AWS Glue ETL job. You can use the CloudWatch PutMetricData API or the AWS Glue job script to emit a custom metric, then set an alarm on that metric to trigger an alert when the count drops below a threshold.

Exam trap

The trap here is that candidates often confuse AWS CloudTrail with CloudWatch because both are monitoring-related, but CloudTrail is for auditing API calls, not for ingesting custom numerical metrics or setting alarms on them.

How to eliminate wrong answers

Option A is wrong because Amazon S3 is an object storage service and does not provide a mechanism to create or monitor custom metrics; it only stores data and logs access via server access logs or AWS CloudTrail. Option B is wrong because AWS Config is a service for evaluating and auditing resource configurations against rules, not for ingesting or alerting on custom operational metrics like record counts. Option D is wrong because AWS CloudTrail records API activity for auditing and governance, but it cannot be used to create custom metrics or set threshold-based alarms; it captures events, not numerical data points.

324
MCQeasy

A data engineer needs to monitor the number of records processed by a Kinesis Data Firehose delivery stream and set an alarm if the count drops below a threshold. Which CloudWatch metric should be used?

A.IncomingRecords
B.PutRecord.Success
C.DeliveryToS3.Success
D.IncomingBytes
AnswerA

This metric counts the number of records sent to Firehose.

Why this answer

'IncomingRecords' counts records received by Firehose, which directly indicates processing volume. Option B is wrong because 'IncomingBytes' measures bytes, not records. Option C is wrong because 'DeliveryToS3.Success' is a success metric but measures successful deliveries, not record count.

Option D is wrong because 'PutRecord.Success' is a per-API call metric for Kinesis Data Streams, not Firehose.

325
MCQmedium

A data engineer notices that an AWS Glue job processing data from an Amazon S3 bucket frequently fails with 'OutOfMemoryError'. The job reads CSV files, applies transformations, and writes Parquet to another S3 bucket. The job has 10 workers of type G.1X. Which change is MOST likely to resolve the issue?

A.Change the worker type from G.1X to G.2X
B.Increase the number of workers to 20
C.Change the worker type from G.1X to G.8X
D.Enable the Spark UI to monitor memory and tune the job
AnswerA

G.2X provides 2x the memory of G.1X, directly addressing the OutOfMemoryError.

Why this answer

The G.1X worker type provides 16 GB of memory per worker. An OutOfMemoryError indicates that the job's memory requirements exceed this limit. Upgrading to G.2X doubles the memory per worker to 32 GB, directly addressing the memory shortage without changing the parallelism or incurring the overhead of additional workers.

Exam trap

The trap here is that candidates might think adding more workers (Option B) solves memory issues, but OutOfMemoryError is per-worker, not a cluster-wide shortage, so increasing parallelism does not fix the root cause.

How to eliminate wrong answers

Option B is wrong because increasing the number of workers to 20 does not increase the memory per worker; it only adds more workers, which can help with parallelism but not with per-worker memory exhaustion. Option C is wrong because G.8X provides 64 GB of memory per worker, which is excessive and likely unnecessary; the most cost-effective fix is G.2X. Option D is wrong because enabling the Spark UI only helps with monitoring and debugging, not with resolving the memory issue; it does not allocate additional memory.

326
MCQmedium

A data engineer is troubleshooting an AWS Glue job that writes data to an S3 bucket. The IAM role attached to the Glue job has the policy shown in the exhibit. The job fails when writing to the 'secrets/' prefix but succeeds when writing to other prefixes. What is the reason for the failure?

A.The job does not have permission to write to the bucket at all.
B.The resource ARN in the Allow statement does not include the bucket itself.
C.The Deny statement is not effective because it is placed after the Allow.
D.The Deny statement explicitly denies PutObject to the secrets/ prefix.
AnswerD

Deny overrides Allow.

Why this answer

The Deny statement explicitly denies s3:PutObject to the secrets/ prefix, which overrides any Allow statements. Option A is incorrect because the job can write to other prefixes, so it does have permission to the bucket. Option B is incorrect because the resource ARN includes the bucket and all objects (*), so it is sufficient.

Option C is incorrect because in IAM, a Deny statement always overrides an Allow, regardless of order.

327
Multi-Selecteasy

A data engineer is monitoring an Amazon RDS for PostgreSQL instance. The engineer wants to set up alerts for high CPU utilization and low free storage space. Which AWS services can be used together to achieve this? (Choose TWO.)

Select 2 answers
A.Amazon Simple Notification Service (SNS)
B.Amazon CloudWatch
C.AWS CloudTrail
D.AWS Config
E.Amazon Route 53
AnswersA, B

SNS delivers alarm notifications.

Why this answer

Amazon CloudWatch is the correct service because it can monitor RDS metrics such as CPUUtilization and FreeStorageSpace, and trigger alarms based on thresholds. Amazon SNS is correct because it can receive CloudWatch alarm notifications and deliver them via email, SMS, or other endpoints, enabling the data engineer to be alerted when high CPU or low storage conditions occur.

Exam trap

The trap here is that candidates often confuse AWS CloudTrail (audit logging) with CloudWatch (monitoring), or think AWS Config can monitor performance metrics instead of just configuration compliance.

328
MCQmedium

A data engineer manages an Amazon Redshift cluster that hosts a 10 TB data warehouse. The cluster uses a single node of type dc2.large (160 GB SSD). The engineer notices that the cluster's disk space is 95% full, and queries are running slowly. The engineer runs the STV_PARTITIONS view and sees that many slices have high 'tossed' counts. The engineer also runs VACUUM and ANALYZE commands, but the disk space does not improve. The engineer suspects that the cluster needs more storage. However, the company wants to minimize cost. Which action should the engineer take to resolve the disk space issue most cost-effectively?

A.Switch to a ra3.xlplus node with managed storage.
B.Replace the cluster with a single ds2.xlarge node.
C.Scale the cluster to a single dc2.8xlarge node.
D.Add another dc2.large node to the cluster to increase total storage.
AnswerB

ds2.xlarge provides 2 TB HDD storage at a lower cost than dc2 options, solving the disk space issue.

Why this answer

The current cluster uses a single dc2.large node with only 160 GB SSD, which is nearly full. Replacing it with a single ds2.xlarge node provides 2 TB HDD storage, offering a significant capacity increase at a lower cost per GB compared to other options. Option A is wrong because switching to RA3 nodes introduces managed storage with higher costs and is unnecessary for this capacity need.

Option C is wrong because scaling to a single dc2.8xlarge node provides 2.56 TB SSD but is more expensive than the ds2.xlarge option. Option D is wrong because adding another dc2.large node only doubles the storage to 320 GB, which may not be sufficient and still leaves the cluster with limited SSD capacity, while also increasing CPU and memory unnecessarily.

329
MCQmedium

A data engineer is running a Spark job on Amazon EMR. The job reads from S3, processes data, and writes to S3. The job is taking longer than expected. The engineer notices that the job is spending a lot of time in the 'GC' (garbage collection) phase. Which configuration change is most likely to improve performance?

A.Increase the spark.executor.memory setting.
B.Increase the spark.sql.shuffle.partitions.
C.Decrease the number of executor cores.
D.Decrease the spark.executor.memoryOverhead.
AnswerA

More memory reduces GC overhead.

Why this answer

Increasing executor memory reduces GC frequency. Option B is wrong because it reduces parallelism. Option C is wrong because it reduces memory per task.

Option D is wrong because it reduces memory and may increase GC.

330
MCQeasy

A data engineer is designing a data lake on Amazon S3. The data includes sensitive personally identifiable information (PII). Which combination of services would provide the most comprehensive data protection?

A.Use S3 Transfer Acceleration and enable versioning
B.Enable S3 server-side encryption with AWS KMS
C.Use Amazon CloudWatch Logs to monitor access and enable MFA Delete
D.Enable S3 Block Public Access and use Amazon Macie to discover and classify PII
AnswerD

Block Public Access prevents exposure; Macie identifies and alerts on PII.

Why this answer

Combining S3 Block Public Access prevents unintended public exposure, and Amazon Macie automatically discovers, classifies, and protects sensitive PII. Option A is incorrect because S3 Transfer Acceleration speeds up uploads but does not protect data; versioning helps with accidental deletion but not confidentiality or access control. Option B is incorrect because SSE-KMS only provides encryption at rest, not comprehensive protection against misconfigurations or authorized access to PII.

Option C is incorrect because CloudWatch Logs monitor and audit access but do not prevent exposure or classify data; MFA Delete protects against accidental deletion but not against data leaks.

331
MCQhard

A company runs a critical data pipeline using Amazon Kinesis Data Firehose to deliver data to Amazon S3. The data is compressed with GZIP and partitioned by year/month/day/hour. Recently, the delivery to S3 has been failing with 'Rate exceeded' errors. The Firehose delivery stream has a buffer size of 128 MB and buffer interval of 60 seconds. What is the most effective way to resolve this issue?

A.Transition objects to S3 Glacier after 30 days.
B.Decrease the buffer size to 64 MB and buffer interval to 30 seconds.
C.Increase the buffer size to 256 MB and buffer interval to 120 seconds.
D.Enable server-side encryption on the S3 bucket.
AnswerC

Larger buffers reduce the number of S3 PUT requests, alleviating throttling.

Why this answer

The 'Rate exceeded' error indicates that Kinesis Data Firehose is sending requests to S3 at a rate that exceeds the S3 bucket's request rate limits for PUT operations. Increasing the buffer size to 256 MB and the buffer interval to 120 seconds allows Firehose to accumulate more data before each S3 PUT request, reducing the number of requests per second and staying within S3's 3,500 PUT requests per second limit per prefix. This directly addresses the throttling issue without changing the data volume.

Exam trap

The trap here is that candidates mistakenly think reducing buffer size or interval will speed up delivery, but in reality, it increases request frequency and worsens S3 throttling, while increasing buffers is the correct way to reduce request rate.

How to eliminate wrong answers

Option A is wrong because transitioning objects to S3 Glacier after 30 days does not affect the rate of PUT requests to the S3 bucket; it only changes storage class after delivery, so it cannot resolve current delivery failures. Option B is wrong because decreasing the buffer size to 64 MB and buffer interval to 30 seconds would increase the frequency of S3 PUT requests, worsening the 'Rate exceeded' errors by exceeding the bucket's request rate limits even more. Option D is wrong because enabling server-side encryption on the S3 bucket does not change the request rate or throughput; it only encrypts objects at rest and has no impact on throttling of PUT operations.

332
MCQhard

A data engineer is monitoring an Amazon Redshift cluster and notices that queries are taking longer than expected. The engineer checks the system tables and sees that many queries are waiting for 'WLM' resources. What is the most likely cause and recommended fix?

A.The table sort keys are poorly designed; recreate tables with better sort keys.
B.The distribution style is set to ALL; change to KEY distribution.
C.The WLM queue concurrency is set too low; increase the concurrency level.
D.The cluster is running low on disk space; resize the cluster.
AnswerC

Higher concurrency allows more simultaneous queries.

Why this answer

A wait for WLM (Workload Management) resources indicates that queries are being throttled due to insufficient concurrency slots. Increasing the WLM queue concurrency allows more queries to run simultaneously. Option A is incorrect because sort keys affect query scan efficiency, not WLM queue waits.

Option B is incorrect because distribution style affects data redistribution, not concurrency throttling. Option D is incorrect because low disk space would cause different errors, not specifically WLM queue waits.

333
MCQhard

A company has an S3 data lake with millions of objects. A data engineer needs to provide a daily report of objects that are not accessed for 90 days. The engineer must minimize cost and impact on performance. Which approach should be used?

A.Enable S3 Inventory and query with Athena
B.Use S3 Select on each object to check last access metadata
C.Analyze S3 server access logs to find objects not accessed
D.Use S3 Storage Lens to generate a dashboard of object age and last access
AnswerD

S3 Storage Lens provides a dashboard with free metrics such as 'Object Age' and 'Last Access Date', making it the most cost-effective and performant option for this use case.

Why this answer

S3 Storage Lens provides cost-effective analytics including last access date and object age, enabling identification of objects not accessed for 90 days without scanning all objects or incurring high costs. Option A is less suitable because S3 Inventory creates daily lists but requires additional Athena queries, adding complexity and cost. Option B is incorrect because S3 Select is designed for querying object content, not metadata; applying it to millions of objects would be highly inefficient and costly.

Option C is incorrect because analyzing S3 server access logs would involve storing and querying large volumes of log data, which is costly and impacts performance, and it logs all requests rather than providing a direct last access timestamp.

334
Multi-Selecthard

A data engineer is designing a data lake on Amazon S3. The data is ingested from multiple sources and must be queryable using Amazon Athena. The engineer needs to optimize query performance and reduce costs. Which THREE actions would achieve this?

Select 3 answers
A.Store data in many small files to increase parallelism.
B.Partition the data by a commonly used filter column.
C.Use S3 Select instead of Athena for queries.
D.Compress data with a splittable compression format like Snappy.
E.Convert data to Apache Parquet or ORC format.
AnswersB, D, E

Partition pruning limits the data scanned.

Why this answer

Partitioning data by a commonly used filter column (e.g., date, region) allows Athena to prune partitions during query execution, scanning only the relevant S3 prefixes. This reduces the amount of data read per query, directly lowering both query latency and cost, as Athena charges based on the volume of data scanned.

Exam trap

The trap here is that candidates confuse 'more files = more parallelism' with Athena's actual recommendation of fewer, larger files to minimize the overhead of S3 list and get operations, and they may also mistake S3 Select as a viable alternative to Athena for full SQL querying.

335
MCQhard

Your company runs a critical data processing pipeline that ingests data from multiple sources into an Amazon S3 bucket. An AWS Glue ETL job processes this data and writes the output to an Amazon Redshift cluster. The pipeline is triggered by an S3 event notification that invokes an AWS Lambda function, which starts the Glue job. Recently, you have observed that the Glue job occasionally fails with an AccessDenied error when trying to access the S3 bucket. The IAM role used by the Glue job has the following policy: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::input-bucket", "arn:aws:s3:::input-bucket/*" ] }, { "Effect": "Allow", "Action": [ "redshift:CopyData" ], "Resource": "*" } ] }. The S3 bucket has a bucket policy that allows access only from a specific VPC. The Glue job runs in a VPC with the appropriate VPC endpoints configured. The error occurs intermittently and sometimes retries succeed. What is the most likely cause and correct course of action?

A.Add a VPC endpoint for S3 and configure the bucket policy to allow access from the Glue job's VPC endpoint.
B.Ensure the Glue job's VPC configuration includes a NAT gateway to route traffic to S3.
C.Change the Lambda function to use a different IAM role with broader S3 permissions.
D.Modify the Glue job's IAM role to include s3:PutObject permission for the output bucket.
AnswerA

This ensures requests from Glue are routed through the VPC endpoint and comply with the bucket policy.

Why this answer

The Glue job intermittently fails with AccessDenied when accessing the S3 bucket because the bucket policy restricts access to requests originating from a specific VPC endpoint. Although the Glue job runs in a VPC, it does not automatically route S3 traffic through the VPC endpoint; it may use the internet or a different endpoint. The intermittent success occurs when requests happen to come from the allowed endpoint.

To resolve this, ensure the Glue job's VPC configuration includes a VPC endpoint for S3, and update the bucket policy to allow access from that endpoint. Option B is incorrect because a NAT gateway would route traffic through the internet, which may be denied by the bucket policy. Option C is incorrect because the Lambda function's IAM role does not affect the Glue job's access.

Option D is incorrect because the error is about reading from the input bucket, not writing to the output bucket, and the IAM role already has the necessary S3 permissions.

336
MCQeasy

A data engineer is monitoring an Amazon Kinesis Data Analytics application that uses a SQL query to aggregate streaming data. The application is falling behind and the millisBehindLatest metric is increasing. Which action should the engineer take to improve performance?

A.Switch from SQL to Apache Flink for the analytics application
B.Increase the number of shards in the source Kinesis stream
C.Increase the Parallelism setting of the Kinesis Data Analytics application
D.Decrease the window duration of the SQL query
AnswerC

Higher parallelism increases processing capacity, reducing lag.

Why this answer

Increasing the Parallelism setting of the Kinesis Data Analytics application allows the SQL query to process data across more in-application streams and operators concurrently, directly addressing the lag indicated by the rising millisBehindLatest metric. This action scales the compute resources allocated to the application without changing the source stream or the query logic, making it the most direct way to improve throughput for a SQL-based Kinesis Data Analytics application.

Exam trap

The trap here is that candidates often confuse scaling the source (shards) with scaling the processing engine (parallelism), assuming that more data input automatically fixes processing lag, when in fact the bottleneck is the application's compute capacity.

How to eliminate wrong answers

Option A is wrong because switching from SQL to Apache Flink is a fundamental architectural change that is not required to address performance tuning; the question specifically states the application uses SQL, and Flink would require rewriting the application entirely, not a simple performance fix. Option B is wrong because increasing the number of shards in the source Kinesis stream increases the ingestion capacity but does not directly improve the processing speed of the Kinesis Data Analytics application; if the application is already falling behind due to insufficient compute, more shards will only increase the backlog. Option D is wrong because decreasing the window duration of the SQL query reduces the amount of data aggregated per window, which may reduce latency but does not increase the overall processing parallelism or throughput; it could even cause more frequent window triggers, potentially worsening the lag.

337
MCQhard

A company uses Amazon Redshift for data warehousing. They notice that queries are running slowly, and the STL_LOAD_ERRORS table shows many 'Parse error' entries. The data is loaded from Amazon S3 using COPY commands. What is the MOST likely cause of the parse errors?

A.The source data files have a different schema or delimiter than what is specified in the COPY command.
B.The Redshift cluster does not have enough compute nodes to process the data.
C.The IAM role used by Redshift does not have permission to decrypt the S3 objects.
D.The source data files are compressed using an unsupported compression format.
AnswerA

Schema mismatch leads to parse errors.

Why this answer

Parse errors during COPY typically indicate that the source data does not match the target table schema (e.g., data type mismatch or delimiter issues). Option B is incorrect because insufficient compute nodes would cause performance degradation, not parse errors. Option C is incorrect because IAM permission issues would cause access denied errors, not parse errors.

Option D is incorrect because unsupported compression formats would cause decompression errors, not parse errors.

338
MCQeasy

A company uses Amazon EMR to run Spark jobs on a transient cluster. The jobs process data from S3 and write results back to S3. The team wants to reduce costs by optimizing the cluster. Which action should the team take?

A.Use Spot Instances for the task nodes.
B.Increase the number of core nodes and use larger instance types.
C.Enable EMRFS consistent view.
D.Terminate the cluster after each job and manually restart it for the next job.
AnswerA

Spot instances are cheaper than on-demand.

Why this answer

Using Spot Instances for task nodes in a transient EMR cluster significantly reduces compute costs because Spot Instances are spare AWS EC2 capacity offered at up to 90% discount compared to On-Demand. Since transient clusters are terminated after job completion, the risk of Spot Instance interruptions is mitigated—the job can simply be retried on a new cluster if needed. This directly addresses the cost optimization goal without sacrificing job functionality.

Exam trap

The trap here is that candidates confuse cost optimization with performance tuning, leading them to choose larger instances (Option B) or consistency features (Option C), when the real cost lever for transient workloads is leveraging Spot pricing for ephemeral compute.

How to eliminate wrong answers

Option B is wrong because increasing the number of core nodes and using larger instance types increases costs, not reduces them, and core nodes host HDFS which is unnecessary for a transient cluster that reads/writes directly to S3. Option C is wrong because EMRFS consistent view is a feature to handle S3 eventual consistency for listing and renaming, not a cost optimization mechanism—it adds overhead without reducing spend. Option D is wrong because EMR transient clusters already terminate automatically after the job completes; manually restarting is redundant and does not further reduce costs, and it introduces operational overhead.

339
MCQhard

A data engineer is running an AWS Glue ETL job that converts CSV files to Parquet. The job fails with the error shown in the exhibit. The input files are about 500 MB each. The job uses 5 workers of type G.1X (16 GB memory each). What is the MOST likely cause?

A.The output Parquet file size is too large for the executor memory
B.The data is highly skewed causing a single partition to receive too much data
C.The Spark driver does not have enough memory to handle the schema inference
D.The input CSV files are corrupt or have inconsistent schema
AnswerA

Writing a large file requires memory proportional to file size; splitting into smaller files can help.

Why this answer

The error indicates an out-of-memory (OOM) error during the write phase. When converting large CSV files to Parquet, Spark must buffer the output data in memory before writing. With 500 MB input files and 5 workers of G.1X (16 GB each), the executor memory is limited.

If the output Parquet file or partition is too large, it may exceed the executor's memory, causing OOM. Option B (data skew) could also cause OOM, but typically during shuffle, not write. Options C and D are unrelated to write OOM issues.

340
Multi-Selecteasy

A data engineer is migrating a legacy data warehouse to Amazon Redshift. The engineer needs to load data from multiple sources efficiently. Which THREE services can be used to load data into Redshift? (Choose THREE.)

Select 3 answers
A.Use the COPY command to load from Amazon DynamoDB.
B.Use Kinesis Data Firehose to deliver data directly to Redshift.
C.Use AWS DMS to replicate data continuously.
D.Use S3 Transfer Acceleration.
E.Use the COPY command to load from Amazon S3.
AnswersA, C, E

Correct: The COPY command can load data directly from DynamoDB into Redshift.

Why this answer

The COPY command can load data from Amazon DynamoDB (A) and Amazon S3 (E) directly into Amazon Redshift. AWS DMS (C) can continuously replicate data from multiple sources into Redshift, making it a valid service for loading data. Option B (Kinesis Data Firehose) does not deliver data directly to Redshift; it writes to S3 first, then Redshift uses COPY.

Option D (S3 Transfer Acceleration) accelerates uploads to S3, not loading into Redshift.

Exam trap

Candidates often think Kinesis Data Firehose delivers directly to Redshift, but it actually writes to S3 first. AWS DMS is a valid service for loading data, not just for migration.

341
MCQmedium

A data engineer is troubleshooting a Kinesis Data Analytics application that processes streaming data. The application is falling behind and has a high 'MillisBehindLatest' metric. The application uses a parallelism of 2. The source stream has 4 shards. What is the MOST likely cause and solution?

A.The application is using a JSON format; switch to Avro.
B.The source stream has too many shards; decrease to 2.
C.The application parallelism is too low; increase it to 4.
D.The output destination is slow; change to a faster sink.
AnswerC

With 4 shards, parallelism should be at least 4 to process all shards concurrently.

Why this answer

The 'MillisBehindLatest' metric indicates the application is not keeping up with the incoming data. With a source stream of 4 shards and a parallelism of only 2, the application cannot process data from all shards concurrently, leading to backpressure. Increasing parallelism to match the shard count (4) allows each shard to be processed by a separate task, reducing lag.

Exam trap

The trap here is that candidates may assume increasing parallelism always improves performance, but the key insight is that parallelism must match or exceed the number of source shards to avoid a concurrency bottleneck, not just be arbitrarily high.

How to eliminate wrong answers

Option A is wrong because changing the serialization format from JSON to Avro reduces data size but does not address the fundamental throughput mismatch between shard count and parallelism; the bottleneck is concurrency, not serialization efficiency. Option B is wrong because reducing the number of shards would decrease the source stream's throughput capacity, potentially causing data loss or throttling; the correct approach is to scale application parallelism to match the existing shards. Option D is wrong because a slow output sink would cause backpressure that manifests as increased 'MillisBehindLatest', but the question states the application is falling behind, and the most direct cause given the parallelism of 2 versus 4 shards is insufficient processing concurrency, not sink performance.

342
MCQeasy

A company uses Amazon S3 as a data lake. A data engineer needs to ensure that all objects uploaded to the 'incoming' prefix are automatically encrypted at rest using AWS KMS with a specific customer managed key. What is the simplest way to enforce this?

A.Enable S3 Transfer Acceleration to force encryption in transit.
B.Use a bucket policy that denies PutObject requests without the required encryption header.
C.Configure S3 Inventory to report on encryption status and alert on non-compliance.
D.Enable default encryption on the bucket with SSE-S3.
AnswerB

A bucket policy with a condition for s3:x-amz-server-side-encryption-aws-kms-key-id enforces the specific key.

Why this answer

A bucket policy with a condition that denies PutObject requests unless the request includes the required encryption headers (x-amz-server-side-encryption: aws:kms and x-amz-server-side-encryption-aws-kms-key-id with the specific customer managed key ARN) enforces encryption at rest using that key. Option A (S3 Transfer Acceleration) only optimizes transfer speed, not encryption at rest. Option C (S3 Inventory) reports on encryption status but does not enforce it.

Option D (default encryption with SSE-S3) uses S3-managed keys, not a customer managed KMS key, so it does not meet the requirement.

343
MCQhard

A company runs a data pipeline that uses Amazon EMR to process large datasets. The pipeline reads data from S3, processes it using Spark, and writes results back to S3. Recently, the pipeline has been failing with 'OutOfMemoryError' in the Spark executors. The EMR cluster is configured with 5 core nodes of type m5.xlarge (4 vCPU, 16 GB memory each). The Spark application uses dynamic allocation and default Spark configurations. The input data size is approximately 500 GB in Parquet format. What is the most cost-effective way to resolve the out-of-memory errors?

A.Increase the spark.executor.memory setting to 8 GB in the Spark configuration.
B.Change the core node instance type to r5.xlarge (32 GB memory) and keep 5 nodes.
C.Increase the number of core nodes to 10 to distribute the data across more executors.
D.Change the input data format from Parquet to ORC to reduce memory footprint.
AnswerB

Memory-optimized instances provide more memory per node, reducing OOM without increasing node count.

Why this answer

The current cluster has limited memory per node (16 GB). By switching to memory-optimized instances like r5.xlarge (32 GB), each node has double the memory, reducing the chance of OOM. This is more cost-effective than adding more nodes because the total memory per node increases without increasing the number of instances.

Option A is wrong because increasing the number of nodes adds more memory but also more cost; it might be more expensive than using fewer, larger nodes. Option C is wrong because it's generally not recommended to increase spark.executor.memory beyond the physical memory; it could cause YARN to kill containers. Option D is wrong because Parquet is already efficient; changing to a different format may not solve memory issues.

344
Multi-Selectmedium

A data engineer needs to ensure that data in an Amazon S3 bucket is not publicly accessible. Which TWO measures should the engineer implement? (Choose TWO.)

Select 2 answers
A.Attach a bucket policy that denies access to 'Principal': '*' unless specific conditions are met.
B.Create a lifecycle policy to delete objects after 30 days.
C.Enable S3 Block Public Access settings on the bucket.
D.Enable S3 Versioning on the bucket.
E.Enable default encryption on the bucket.
AnswersA, C

A bucket policy can deny all public access.

Why this answer

To prevent public access to an S3 bucket, you can use bucket policies that explicitly deny access to anonymous principals (option A) or enable S3 Block Public Access settings (option C). Option B is incorrect because lifecycle policies manage object retention and deletion, not access control. Option D is incorrect because versioning protects against accidental deletion/overwrites but does not control access.

Option E is incorrect because default encryption secures data at rest but does not restrict public access.

345
MCQeasy

A data engineer is designing a data pipeline that ingests data from an on-premises database into Amazon S3 using AWS Database Migration Service (DMS). The data must be encrypted at rest in S3 using SSE-S3. The engineer also needs to track changes to the source database in real time. Which DMS configuration should the engineer use?

A.Use DMS with a snapshot of the source database.
B.Use DMS with ongoing replication (change data capture) enabled.
C.Use DMS with a full load task only.
D.Use DMS with a full load task and then stream to Amazon Kinesis.
AnswerB

CDC captures real-time changes.

Why this answer

DMS with ongoing replication (change data capture) enables real-time tracking of changes from the source database. Option A is incorrect because using a snapshot only captures data at a point in time, not real-time changes. Option C is incorrect because a full load task only loads existing data without capturing ongoing changes.

Option D is incorrect because streaming to Amazon Kinesis is unnecessary; DMS CDC can directly replicate changes to S3. Encryption at rest in S3 with SSE-S3 is automatically supported by DMS when writing to S3.

346
MCQmedium

A company is running an Amazon EMR cluster with Spark for data processing. The data engineer wants to automatically scale the core and task nodes based on the YARN memory and CPU utilization. Which scaling metric should the engineer use for the EMR managed scaling policy?

A.YARNMemoryAvailablePercentage
B.CPUUtilization
C.DiskIOPS
D.HDFSUtilization
AnswerA

EMR managed scaling uses YARN memory metrics.

Why this answer

EMR managed scaling uses YARNMemoryAvailablePercentage and YARNContainersPending as the default metrics for scaling. Option B is incorrect because CPUUtilization is not a default metric for EMR managed scaling. Option C is incorrect because HDFSUtilization is for HDFS, not YARN.

Option D is incorrect because IOPS is not a metric for EMR managed scaling.

347
Multi-Selecteasy

A data engineer is monitoring an Amazon Kinesis Data Stream used to ingest clickstream data. The engineer notices that the stream's 'WriteProvisionedThroughputExceeded' metric is frequently above zero. Which TWO actions could help mitigate this issue? (Choose TWO.)

Select 2 answers
A.Increase the number of shards in the stream.
B.Reduce the data retention period to free up capacity.
C.Decrease the number of shards to reduce overhead.
D.Implement a random prefix for the partition key to distribute data evenly.
E.Enable enhanced fan-out on the stream.
AnswersA, D

More shards increase total write capacity.

Why this answer

Options A and D are correct. Increasing the number of shards in the stream increases the write capacity, reducing the 'WriteProvisionedThroughputExceeded' metric. Implementing a random prefix for the partition key helps distribute data writes evenly across all shards, preventing hot shards.

Option B is incorrect because reducing the data retention period does not affect write throughput; it only changes how long data is stored. Option C is incorrect because decreasing the number of shards would reduce write capacity, potentially worsening the issue. Option E is incorrect because enabling enhanced fan-out increases read capacity, not write capacity.

348
Multi-Selectmedium

A data engineer is troubleshooting a Glue ETL job that reads from an S3 bucket and writes to a Redshift table. The job fails with a 'MemoryError' when processing a large dataset. Which TWO actions should the engineer take to resolve this issue? (Choose TWO.)

Select 2 answers
A.Increase the number of DPUs and set 'spark.sql.shuffle.partitions' to a higher value.
B.Increase the number of DPUs and set 'coalesce(1)' in the script.
C.Decrease the number of DPUs and increase 'spark.shuffle.partitions'.
D.Set the 'RedshiftTempDir' parameter to a larger S3 bucket.
E.Set the 'groupFiles' option to 'inPartition' in the S3 source configuration.
AnswersA, E

More DPUs and shuffle partitions distribute data across more executors, reducing per-executor memory load.

Why this answer

Increasing the number of DPUs (Data Processing Units) provides more memory and compute resources to the Glue job, directly addressing the MemoryError. Setting 'spark.sql.shuffle.partitions' to a higher value reduces the amount of data shuffled per partition, preventing out-of-memory errors during wide transformations like joins or aggregations.

Exam trap

The trap here is that candidates confuse 'coalesce(1)' (which reduces parallelism) with a memory-saving technique, or mistakenly think decreasing DPUs or adjusting RedshiftTempDir can fix memory errors, when in fact memory errors require more resources and better partition management.

349
MCQeasy

A company uses Amazon Kinesis Data Streams to ingest clickstream data. The data is consumed by a custom consumer application that writes to Amazon S3 every 5 minutes. The consumer is falling behind and processing lag is increasing. Which action is MOST effective to reduce the lag?

A.Switch to Amazon Kinesis Data Firehose to deliver data directly to S3
B.Increase the batch size of records written to S3
C.Increase the number of shards in the Kinesis stream
D.Reduce the retention period of the stream
AnswerC

More shards increase parallelism and throughput, allowing the consumer to keep up.

Why this answer

The consumer is falling behind because the stream's throughput capacity is insufficient for the incoming data volume. Increasing the number of shards in the Kinesis stream directly increases the total read capacity (each shard provides 2 MB/s read throughput and 5 transactions/second), allowing the consumer to process more data in parallel and reduce lag.

Exam trap

The trap here is that candidates often confuse throughput scaling with batch size or delivery destination changes, but the only way to increase read throughput from a Kinesis stream is to increase the number of shards or use enhanced fan-out.

How to eliminate wrong answers

Option A is wrong because switching to Kinesis Data Firehose does not change the underlying stream's throughput; Firehose is a delivery service that still reads from the same shards, so it would not resolve the consumer's processing lag. Option B is wrong because increasing the batch size written to S3 only affects the write operation to S3, not the consumer's ability to read from the stream faster; the bottleneck is the consumer's read throughput, not the S3 write batch size. Option D is wrong because reducing the retention period (default 24 hours to 1 hour) does not increase read throughput; it only causes data to expire sooner, which could lead to data loss but does not help the consumer catch up.

350
MCQeasy

A company uses Amazon S3 to store raw data and AWS Lambda to process files as they arrive. The Lambda function sometimes times out when processing large files. The team wants to improve reliability and scalability. Which approach should the team take?

A.Replace Lambda with AWS Batch and use S3 event notifications to trigger the batch job.
B.Use Amazon S3 event notifications to send events to an Amazon SNS topic, which triggers Lambda.
C.Increase the Lambda function timeout to 15 minutes and memory to 3 GB.
D.Use Amazon S3 event notifications to send events to an Amazon SQS queue, and then have Lambda poll the queue in batches.
AnswerD

Decoupling with SQS allows Lambda to process at its own pace.

Why this answer

Using S3 event notifications to send events to an SQS queue decouples the file upload from processing. Lambda can then poll the queue in batches, processing multiple events per invocation. This improves reliability by allowing retries and scalability by handling spikes in file arrivals without timing out.

Option A is incorrect because AWS Batch is designed for long-running batch jobs, not event-driven processing triggered by S3 events. Option B is incorrect because SNS is push-based and can still overwhelm Lambda, leading to timeouts. Option C is incorrect because increasing Lambda timeout and memory only postpones the problem without addressing the root cause of scaling and reliability.

351
MCQeasy

A data engineer is troubleshooting a failed AWS Glue Crawler. The crawler logs show 'Insufficient permissions to access S3 bucket'. What should the engineer do to resolve this?

A.Grant the crawler's IAM user access to the bucket
B.Attach a VPC endpoint to the S3 bucket
C.Enable S3 default encryption on the bucket
D.Update the IAM role used by the crawler to include S3 read permissions
AnswerD

The role must have s3:GetObject and s3:ListBucket.

Why this answer

The AWS Glue Crawler uses an IAM role to access data sources. The error 'Insufficient permissions to access S3 bucket' indicates that the IAM role attached to the crawler lacks the necessary S3 read permissions (e.g., s3:GetObject, s3:ListBucket). Updating the IAM role's policy to include these permissions resolves the issue, as the crawler operates under that role, not under a specific IAM user.

Exam trap

The trap here is that candidates may confuse the crawler's execution context with an IAM user, leading them to choose Option A, but AWS Glue Crawlers always run under an IAM role, not a user.

How to eliminate wrong answers

Option A is wrong because AWS Glue Crawlers do not use an IAM user for execution; they use an IAM role. Granting access to an IAM user would not affect the crawler's permissions. Option B is wrong because a VPC endpoint enables private connectivity between a VPC and S3 but does not grant or modify IAM permissions; the error is about authorization, not network connectivity.

Option C is wrong because enabling S3 default encryption controls server-side encryption settings and does not affect IAM permission policies; the crawler still needs explicit read access regardless of encryption.

352
MCQmedium

A company runs a data pipeline using AWS Lambda to process records from an Amazon Kinesis Data Stream. Recently, the Lambda function has been experiencing high invocation errors and the stream is throttling. The function performs simple transformations and writes to Amazon S3. What is the most effective way to reduce throttling and errors?

A.Increase the Lambda function timeout.
B.Enable provisioned concurrency on the Lambda function.
C.Increase the number of shards in the Kinesis stream.
D.Increase the batch size in the Lambda event source mapping.
AnswerD

Larger batch sizes mean fewer invocations, reducing throttling and errors.

Why this answer

Increasing the batch size in the Lambda event source mapping allows each invocation to process more records from the Kinesis stream, reducing the number of total invocations. This lowers the rate at which Lambda polls the stream, which decreases the likelihood of hitting the Kinesis read throughput limits (5 transactions per second per shard) and reduces throttling errors. The simple transformations and S3 writes are likely I/O-bound, so larger batches improve throughput without increasing invocation concurrency.

Exam trap

The trap here is that candidates mistakenly believe throttling is caused by Lambda concurrency limits or cold starts, when in fact the root cause is the Kinesis stream's read throughput limit per shard, which is reduced by increasing the batch size in the event source mapping.

How to eliminate wrong answers

Option A is wrong because increasing the Lambda function timeout does not reduce the invocation rate or the number of concurrent executions; it only allows a single invocation to run longer, which does not address throttling caused by excessive polling or read throughput limits. Option B is wrong because provisioned concurrency pre-warms execution environments to reduce cold starts, but it does not reduce the number of invocations or the rate at which Lambda polls the Kinesis stream; it may even increase concurrency and exacerbate throttling. Option C is wrong because increasing the number of shards would increase the total read throughput capacity of the stream, but it does not reduce the per-shard invocation rate or the number of Lambda invocations; it could actually increase the total number of concurrent invocations, potentially worsening throttling if the batch size remains small.

353
MCQmedium

A data engineer is running an Amazon Athena query that scans a large amount of data in Amazon S3, resulting in high costs. The data is stored in Parquet format in a partitioned table. Which strategy would be MOST effective in reducing the amount of data scanned?

A.Ensure the query includes a WHERE clause that filters on partition columns.
B.Convert the Parquet files to CSV format and apply GZIP compression.
C.Use S3 Intelligent-Tiering storage class to reduce storage costs.
D.Increase the number of partitions by adding more partition columns.
AnswerA

Partition pruning reduces the amount of data scanned.

Why this answer

Partition pruning allows Athena to read only the partitions that match the WHERE clause, significantly reducing the amount of data scanned. Option A is correct because filtering on partition columns is the most effective way to minimize scanned data. Option B is incorrect because Parquet is a columnar format that already compresses well and reduces scan compared to CSV with GZIP.

Option C is incorrect because S3 Intelligent-Tiering optimizes storage costs, not query scan costs. Option D is incorrect because adding more partition columns does not reduce scan unless the query filters on them, and may increase metadata overhead.

354
Multi-Selecthard

A company is running a Redshift cluster and wants to improve query performance for a frequently used dashboard. Which THREE approaches are recommended?

Select 3 answers
A.Enable concurrency scaling
B.Apply column compression encoding
C.Define sort keys on columns used in WHERE clauses
D.Add more nodes to the cluster
E.Choose an appropriate distribution key for large tables
AnswersB, C, E

Reduces I/O and storage.

Why this answer

The recommended approaches for improving Redshift query performance include applying column compression encoding (Option B) to reduce I/O, defining sort keys on columns used in WHERE clauses (Option C) to enable range-restricted scans, and choosing an appropriate distribution key for large tables (Option E) to minimize data movement between nodes. Enabling concurrency scaling (Option A) primarily helps with handling multiple concurrent queries but does not directly improve the performance of an individual query. Adding more nodes (Option D) can increase overall capacity but is often not the most cost-effective or immediate solution for performance issues.

355
MCQeasy

A company uses AWS DMS to migrate data from an on-premises Oracle database to Amazon RDS for PostgreSQL. The migration completes successfully, but the target database has inconsistent data. What should the team do to ensure data consistency?

A.Use 'Limited LOB mode' and set the maximum LOB size to a higher value.
B.Enable 'Full LOB mode' in the DMS task settings.
C.Restart the DMS task after truncating the target tables.
D.Configure the DMS task to use 'Full LOB mode' with parallel threads and enable 'BatchApply'.
AnswerD

This ensures all LOBs are migrated and applied efficiently.

Why this answer

Using 'Full LOB mode' ensures that large objects are migrated without truncation, parallel threads improve throughput, and 'BatchApply' applies changes in batches to maintain transactional consistency. Option A is incorrect because 'Limited LOB mode' can truncate LOB data if the size exceeds the configured maximum, leading to data loss. Option B is incorrect because merely enabling 'Full LOB mode' without parallel threads and 'BatchApply' may not handle large volumes efficiently, potentially causing inconsistency under heavy load.

Option C is incorrect because truncating target tables and restarting the task is a destructive approach that does not resolve the underlying migration issues and can cause data loss or downtime.

356
MCQeasy

A data engineer is tasked with setting up a data pipeline that moves data from an on-premises Oracle database to Amazon S3 every hour. The network bandwidth is limited, and the engineer needs to ensure data consistency. Which AWS service should the engineer use?

A.AWS DataSync.
B.Amazon Kinesis Data Firehose.
C.S3 Transfer Acceleration.
D.AWS Database Migration Service (DMS) with change data capture (CDC).
AnswerD

DMS supports continuous replication and ensures data consistency via CDC.

Why this answer

AWS DMS with CDC is the correct choice because it can continuously replicate ongoing changes from an on-premises Oracle database to Amazon S3 while ensuring data consistency. CDC captures only the incremental changes (inserts, updates, deletes) after an initial full load, minimizing the data transferred over limited bandwidth and maintaining transactional integrity.

Exam trap

The trap here is that candidates often confuse AWS DataSync (a file-transfer service) with database replication, or assume S3 Transfer Acceleration can solve bandwidth issues without addressing the need for change data capture and consistency from a live database.

How to eliminate wrong answers

Option A is wrong because AWS DataSync is designed for large-scale file and object transfers between on-premises storage and AWS, not for streaming database changes from a relational database like Oracle. Option B is wrong because Amazon Kinesis Data Firehose is a streaming ingestion service for real-time data into S3, but it cannot directly connect to an on-premises Oracle database or perform change data capture. Option C is wrong because S3 Transfer Acceleration only speeds up uploads to S3 over the public internet by using AWS edge locations; it does not handle database replication, CDC, or data consistency from an on-premises source.

357
MCQhard

A data engineer is troubleshooting an AWS Glue crawler that is not correctly inferring the schema of CSV files stored in Amazon S3. The files have headers, but the crawler is treating the header row as data. The crawler is configured with a custom classifier that has a CSV classifier with 'Column header' set to 'Use first row as header'. What is the most likely reason the crawler is not recognizing the header?

A.The CSV classifier's 'Quote symbol' setting does not match the files.
B.The CSV files have a varying number of columns across rows.
C.The CSV files have a different delimiter than the default comma.
D.The header row contains uppercase letters.
AnswerA

If the classifier expects a quote symbol but the files have none, the classifier may not apply, causing the crawler to treat header as data.

Why this answer

The CSV classifier's 'Quote symbol' setting must match the files. If the files do not use quotes, but the classifier expects a quote symbol (e.g., double quotes), the classifier may fail to match, causing the crawler to fall back to default behavior and treat the header row as data. Option B is wrong because a varying number of columns would cause schema issues, not header misrecognition.

Option C is wrong because the delimiter is unrelated to header detection; a custom delimiter can be set separately. Option D is wrong because case of header text does not affect the crawler's ability to recognize headers.

358
MCQmedium

A company is ingesting streaming data from thousands of IoT devices into Amazon Kinesis Data Streams. The data is processed by a Kinesis Data Analytics application. Recently, the application started reporting high iterator age (millisBehindLatest). Which action would BEST reduce the iterator age?

A.Decrease the data retention period of the Kinesis stream.
B.Increase the data retention period of the Kinesis stream.
C.Increase the record size limit in the Kinesis stream.
D.Increase the number of shards in the Kinesis stream.
AnswerD

More shards allow higher throughput and reduce the backlog, decreasing iterator age.

Why this answer

Increasing the number of shards increases the stream's throughput capacity, allowing the Kinesis Data Analytics application to consume data faster and reduce the iterator age (millisBehindLatest). Option A is incorrect: decreasing the data retention period does not improve processing speed; it only reduces the time data is stored. Option B is incorrect: increasing retention also does not affect processing speed.

Option C is incorrect: the record size limit is fixed (1 MB) and cannot be increased; increasing shards is the appropriate scaling action.

359
MCQeasy

A company stores sensitive customer data in an S3 bucket. The data engineer needs to ensure that all data is encrypted at rest. Which S3 feature should be enabled?

A.S3 Versioning
B.S3 Block Public Access
C.Bucket policy requiring aws:SecureTransport
D.Default encryption
AnswerD

Default encryption automatically encrypts new objects.

Why this answer

Default encryption ensures that all new objects written to the bucket are encrypted at rest using SSE-S3, SSE-KMS, or SSE-C. Option A is incorrect because S3 Versioning tracks object versions but does not encrypt data. Option B is incorrect because S3 Block Public Access controls public access, not encryption.

Option C is incorrect because the aws:SecureTransport condition enforces encryption in transit, not at rest.

360
MCQhard

A data pipeline uses Amazon Kinesis Data Firehose to deliver data to an Amazon S3 bucket. The delivery stream is configured with a buffer size of 5 MB and a buffer interval of 60 seconds. The team notices that the S3 objects are much smaller than 5 MB. What is the most likely explanation?

A.The incoming data volume is low, so the 60-second buffer interval triggers delivery before the 5 MB buffer is filled.
B.The S3 bucket has event notifications that split the objects.
C.The S3 bucket has a lifecycle policy that transitions objects to Glacier.
D.The delivery stream is using GZIP compression, which reduces the object size.
AnswerA

Because if the incoming data rate is low, the buffer interval (60 seconds) expires before the buffer size (5 MB) is reached, causing small S3 objects.

Why this answer

If the incoming data rate is low, the buffer interval (60 seconds) expires before the buffer size (5 MB) is reached, causing small objects. Option B is incorrect because S3 event notifications do not split objects; they are triggered by events but do not affect object size. Option C is incorrect because S3 lifecycle policies transition objects to Glacier, which does not affect object size during delivery.

Option D is incorrect because GZIP compression reduces the object size after batching, but the buffer interval can still trigger delivery before the buffer is full, so it is not the most likely explanation.

← PreviousPage 5 of 5 · 360 questions total

Ready to test yourself?

Try a timed practice session using only Data Operations and Support questions.