Acloud.guru: Why Amazon DynamoDB isn’t for everyone
Theo read.acloud.guru Why Amazon DynamoDB isn’t for everyone Refer Document: https://linuxacademy.com https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html ...
Theo read.acloud.guru Why Amazon DynamoDB isn’t for everyone
Refer Document:
- https://linuxacademy.com
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html
- https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
- https://www.allthingsdistributed.com/2017/10/a-decade-of-dynamo.html
- https://syslog.ravelin.com/you-probably-shouldnt-use-dynamodb-89143c1287ca
- https://read.acloud.guru/serverless-superheroes-lynn-langit-on-big-data-nosql-and-google-versus-aws-f4427dc8679c
- https://www.quora.com/Why-is-it-said-that-relational-SQL-databases-do-not-scale
- https://segment.com/blog/the-million-dollar-eng-problem/
Trong tuần qua, mình đã đọc bài viết từ Acloud.Guru "Why Amazon DynamoDB isn’t for everyone" - dựa trên nội dung bài viết này, mình hi vọng sẽ giúp người đọc hiểu rõ hơn các vấn đề mà AWS DynamoDB đang gặp phải,
Năm 2004, hoạt động kinh doanh của AWS gặp các vấn đề về giới hạn hạ tầng database trên nền tảng Oracle. Để đáp ứng hoạt động kinh doanh ngày càng phát triển, Amazon đã thiết kế Dynamo - nhằm đáp ứng các yêu cầu về hiệu suất, độ tin cậy cao và khả năng mở rộng liên tục (seamless scalability).
Amazon Dynamo là nền tảng của Amazon.com - Một loại database NoSQL dạng Key/Value. Vào năm 2012, AWS giới thiệu dịch vụ DynamoDB đến khách hàng, với hứa hẹn về khả năng mở rộng, sử dụng đơn giản, ... :rolling_eyes:
1. Basic concepts of DynamoDB
Đầu tiên cần hiểu cấu trúc table của DynamoDB:
- Primary key: Là một index default - duy nhất trong mỗi Item của một table. Primary key có thể là simple (partition key) hoặc composite (partition key & sort key).
- Throughput: Khả năng Read/Write trên mỗi table.
- Read Capacity Unit (RCU): Cung cấp khả năng đọc mỗi giây cho một Item, có kích thước bé hơn 4KB.
- Write Capacity Unit(WCU): Cung cấp khả năng viết mỗi giây cho một Item, có kích thước bé hơn 1KB.
- Partition: Một partition là một "đơn vị lưu trữ data" của một table - khi lưu trữ data, DynamoDB phân chia các item của table vào nhiều partition, và phân phối data chủ yếu dựa trên giá trị partition key. Partition sẽ tự động Add/Remove dựa trên throughput được cung cấp cho table đó.
- Môt partition có thể support tối đa 3000 RCU or 1000 WCU.
- Một partition có thể chứa khoảng 10GB data.
- DynamoDB cũng hổ trợ Secondary Indexes để thực hiện các query và scan hiệu quả.
❖ Để đạt được toàn bộ năng lực RCU/WCU mà bạn đã cung cấp cho table, bạn cần đảm bảo workload trải đều trên tất cả các partition key :rolling_eyes: và hạn chế các "Hot Key" (nhiều Item được phân bố trên cùng một partition và thường xuyên bị query).
2. Why use DynamoDB?
Theo như nội dung bài biết, tác giả cho rằng AWS nên xem xét một dịch vụ đi kèm với DynamoDB, được gọi là "WhynamoDB"