Free Amazon-DEA-C01 Exam Braindumps
AWS Certified Data Engineer - Associate Questions 153–160 (page: 21)

Updated On: 3-Aug-2026

A retail company uses an Amazon Redshift data warehouse and an Amazon S3 bucket. The company ingests retail order data into the S3 bucket every day. The company stores all order data at a single path within the S3 bucket. The data has more than 100 columns. The company ingests the order data from a third-party application that generates more than 30 files in CSV format every day. Each CSV file is between 50 and 70 MB in size. The company uses Amazon Redshift Spectrum to run queries that select sets of columns. Users aggregate metrics based on daily orders. Recently, users have reported that the performance of the queries has degraded. A data engineer must resolve the performance issues for the queries.
Which combination of steps will meet this requirement with LEAST developmental effort? (Choose two.)

  1. Configure the third-party application to create the files in a columnar format.
  2. Develop an AWS Glue ETL job to convert the multiple daily CSV files to one file for each day.
  3. Partition the order data in the S3 bucket based on order date.
  4. Configure the third-party application to create the files in JSON format.
  5. Load the JSON data into the Amazon Redshift table in a SUPER type column.

Answer(s): A,C

Explanation:

Here's a detailed justification for why options A and C are the best choices to improve query performance in this scenario, along with supporting concepts and links.
The core issue is that Amazon Redshift Spectrum's performance is suffering due to the current data storage format and organization in S3. Redshift Spectrum benefits significantly from columnar storage formats and data partitioning.
Why A is correct: Configure the third-party application to create the files in a columnar format.
Columnar storage benefits: Columnar formats like Parquet or ORC allow Redshift Spectrum to read only the columns required for a query, drastically reducing I/O and improving performance. With the current CSV format, Spectrum must scan the entire file to extract even a single column. This optimization is called "column projection". Relevance to the scenario: The retail company is performing queries that select sets of columns and aggregations. A columnar format will allow Spectrum to avoid reading unnecessary data, directly addressing the performance bottleneck. Reduced I/O: Columnar formats are often compressed, further reducing the amount of data that needs to be read from S3. Least developmental effort: If possible, configuring the third-party application is simpler than building a new ETL pipeline. It avoids developing and maintaining custom code.
Why C is correct: Partition the order data in the S3 bucket based on order date.
Data partitioning benefits: Partitioning data in S3, using date as the partition key, allows Redshift Spectrum to read only the data relevant to a specific date. This technique is called "partition pruning". Relevance to the scenario: The company aggregates metrics based on daily orders. Partitioning by date means Spectrum can efficiently target the specific partitions required for a given day's analysis. Improved query performance: By limiting the amount of data scanned, partitioning leads to faster query execution times and reduced cost. Cost Savings: By scanning less data, organizations can optimize their S3 data retrieval expenses.
Why B, D, and E are incorrect:
B: Develop an AWS Glue ETL job to convert the multiple daily CSV files to one file for each day.
While reducing the number of files could help slightly, it doesn't address the fundamental problem of the row-based CSV format or the lack of partitioning. This option requires significant development effort for minimal gain.
D: Configure the third-party application to create the files in JSON format. JSON is still a row-oriented format, so it doesn't provide the columnar read benefits of Parquet or OR
C. It might even increase the file size compared to CSV if not compressed, negatively impacting performance.
E: Load the JSON data into the Amazon Redshift table in a SUPER type column. This option involves loading the data into Redshift rather than leveraging Spectrum. It also doesn't solve the problem of scanning large amounts of unnecessary data in external storage. It defeats the purpose of using Redshift Spectrum for querying data directly in S3. The SUPER data type in Redshift is primarily for semi-structured data with varying schemas within Redshift's managed storage, not for optimizing Spectrum queries of external data.
Supporting Links:
Amazon Redshift Spectrum best practices for query performance: https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-query.html Optimizing Amazon S3 performance: https://aws.amazon.com/premiumsupport/knowledge-center/s3-performance/ AWS Glue Partitioning: https://docs.aws.amazon.com/glue/latest/dg/partitioning.html
In conclusion, switching to a columnar format (A) and partitioning the data by date (C) are the most effective approaches to improve Redshift Spectrum query performance with the least developmental effort, as they directly address the inefficiencies caused by the row-based CSV format and lack of data organization.



