A development team is refactoring and migrating a legacy application to AWS services.
The legacy application uses a relational SQL-based database.
The team intends to use a NoSQL DynamoDB database in AWS.
What is the first action the team should take when designing the application data model for DynamoDB?
Click on the arrows to vote for the correct answer
A. B. C. D.Answer: C.
Option A is incorrect because data models from relational to non-relational databases do not map tables one-to-one.
Relational data models focus on entity relationships.
By contrast, non-relational data models focus on keeping related data together.
In general, it is desirable to have as few DynamoDB tables as possible.
Well-designed applications utilize a single-table design model.
Option B is incorrect because modeling data from the relational data model to the non-relational data model would not convert SQL table DDL's directly to DynamoDB schemas.
Relational data models focus on entity relationships.
By contrast, non-relational data models focus on keeping related data together.
Option C is CORRECT because the first and most important step in designing a DynamoDB application is to identify the data query access patterns that the application utilizes and model the database based on those patterns.
Option D is incorrect because data capacity requirement is not an important consideration when designing DynamoDB applications.
Reference:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.htmlThe correct answer is C. Identify database query access patterns.
When migrating a legacy SQL-based database to NoSQL DynamoDB, the first action the development team should take when designing the application data model for DynamoDB is to identify the database query access patterns. This is because NoSQL databases like DynamoDB are designed to handle high volumes of data with a flexible schema and different access patterns than traditional SQL databases.
Identifying the query patterns will help the team to understand how the application will access the data in DynamoDB, and design the database schema accordingly. This involves analyzing the types of queries the application will perform, such as read/write operations, the size and complexity of the data sets, and the expected throughput.
Once the query patterns are identified, the team can design the schema for DynamoDB tables to optimize the database for the expected query patterns. This may involve selecting the appropriate primary key, designing efficient secondary indexes, and partitioning the data across multiple DynamoDB tables or partitions to distribute the load.
Option A, "Map relational SQL tables to DynamoDB tables," is not the first action the team should take, as simply mapping relational tables to DynamoDB tables without considering the access patterns and the flexibility of the schema can lead to poor performance and scalability.
Option B, "Convert SQL table DDL to DynamoDB table schemas," is also not the first action, as the DDL (Data Definition Language) for SQL tables is not directly applicable to DynamoDB. While there may be similarities between the two, DynamoDB requires a different approach to designing the schema to optimize for its unique capabilities.
Option D, "Identify data capacity requirements," is an important consideration when designing a data model for DynamoDB, but it is not the first action to take. Capacity planning and estimating data volumes should be based on the identified query patterns, which will help determine the required throughput and storage capacity for the application.