Free Amazon-DEA-C01 Exam Braindumps
AWS Certified Data Engineer - Associate Questions 73–80 (page: 11)

Updated On: 3-Aug-2026

A company receives a daily file that contains customer data in .xls format. The company stores the file in Amazon S3. The daily file is approximately 2 GB in size. A data engineer concatenates the column in the file that contains customer first names and the column that contains customer last names. The data engineer needs to determine the number of distinct customers in the file.
Which solution will meet this requirement with the LEAST operational effort?

  1. Create and run an Apache Spark job in an AWS Glue notebook. Configure the job to read the S3 file and calculate the number of distinct customers.
  2. Create an AWS Glue crawler to create an AWS Glue Data Catalog of the S3 file. Run SQL queries from Amazon Athena to calculate the number of distinct customers.
  3. Create and run an Apache Spark job in Amazon EMR Serverless to calculate the number of distinct customers.
  4. Use AWS Glue DataBrew to create a recipe that uses the COUNT_DISTINCT aggregate function to calculate the number of distinct customers.

Answer(s): D

Explanation:

The correct answer is D: Use AWS Glue DataBrew to create a recipe that uses the COUNT_DISTINCT aggregate function to calculate the number of distinct customers. Here's a detailed justification:
The primary goal is to determine the number of distinct customers from a daily 2GB .xls file stored in S3 with minimal operational overhead. Several options are available, but their efficiency and complexity vary.
Option A, using AWS Glue notebook with Apache Spark, involves writing and managing Spark code for reading the .xls file, concatenating columns, and counting distinct values.
While feasible, it requires more development and operational effort for scripting, job execution, and potential error handling. https://aws.amazon.com/glue/features/
Option B, utilizing AWS Glue crawler and Amazon Athena, also presents some complexity. AWS Glue crawler needs to be configured to infer the schema of the .xls file (which might be challenging), and Athena will then query this inferred schema.
While SQL-based, it might require knowledge of complex queries and optimal performance tuning for large files. https://aws.amazon.com/athena/
Option C, employing Amazon EMR Serverless with Apache Spark, is similar to option A. EMR Serverless simplifies the management of the EMR cluster. The core challenge of writing and maintaining Spark code for the .xls processing and distinct count calculation remains. https://aws.amazon.com/emr/serverless/
Option D, using AWS Glue DataBrew, is the most streamlined approach. AWS Glue DataBrew is a visual data preparation tool that requires minimal coding. It directly provides functionalities to read data from S3, transform the data using built-in recipes (concatenation in this case), and apply aggregate functions like COUNT_DISTINCT to determine the unique customer count. The visual interface and pre-built transformations reduce development time and operational complexity significantly. https://aws.amazon.com/glue/databrew/
Because the .xls format can be read using DataBrew and DataBrew has built-in functions for both concatenating the columns and providing a count of distinct values, this option involves the least development and operational effort. It provides a quick, efficient, and easily manageable solution for the given task.



A healthcare company uses Amazon Kinesis Data Streams to stream real-time health data from wearable devices, hospital equipment, and patient records. A data engineer needs to find a solution to process the streaming data. The data engineer needs to store the data in an Amazon Redshift Serverless warehouse. The solution must support near real-time analytics of the streaming data and the previous day's data.
Which solution will meet these requirements with the LEAST operational overhead?

  1. Load data into Amazon Kinesis Data Firehose. Load the data into Amazon Redshift.
  2. Use the streaming ingestion feature of Amazon Redshift.
  3. Load the data into Amazon S3. Use the COPY command to load the data into Amazon Redshift.
  4. Use the Amazon Aurora zero-ETL integration with Amazon Redshift.

Answer(s): B

Explanation:

The correct answer is B: Use the streaming ingestion feature of Amazon Redshift.
Here's why:
Amazon Redshift's streaming ingestion directly addresses the need for near real-time analytics of streaming data. It allows data to be ingested directly from Kinesis Data Streams into Redshift tables. This minimizes latency because it bypasses intermediary storage like S3. Since Redshift Serverless is used, operational overhead is already minimized as resource management is handled by AWS, and this solution further simplifies the data pipeline. The streaming ingestion feature builds on this by reducing the need for separate ETL pipelines, reducing management complexity.
Option A, using Kinesis Data Firehose and loading into Redshift, introduces an unnecessary intermediary step.
While Firehose can load data into Redshift, it's generally used for batch-oriented or micro-batch scenarios, adding latency compared to Redshift's native streaming ingestion.
Option C, loading data into Amazon S3 first and then using the COPY command, is also a batch-oriented approach. COPY command requires data to be staged in S3 before it can be loaded into Redshift. This adds significant latency and is not suitable for near real-time analytics. This is much more applicable to a batch processing or traditional ETL pipeline.
Option D, the Aurora zero-ETL integration with Redshift, is not applicable here. This option is specifically designed to replicate data from an Aurora database to Redshift, and not from a Kinesis Data Stream. The use case is database replication, not streaming data processing.
By directly ingesting data from Kinesis into Redshift using the native streaming ingestion feature, the healthcare company achieves the lowest latency, supports near real-time analytics, leverages the managed nature of Redshift Serverless to minimize operational overhead, and simplifies the overall data pipeline compared to the alternatives.
For further research, refer to the official AWS documentation:
Amazon Redshift Streaming Ingestion: https://aws.amazon.com/redshift/features/streaming-ingestion/ Amazon Redshift Serverless: https://aws.amazon.com/redshift/serverless/



A data engineer needs to use an Amazon QuickSight dashboard that is based on Amazon Athena queries on data that is stored in an Amazon S3 bucket.
When the data engineer connects to the QuickSight dashboard, the data engineer receives an error message that indicates insufficient permissions.
Which factors could cause to the permissions-related errors? (Choose two.)

  1. There is no connection between QuickSight and Athena.
  2. The Athena tables are not cataloged.
  3. QuickSight does not have access to the S3 bucket.
  4. QuickSight does not have access to decrypt S3 data.
  5. There is no IAM role assigned to QuickSight.

Answer(s): C,D

Explanation:

The correct answer is C and
D. Let's break down why:
C: QuickSight does not have access to the S3 bucket.
QuickSight needs explicit permission to read the data residing in the S3 bucket. Athena queries might run successfully because Athena itself might have the necessary permissions to access S3. However, QuickSight directly accesses the data to visualize it. If QuickSight's IAM role or policy doesn't grant s3:GetObject permission on the S3 bucket and the specific objects (data files), QuickSight will fail to retrieve the data and display an error. This is a fundamental aspect of AWS security – resources only have access if explicitly granted. Without this access, QuickSight cannot visualize the data returned by Athena. This is a common cause of permissions-related errors when using QuickSight with S3-backed data.
D: QuickSight does not have access to decrypt S3 data.
If the data in the S3 bucket is encrypted (either using server-side encryption with S3 managed keys (SSE-S3), server-side encryption with KMS managed keys (SSE-KMS), or client-side encryption), QuickSight needs permission to decrypt the data. For SSE-KMS, QuickSight's IAM role must have permission to use the KMS key ( kms:Decrypt ).
If encryption is in place and QuickSight lacks the necessary decryption permissions, it will fail to read the data, leading to permissions-related errors. This is crucial for data security and ensuring only authorized services can access sensitive information. Server-side encryption with customer-provided keys (SSE-C) is also a potential scenario, where QuickSight would need to be configured with those keys.
Why other options are incorrect:
A: There is no connection between QuickSight and Athena. A connection needs to be established between QuickSight and Athena as a data source, but this not being set would cause a different error. B: The Athena tables are not cataloged. If Athena tables are not cataloged, Athena itself would have problems querying the data, before QuickSight could even access it. E: There is no IAM role assigned to QuickSight. QuickSight does have an IAM role that gets created when setting it up.
Supporting Documentation:
Connecting to Amazon S3: https://docs.aws.amazon.com/quicksight/latest/user/supported-data-sources.html IAM Role for QuickSight: https://docs.aws.amazon.com/quicksight/latest/user/security-iam-service-role-permissions.html Amazon S3 Encryption: https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html



