Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aws-samples/amazon-dynamodb-design-patterns
This repo contains sample data models to demonstrate design patterns for Amazon DynamoDB.
https://github.com/aws-samples/amazon-dynamodb-design-patterns
data-modeling dynamodb
Last synced: 2 days ago
JSON representation
This repo contains sample data models to demonstrate design patterns for Amazon DynamoDB.
- Host: GitHub
- URL: https://github.com/aws-samples/amazon-dynamodb-design-patterns
- Owner: aws-samples
- License: mit-0
- Created: 2020-09-04T11:43:12.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-30T10:44:55.000Z (almost 4 years ago)
- Last Synced: 2024-08-02T04:02:24.559Z (3 months ago)
- Topics: data-modeling, dynamodb
- Homepage:
- Size: 2.7 MB
- Stars: 225
- Watchers: 5
- Forks: 41
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-dynamodb - Amazon DynamoDB Design Patterns
- jimsghstars - aws-samples/amazon-dynamodb-design-patterns - This repo contains sample data models to demonstrate design patterns for Amazon DynamoDB. (Others)
README
# Amazon DynamoDB Design Patterns
This repo contains sample data models and source code to demonstrate design patterns for Amazon DynamoDB.
## Examples
Data models and source code are listed under the `/examples` folder.
- Device State Log - [*Data model*]
- An Online Shop - [*Data model*]
- Implementing version control using Amazon Dynamodb - [*Source code*]## NoSQL Design
When designing a data model for Amazon DynamoDB, it is important to understand the use case and requirements, and then identify entities and the relationships between them. One way to illustrate the relations is to draw an Entity Relation Diagram (ERD). It is also recommended to identify the access patterns needed to fulfill the requirements up front and then go through them one by one to store data in such format that the access pattern can be handled.
It is a good practice to use [NoSQL Workbench for Amazon DynamoDB](#nosql-workbench-for-amazon-dynamodb) when designing and reviewing the data model for an application. Once the data model is completed, the next step is to review and apply any improvements to the data model. A good design is achieved after multiple review iterations.
In general, maintain as few tables as possible in an Amazon DynamoDB application, and if it suits the use case then store all the entities in a single table. By overloading a table with several entities, the number of network round trips from the application to Amazon DynamoDB can be reduced as each item collection can contain relations between several entities and can be retrieved in one query operation. Item collection refers to item(s) that have the same partition key. It is also a common pattern to overload global secondary indexes (GSI) to handle access patterns that can not be addressed by the table.
## NoSQL Workbench for Amazon DynamoDB
[NoSQL Workbench for Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/workbench.settingup.html) is a cross-platform client-side GUI application for modern database development and operations. NoSQL Workbench is available for Windows, macOS, and Linux.The data model including table(s), global secondary indexes and any data populated in the table(s) can be exported in `json` format. This file can be shared within a team and can of course be added to a version control tool in order to keep track of different review versions. The data model can be committed to Amazon DynamoDB in an AWS account or to DynamoDB Local from NoSQL Workbench.
## Security
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
## License
This library is licensed under the MIT-0 License. See the [LICENSE](LICENSE) file.