A company stores customer records in Amazon S3. The company must not delete or modify the customer record data for 7 years after each record is created. The root user also must not have the ability to delete or modify the data. A data engineer wants to use S3 Object Lock to secure the data.
Which solution will meet these requirements?

  1. Enable governance mode on the S3 bucket. Use a default retention period of 7 years.
  2. Enable compliance mode on the S3 bucket. Use a default retention period of 7 years.
  3. Place a legal hold on individual objects in the S3 bucket. Set the retention period to 7 years.
  4. Set the retention period for individual objects in the S3 bucket to 7 years.

Answer(s): B

Explanation:

The correct answer is
B: Enable compliance mode on the S3 bucket. Use a default retention period of 7 years.
Here's a detailed justification:
S3 Object Lock is designed to prevent objects from being deleted or overwritten for a specified period. The requirement to prevent deletion/modification for 7 years aligns perfectly with this functionality. The key lies in choosing the correct mode: Governance or Compliance.
Compliance Mode is the stricter of the two modes. Once an object is locked in compliance mode, the retention settings cannot be shortened, and the object cannot be deleted by any user, including the root user. This directly addresses the requirement that the root user should also be unable to delete or modify the data during the 7-year retention period.
Governance Mode allows privileged users to override the retention settings if they have the s3:BypassGovernanceRetention permission. This does not meet the requirement of restricting the root user.
Setting a default retention period on the bucket applies the retention policy to all new objects automatically, simplifying management. Configuring retention per object would be far more cumbersome and error-prone.
Legal holds are used to preserve data for litigation purposes and are not designed for general, long-term retention policies.
While a legal hold could prevent deletion, it doesn't set a retention period of 7 years, and the policy would need to be manually removed after 7 years, adding complexity.
Therefore, Compliance mode with a default retention period ensures that objects cannot be deleted or modified for 7 years, even by the root user, fulfilling the defined requirements in the most effective and secure manner.
Authoritative Links:
AWS Documentation on S3 Object Lock: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html AWS Blog on S3 Object Lock: https://aws.amazon.com/blogs/aws/amazon-s3-object-lock/



A data engineer needs to create a new empty table in Amazon Athena that has the same schema as an existing table named old_table.
Which SQL statement should the data engineer use to meet this requirement?

  1. CREATE TABLE new_table AS SELECT * FROM old_tables;
  2. INSERT INTO new_table SELECT * FROM old_table;
  3. CREATE TABLE new_table (LIKE old_table);
  4. CREATE TABLE new_table AS (SELECT * FROM old_table) WITH NO DATA;

Answer(s): D

Explanation:

D: CREATE TABLE new_table AS (SELECT * FROM old_table) WITH NO DATA;
The requirement is:
Create a new empty table
With the same schema
As old_table
In Amazon Athena



A data engineer needs to create an Amazon Athena table based on a subset of data from an existing Athena table named cities_world. The cities_world table contains cities that are located around the world. The data engineer must create a new table named cities_us to contain only the cities from cities_world that are located in the US.
Which SQL statement should the data engineer use to meet this requirement?

  1. INSERT INTO cities_usa (city,state) SELECT city, state FROM cities_world WHERE country=’usa’;
  2. MOVE city, state FROM cities_world TO cities_usa WHERE country=’usa’;
  3. INSERT INTO cities_usa SELECT city, state FROM cities_world WHERE country=’usa’;
  4. UPDATE cities_usa SET (city, state) = (SELECT city, state FROM cities_world WHERE country=’usa’);

Answer(s): C

Explanation:

The correct SQL statement for creating a new Athena table cities_us from a subset of data in cities_world where the country is the US is INSERT INTO cities_usa SELECT city, state FROM cities_world WHERE
country=’usa’; .
Here's why:
INSERT INTO : This SQL command is used to insert data into an existing table. In this case, we're populating cities_usa with data derived from another table.
SELECT city, state FROM cities_world : This part of the statement selects specific columns (city and state)
from the source table cities_world . These are the columns whose values we want to transfer into the new table.
WHERE country=’usa’ : This is the crucial filtering condition. It ensures that only rows from cities_world where the country column's value is 'usa' are selected and inserted into cities_usa . This satisfies the requirement of creating a table containing only US cities.
Why other options are incorrect:
Option A INSERT INTO cities_usa (city,state) SELECT city, state FROM cities_world WHERE country=’usa’; :
While this might seem correct at first glance, it is incorrect syntax within Athena. Athena requires the columns be selected in the same order and number as the underlying table definitions. If cities_usa had any other columns aside from city and state , this statement will fail. Option C is more suitable for this reason.
Option B MOVE city, state FROM cities_world TO cities_usa WHERE country=’usa’; : There's no MOVE
command in standard SQL, especially not for transferring data between tables. MOVE typically implies deleting the data from the source, which is definitely not what the requirement asks for. This option is syntactically incorrect and functionally inappropriate. Option D UPDATE cities_usa SET (city, state) = (SELECT city, state FROM cities_world WHERE
country=’usa’); : The UPDATE command is for modifying existing rows in a table, not for creating new rows.
Also, this statement is structured to attempt setting city and state of all rows in cities_usa to only one city and state from cities_world (the first one it finds where the country is 'usa'). This contradicts the goal of adding all
US cities from cities_world to cities_usa .
In summary, option C is the only SQL command that correctly selects a subset of rows based on a condition and inserts them into a new table, meeting the given requirements. INSERT INTO...SELECT...WHERE is a standard pattern for creating new tables populated with data from existing ones.
Athena INSERT INTO documentation



A company implements a data mesh that has a central governance account. The company needs to catalog all data in the governance account. The governance account uses AWS Lake Formation to centrally share data and grant access permissions. The company has created a new data product that includes a group of Amazon Redshift Serverless tables. A data engineer needs to share the data product with a marketing team. The marketing team must have access to only a subset of columns. The data engineer needs to share the same data product with a compliance team. The compliance team must have access to a different subset of columns than the marketing team needs access to.
Which combination of steps should the data engineer take to meet these requirements? (Choose two.)

  1. Create views of the tables that need to be shared. Include only the required columns.
  2. Create an Amazon Redshift data share that includes the tables that need to be shared.
  3. Create an Amazon Redshift managed VPC endpoint in the marketing team’s account. Grant the marketing team access to the views.
  4. Share the Amazon Redshift data share to the Lake Formation catalog in the governance account.
  5. Share the Amazon Redshift data share to the Amazon Redshift Serverless workgroup in the marketing team's account.

Answer(s): B,D

Explanation:

The correct answer is B and D. Here's a detailed justification:
B: Create an Amazon Redshift data share that includes the tables that need to be shared.
Redshift data sharing is designed to enable secure sharing of data across Redshift clusters or Serverless workgroups without the need to copy or move data. In a data mesh architecture with centralized governance, data sharing facilitates providing data products to different teams. By creating a data share, the data engineer can package the relevant tables from the Redshift Serverless instance into a shareable unit. This aligns with the requirement of sharing the data product.
D: Share the Amazon Redshift data share to the Lake Formation catalog in the governance account.
Integrating Redshift data shares with the Lake Formation catalog is critical for centralized data governance. Lake Formation provides a central repository for metadata, enabling discovery, access control, and auditing. Sharing the Redshift data share to Lake Formation makes the data product discoverable and manageable within the governed environment. The governance account can then manage permissions and access to the data share. This integration enables granular control over data access, a key principle of data mesh and centralized governance. Lake Formation can then grant permissions based on the user or role accessing the data in the share.
Why other options are incorrect:

A: Create views of the tables that need to be shared. Include only the required columns.
While views are useful for restricting column access, creating views in the data producer's Redshift cluster/Serverless and then finding a mechanism to grant access to those views from the consumer accounts doesn't align with the data mesh principles. You'd have to either give direct access to Redshift, which is not ideal, or create a data lake process to copy the data to another location. The intent is to make the producer responsible for the data, which data sharing achieves.
C: Create an Amazon Redshift managed VPC endpoint in the marketing team’s account. Grant the marketing team access to the views. VPC endpoints provide private connectivity, but are not part of the core mechanism for sharing and managing access in a data mesh, especially considering Lake Formation's involvement for governance. Also, this depends on option A which makes this incorrect by default.
E: Share the Amazon Redshift data share to the Amazon Redshift Serverless workgroup in the marketing team's account.
While you can share Redshift data shares between Redshift clusters or Serverless instances, doing it directly to the marketing team's account bypasses the central governance provided by Lake Formation. The governance account must be the one managing data sharing and permissions for all data products. Also, column level access cannot be granted through the redshift console..
Supporting Links:
Amazon Redshift data sharing AWS Lake Formation documentation