A company stores datasets in JSON format and .csv format in an Amazon S3 bucket. The company has Amazon RDS for Microsoft SQL Server databases, Amazon DynamoDB tables that are in provisioned capacity mode, and an Amazon Redshift cluster. A data engineering team must develop a solution that will give data scientists the ability to query all data sources by using syntax similar to SQL.
Which solution will meet these requirements with the LEAST operational overhead?

  1. Use AWS Glue to crawl the data sources. Store metadata in the AWS Glue Data Catalog. Use Amazon Athena to query the data. Use SQL for structured data sources. Use PartiQL for data that is stored in JSON format.
  2. Use AWS Glue to crawl the data sources. Store metadata in the AWS Glue Data Catalog. Use Redshift Spectrum to query the data. Use SQL for structured data sources. Use PartiQL for data that is stored in JSON format.
  3. Use AWS Glue to crawl the data sources. Store metadata in the AWS Glue Data Catalog. Use AWS Glue jobs to transform data that is in JSON format to Apache Parquet or .csv format. Store the transformed data in an S3 bucket. Use Amazon Athena to query the original and transformed data from the S3 bucket.
  4. Use AWS Lake Formation to create a data lake. Use Lake Formation jobs to transform the data from all data sources to Apache Parquet format. Store the transformed data in an S3 bucket. Use Amazon Athena or Redshift Spectrum to query the data.

Answer(s): A

Explanation:

The best solution is A because it leverages Amazon Athena, which is designed for querying data in place in S3 using SQL-like syntax, with the added benefit of PartiQL support for querying JSON data directly. This avoids unnecessary data movement or transformation, minimizing operational overhead. AWS Glue handles the crawling and metadata management, providing a unified catalog.
Here's a detailed breakdown:
Athena's Suitability: Athena's serverless nature means no infrastructure management is required. It's ideal for ad-hoc querying by data scientists. Its pay-per-query pricing model aligns with on-demand analytical needs.
PartiQL for JSON: PartiQL provides a SQL-compatible query language to efficiently access and manipulate data in various formats, including JSON, simplifying the interaction with semi-structured data stored in S3.
AWS Glue Integration: Glue simplifies the process of discovering data schemas and registering tables in the Glue Data Catalog, which Athena uses. This eliminates the manual effort of defining table structures.
Why other options are less optimal:
B (Redshift Spectrum): Redshift Spectrum, while powerful for querying S3 data, is better suited for larger data volumes and complex analytical workloads where Redshift's compute power is justified. It is generally overkill for the described scenario and increases operational complexity.
C (Glue transformation to Parquet): Transforming all data to Parquet introduces ETL processes, adding to operational overhead. The requirement mentions querying "original and transformed data," implying a need for both.
D (Lake Formation): Lake Formation simplifies creating and managing a data lake. However, transforming all data to Parquet using Lake Formation jobs before querying is unnecessarily complex when a serverless query engine can directly query both the JSON and CSV data.
Authoritative Links: * Amazon Athena * AWS Glue * PartiQL * Amazon Redshift Spectrum * AWS Lake Formation



A data engineer is configuring Amazon SageMaker Studio to use AWS Glue interactive sessions to prepare data for machine learning (ML) models. The data engineer receives an access denied error when the data engineer tries to prepare the data by using SageMaker Studio.
Which change should the engineer make to gain access to SageMaker Studio?

  1. Add the AWSGlueServiceRole managed policy to the data engineer's IAM user.
  2. Add a policy to the data engineer's IAM user that includes the sts:AssumeRole action for the AWS Glue and SageMaker service principals in the trust policy.
  3. Add the AmazonSageMakerFullAccess managed policy to the data engineer's IAM user.
  4. Add a policy to the data engineer's IAM user that allows the sts:AddAssociation action for the AWS Glue and SageMaker service principals in the trust policy.