A company has a data lake in Amazon S3. The company uses AWS Glue to catalog data and AWS Glue Studio to implement data extract, transform, and load (ETL) pipelines. The company needs to ensure that data quality issues are checked every time the pipelines run. A data engineer must enhance the existing pipelines to evaluate data quality rules based on predefined thresholds.
Which solution will meet these requirements with the LEAST implementation effort?

  1. Add a new transform that is defined by a SQL query to each Glue ETL job. Use the SQL query to implement a ruleset that includes the data quality rules that need to be evaluated.
  2. Add a new Evaluate Data Quality transform to each Glue ETL job. Use Data Quality Definition Language (DQDL) to implement a ruleset that includes the data quality rules that need to be evaluated.
  3. Add a new custom transform to each Glue ETL job. Use the PyDeequ library to implement a ruleset that includes the data quality rules that need to be evaluated.
  4. Add a new custom transform to each Glue ETL job. Use the Great Expectations library to implement a ruleset that includes the data quality rules that need to be evaluated.

Answer(s): B

Explanation:

The correct answer is B. Add a new Evaluate Data Quality transform to each Glue ETL job. Use Data Quality Definition Language (DQDL) to implement a ruleset that includes the data quality rules that need to be evaluated.
Here's a detailed justification:
AWS Glue's "Evaluate Data Quality" transform is specifically designed for implementing data quality checks within Glue ETL pipelines. This approach offers the least implementation effort because it leverages a built-in Glue functionality tailored for the task. Data Quality Definition Language (DQDL) is the language provided by AWS Glue for defining data quality rules.
Option A suggests using SQL queries.
While SQL can perform some data quality checks, it would require significantly more complex SQL and custom logic to implement a comprehensive ruleset, increasing development time and complexity. This introduces extra overhead and may not be as efficient as a dedicated data quality transform.
Options C and D propose using custom transforms with PyDeequ and Great Expectations, respectively.
While both PyDeequ and Great Expectations are powerful data quality libraries, integrating them as custom transforms in Glue ETL jobs demands considerable coding and dependency management. This involves packaging the library, configuring the environment, and writing custom Python code to interact with the library, resulting in a significantly more complex setup and maintenance burden compared to the native Glue functionality. The integration complexity is high compared to the direct integration using the "Evaluate Data
Quality" transform.
The "Evaluate Data Quality" transform with DQDL offers a declarative way to define data quality rules, simplifying the process. It's the most direct, integrated, and therefore the solution requiring the least implementation effort to meet the data quality monitoring requirements. Using Glue's built-in functionality optimizes for maintainability and reduces custom code dependencies, making it the preferred solution for the described scenario.
For further research, refer to the following AWS documentation:
AWS Glue Data Quality: https://docs.aws.amazon.com/glue/latest/dg/glue_data_quality.html Data Quality Definition Language (DQDL): https://docs.aws.amazon.com/glue/latest/dg/data_quality_rules-dqdl.html



A company has an application that uses a microservice architecture. The company hosts the application on an Amazon Elastic Kubernetes Services (Amazon EKS) cluster. The company wants to set up a robust monitoring system for the application. The company needs to analyze the logs from the EKS cluster and the application. The company needs to correlate the cluster's logs with the application's traces to identify points of failure in the whole application request flow.
Which combination of steps will meet these requirements with the LEAST development effort? (Choose two.)

  1. Use FluentBit to collect logs. Use OpenTelemetry to collect traces.
  2. Use Amazon CloudWatch to collect logs. Use Amazon Kinesis to collect traces.
  3. Use Amazon CloudWatch to collect logs. Use Amazon Managed Streaming for Apache Kafka (Amazon MSK) to collect traces.
  4. Use Amazon OpenSearch to correlate the logs and traces.
  5. Use AWS Glue to correlate the logs and traces.

Answer(s): A,D

Explanation:

Here's a detailed justification for why options A and D are the best choices for correlating EKS cluster logs and application traces with minimal development effort:
Option A: Use FluentBit to collect logs. Use OpenTelemetry to collect traces.
FluentBit: FluentBit is a lightweight, open-source log processor and forwarder specifically designed for containerized environments like EKS. It efficiently collects logs from various sources within the cluster (pods, containers, system logs) with minimal resource consumption. Its Kubernetes integration makes log collection straightforward. https://www.fluentbit.io/ OpenTelemetry: OpenTelemetry is an open-source observability framework that provides standardized APIs, SDKs, and tools for collecting and exporting traces, metrics, and logs. Using OpenTelemetry simplifies instrumentation across different microservices and programming languages. It avoids vendor lock-in, promotes interoperability, and provides the necessary context for tracing requests across the entire application. https://opentelemetry.io/ By using these tools, the company will minimize the amount of development to implement this solution. They are designed to be containerized, which makes them compatible with the current architecture.
Option D: Use Amazon OpenSearch to correlate the logs and traces.
Amazon OpenSearch: Amazon OpenSearch Service (successor to Elasticsearch Service) is a fully managed search and analytics service that makes it easy to ingest, secure, search, analyze, and visualize data in real-time. OpenSearch is a good choice for log aggregation and analysis because of its ability to index and search large volumes of data quickly. OpenSearch supports ingest pipeline processing, which allows for the enrichment of logs with trace IDs captured by OpenTelemetry. It also enables powerful querying and visualization of both logs and traces, which is important for identifying points of failure in the request flow. https://aws.amazon.com/opensearch-service/
Why other options are less suitable:
B & C: While CloudWatch can collect logs, it is not as efficient or well-suited for the dynamic and high-volume nature of Kubernetes logs as FluentBit. Kinesis and MSK are better suited for real-time data streaming use cases, and are not the most cost effective choices for collecting traces. E: AWS Glue is primarily for ETL (extract, transform, load) operations and data cataloging, not for real-time correlation of logs and traces. Additionally, options B, C, and E require more development effort.
Therefore, the combination of FluentBit for log collection, OpenTelemetry for trace collection, and Amazon OpenSearch for correlation provides a robust and scalable solution for monitoring the EKS cluster and correlating logs with application traces with the least development effort.



A company has a gaming application that stores data in Amazon DynamoDB tables. A data engineer needs to ingest the game data into an Amazon OpenSearch Service cluster. Data updates must occur in near real time.
Which solution will meet these requirements?

  1. Use AWS Step Functions to periodically export data from the Amazon DynamoDB tables to an Amazon S3 bucket. Use an AWS Lambda function to load the data into Amazon OpenSearch Service.
  2. Configure an AWS Glue job to have a source of Amazon DynamoDB and a destination of Amazon OpenSearch Service to transfer data in near real time.
  3. Use Amazon DynamoDB Streams to capture table changes. Use an AWS Lambda function to process and update the data in Amazon OpenSearch Service.
  4. Use a custom OpenSearch plugin to sync data from the Amazon DynamoDB tables.

Answer(s): C

Explanation:

Here's a detailed justification for why option C is the best solution:
The primary requirement is near real-time data updates from DynamoDB to OpenSearch Service. Option C directly addresses this by leveraging DynamoDB Streams. DynamoDB Streams captures a time-ordered sequence of item-level modifications in any DynamoDB table, akin to a change data capture (CDC) mechanism. This is crucial for real-time data synchronization.
An AWS Lambda function is then used to subscribe to this DynamoDB stream. Each time a record is modified in DynamoDB (insert, update, or delete), the Lambda function is triggered. The Lambda function processes this change record and updates the corresponding document in the OpenSearch Service cluster. This creates an automated pipeline ensuring that the OpenSearch Service cluster reflects the latest data in DynamoDB with minimal latency.
Options A and B are not suitable for near real-time updates. Option A involves periodic exports to S3 and loading via Lambda, which introduces significant latency. Option B utilizes AWS Glue, which is more appropriate for batch processing and ETL tasks, not continuous near real-time data ingestion. Option D, using a custom OpenSearch plugin, introduces unnecessary complexity and potential maintenance overhead compared to the managed services offered by AWS. Using a custom plugin also requires deep expertise in OpenSearch internals.
Option C utilizes native AWS services that are optimized for this type of integration. It's serverless, scalable, and cost-effective because you only pay for the Lambda function execution time when changes occur. The integration between DynamoDB Streams and Lambda functions provides a robust and reliable near real-time data pipeline. The "push" model enabled by DynamoDB streams is far more appropriate for real-time updates than the periodic "pull" model of option A and the batch processing approach of option B.
For further research, refer to the following documentation:
Amazon DynamoDB Streams: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html AWS Lambda: https://docs.aws.amazon.com/lambda/latest/dg/welcome.html Amazon OpenSearch Service: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html



Viewing page 21 of 47
Viewing questions 101 - 105 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!