Answer(s): B

Explanation:

The correct answer is B. Add a policy to the data engineer's IAM user that includes the sts:AssumeRole action for the AWS Glue and SageMaker service principals in the trust policy.
Here's why:
The problem indicates an access denied error when the data engineer tries to use SageMaker Studio with AWS Glue interactive sessions. This strongly suggests a permissions issue related to assuming roles. SageMaker Studio, when interacting with other AWS services like Glue, often needs to assume a role to gain the necessary permissions. Glue interactive sessions need to access the data the data engineer is trying to prepare. Therefore, the data engineer's IAM user needs explicit permission to assume the roles that SageMaker and Glue use for these interactions.
sts:AssumeRole is the IAM action that grants the ability to assume a role. The policy needs to specify that the data engineer's user can assume roles that have a trust policy allowing the SageMaker and Glue service principals ( sagemaker.amazonaws.com and glue.amazonaws.com ) to assume them. The trust policy on the role assumed by SageMaker/Glue defines who can assume it, whereas the user's policy defines which roles the user is allowed to assume. Without this, the data engineer's user is effectively blocked from authorizing SageMaker and Glue to do work on their behalf.
Option A, adding AWSGlueServiceRole , might seem relevant, but this role is for Glue, not for the user.
While it's required for Glue itself to function, granting it to the engineer wouldn't give them permission to use Glue through SageMaker. Option C, AmazonSageMakerFullAccess , is overly permissive. It grants a wide range of
SageMaker permissions that aren't necessarily needed and violates the principle of least privilege. Option D, sts:AddAssociation , is not a standard STS action and wouldn't be relevant to role assumption. The operation sts:AddAssociation is not related to role assumption or granting permissions for using AWS Glue interactive sessions through Amazon SageMaker Studio. The correct approach involves enabling the data engineer's IAM user to assume the roles that are used by the SageMaker Studio and AWS Glue services.
In summary, allowing the data engineer's IAM user to AssumeRole for SageMaker and Glue service principals ensures the data engineer's IAM user can authorize those services to access the data.
Refer to these resources for further information:
IAM Roles Granting Permissions to Assume a Role AWS STS AssumeRole



A company extracts approximately 1 TB of data every day from data sources such as SAP HANA, Microsoft SQL Server, MongoDB, Apache Kafka, and Amazon DynamoDB. Some of the data sources have undefined data schemas or data schemas that change. A data engineer must implement a solution that can detect the schema for these data sources. The solution must extract, transform, and load the data to an Amazon S3 bucket. The company has a service level agreement (SLA) to load the data into the S3 bucket within 15 minutes of data creation.
Which solution will meet these requirements with the LEAST operational overhead?

  1. Use Amazon EMR to detect the schema and to extract, transform, and load the data into the S3 bucket. Create a pipeline in Apache Spark.
  2. Use AWS Glue to detect the schema and to extract, transform, and load the data into the S3 bucket. Create a pipeline in Apache Spark.
  3. Create a PySpark program in AWS Lambda to extract, transform, and load the data into the S3 bucket.
  4. Create a stored procedure in Amazon Redshift to detect the schema and to extract, transform, and load the data into a Redshift Spectrum table. Access the table from Amazon S3.

Answer(s): B

Explanation:

The correct answer is B: Use AWS Glue to detect the schema and to extract, transform, and load the data into the S3 bucket. Create a pipeline in Apache Spark.
Here's a detailed justification:
Schema Detection: AWS Glue provides automatic schema discovery capabilities through its Glue Data Catalog and Crawlers. This is crucial because the data sources have undefined or changing schemas. Glue Crawlers can infer schemas from various data sources, including those mentioned in the scenario (SAP HANA, SQL Server, MongoDB, Kafka, DynamoDB). ETL Capability: AWS Glue is specifically designed for ETL (Extract, Transform, Load) operations. It offers a managed Apache Spark environment that simplifies data transformation tasks. Integration with S3: Glue seamlessly integrates with Amazon S3 as both a source and destination for data. Operational Overhead: AWS Glue is a serverless service, minimizing operational overhead. You don't have to manage the underlying infrastructure. Glue manages the Spark environment, scaling, and maintenance, reducing manual effort. Scalability and Performance: Glue can handle large datasets and complex transformations due to its managed Spark environment, meeting the requirement of processing 1 TB of data daily. SLA Compliance: Glue's scalability and built-in ETL features allow for timely data processing, enabling the company to meet its 15-minute SLA for loading data into S3. Comparison with Alternatives:
A (Amazon EMR): While EMR can perform the same tasks, it requires more operational overhead. Managing an EMR cluster, including cluster sizing, configuration, and monitoring, is more complex than using Glue. C (AWS Lambda): Lambda functions have execution time limits and memory constraints, making them unsuitable for processing 1 TB of data. Also, writing a robust PySpark program within Lambda for schema detection and ETL would be complex and impractical. D (Amazon Redshift): Redshift is primarily a data warehouse and not ideal for detecting schemas of diverse, rapidly changing data sources directly. Redshift Spectrum relies on pre-defined schemas, defeating the purpose of dynamic schema detection. Also, loading 1 TB into a Redshift Spectrum table and then accessing from S3 would involve unnecessary data transfer and computational cost.
In summary, AWS Glue offers a managed, serverless ETL service that is ideally suited for schema detection and data transformation from diverse sources to S3, fulfilling all the given requirements with the least operational overhead.
Authoritative Links:
AWS Glue Documentation: https://docs.aws.amazon.com/glue/index.html AWS Glue Crawlers: https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html Amazon S3 Documentation: https://docs.aws.amazon.com/s3/index.html



A company has multiple applications that use datasets that are stored in an Amazon S3 bucket. The company has an ecommerce application that generates a dataset that contains personally identifiable information (PII). The company has an internal analytics application that does not require access to the PII. To comply with regulations, the company must not share PII unnecessarily. A data engineer needs to implement a solution that with redact PII dynamically, based on the needs of each application that accesses the dataset.
Which solution will meet the requirements with the LEAST operational overhead?

  1. Create an S3 bucket policy to limit the access each application has. Create multiple copies of the dataset.
    Give each dataset copy the appropriate level of redaction for the needs of the application that accesses the copy.
  2. Create an S3 Object Lambda endpoint. Use the S3 Object Lambda endpoint to read data from the S3 bucket. Implement redaction logic within an S3 Object Lambda function to dynamically redact PII based on the needs of each application that accesses the data.
  3. Use AWS Glue to transform the data for each application. Create multiple copies of the dataset. Give each dataset copy the appropriate level of redaction for the needs of the application that accesses the copy.
  4. Create an API Gateway endpoint that has custom authorizers. Use the API Gateway endpoint to read data from the S3 bucket. Initiate a REST API call to dynamically redact PII based on the needs of each application that accesses the data.

Answer(s): B

Explanation:

The correct answer is B: Create an S3 Object Lambda endpoint. Use the S3 Object Lambda endpoint to read data from the S3 bucket. Implement redaction logic within an S3 Object Lambda function to dynamically redact PII based on the needs of each application that accesses the data.
Here's a detailed justification:
S3 Object Lambda is designed for transforming data retrieved from S3 on-the-fly, before it's returned to the application. This makes it ideal for dynamic PII redaction. With S3 Object Lambda, a Lambda function intercepts requests for objects stored in S3. This function can then modify the data (in this case, redact PII) based on application-specific logic before returning it to the requesting application. The key advantage is that only one copy of the dataset is maintained in S3, reducing storage and management overhead.
Option A, creating multiple copies of the dataset with varying levels of redaction, introduces significant operational overhead. Maintaining multiple copies requires more storage, increases the risk of inconsistencies between datasets, and complicates data governance. The S3 bucket policy can control access, but it doesn't dynamically redact data based on the specific application needs without creating multiple copies.
Option C, using AWS Glue, is more suitable for batch processing and ETL (Extract, Transform, Load) workloads.
While Glue can perform data transformations, it is not the best choice for dynamic, real-time redaction during data retrieval. Creating multiple transformed copies with Glue suffers from the same drawbacks as option A.
Option D, using API Gateway with custom authorizers, adds unnecessary complexity. API Gateway is primarily designed for managing APIs, not for data transformation.
While it could theoretically be used to trigger a redaction process, it's a less efficient and more complex solution compared to S3 Object Lambda, which is specifically built for this type of use case. It will involve another REST API call and adds latency.
S3 Object Lambda offers the least operational overhead because it allows for dynamic, on-demand data transformation without replicating the dataset. This ensures that each application receives the appropriate version of the data with PII redacted as needed, all while managing a single source of truth. It directly integrates with S3 and utilizes serverless compute (Lambda) for the transformation logic, making it a scalable and cost-effective solution.
Here are authoritative links for further research:
AWS S3 Object Lambda: https://aws.amazon.com/s3/object-lambda/ S3 Object Lambda Documentation: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-object-lambda.html



A data engineer needs to build an extract, transform, and load (ETL) job. The ETL job will process daily incoming .csv files that users upload to an Amazon S3 bucket. The size of each S3 object is less than 100 MB.
Which solution will meet these requirements MOST cost-effectively?

  1. Write a custom Python application. Host the application on an Amazon Elastic Kubernetes Service (Amazon EKS) cluster.
  2. Write a PySpark ETL script. Host the script on an Amazon EMR cluster.
  3. Write an AWS Glue PySpark job. Use Apache Spark to transform the data.
  4. Write an AWS Glue Python shell job. Use pandas to transform the data.

Answer(s): C

Explanation:

The correct answer is C. Write an AWS Glue PySpark job. Use Apache Spark to transform the data.
Here's why:
AWS Glue is purpose-built for ETL: AWS Glue is a fully managed ETL service, designed to discover, prepare, and integrate data for analytics, machine learning, and application development. This eliminates the need for setting up and managing infrastructure specifically for ETL. ( https://aws.amazon.com/glue/ ) Cost-effectiveness: Glue is cost-effective because it's a pay-as-you-go service. You only pay for the time your ETL job runs. For this use case with relatively small daily files, the cost associated with AWS Glue will likely be lower than maintaining a dedicated EKS cluster or EMR cluster. Spark for Scalability: Using a Glue PySpark job leverages the distributed processing capabilities of Apache Spark, enabling efficient processing of data even if the file sizes increase in the future.
While the individual files are currently small, Spark provides scalability if the data volume grows. Simplicity: Glue automates many ETL tasks like data discovery, schema inference, and job scheduling. This reduces the development and operational overhead. Option A (EKS): Using EKS involves managing a Kubernetes cluster, which adds significant operational overhead. The cost of running a Kubernetes cluster can be substantial, even for a small cluster, making it less cost-effective for simple ETL tasks. Option B (EMR): Amazon EMR is also a good choice for ETL and Big Data applications; however, setting up and maintaining an EMR cluster has a higher overhead and cost than AWS Glue, particularly when you need a service that scales with demand. Option D (Glue Python Shell with Pandas): While AWS Glue Python Shell is a cheaper option, it does not provide as much functionality as other solutions. Python Shells are better for simple ETL jobs, but not as effective when dealing with potentially large datasets that would benefit from Apache Spark. Additionally, using pandas might become a bottleneck when file sizes increases.
In Summary, AWS Glue PySpark provides the best balance of cost-effectiveness, scalability, and simplicity for this particular ETL use case, making it the most suitable solution. ( https://docs.aws.amazon.com/glue/index.html )



Viewing page 11 of 47
Viewing questions 81 - 88 out of 366 questions


Post your Comments and Discuss Amazon Amazon-DEA-C01 exam prep with other Community members:

AI Tutor AI Tutor 👋 I’m here to help!