Am New to dynamodb Tôi có một bảng trong DynamoDB với hơn 100 nghìn mục trong đó. Ngoài ra, bảng này được làm mới thường xuyên. Trên bảng này, tôi muốn có thể làm một cái gì đó tương tự như thế này trong thế giới cơ sở dữ liệu quan hệ: làm thế nào tôi có thể nhận được giá trị tối đa từ bảng.Cách sử dụng các chức năng tổng hợp trong Amazon Dynamodb
Trả lời
DynamoDB là một cơ sở dữ liệu NoSQL và do đó rất hạn chế về cách bạn có thể truy vấn dữ liệu. Không thể thực hiện các kết hợp như giá trị tối đa từ bảng bằng cách gọi trực tiếp API DynamoDB. Bạn sẽ phải xem xét các công cụ và cách tiếp cận khác nhau để giải quyết vấn đề này.
Có một số giải pháp khả thi, bạn có thể xem xét:
Thực hiện một bảng quét
Với hơn 100k các mặt hàng trong bảng này có thể là một ý kiến tồi. Một bảng quét sẽ đọc qua từng mục duy nhất và bạn có thể có logic bên ứng dụng xác định giá trị tối đa. Đây thực sự không phải là giải pháp khả thi.
Materialized Index trong DynamoDB
Tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể sử dụng dòng DynamoDB và một hàm Lambda để duy trì một chỉ số trong một bảng DynamoDB riêng biệt. Nếu bảng của bạn chỉ ghi, không có cập nhật và không xóa, bạn có thể lưu trữ tối đa trong một bảng riêng biệt và khi bản ghi mới được chèn vào, bạn có thể so sánh chúng và thực hiện các cập nhật cần thiết.
Cách tiếp cận này hoàn toàn khả thi trong một số trường hợp hạn chế, nhưng không phải là giải pháp tổng quát.
Thực hiện phân tích sử dụng Amazon chuyển đỏ
DynamoDB không có nghĩa là để làm các hoạt động phân tích như tối đa, trong khi chuyển đỏ là rất mạnh mẽ nền tảng dữ liệu lớn có thể thực hiện các loại tính toán một cách dễ dàng. Tương tự như chỉ số DynamoDB, bạn có thể sử dụng các luồng DynamoDB để gửi dữ liệu vào Redshift khi các bản ghi được chèn vào để duy trì bản sao thời gian thực gần của bảng cho mục đích phân tích.
Nếu bạn đang tìm kiếm thêm giải pháp ngoại tuyến hoặc phân tích thì đây là một lựa chọn tốt.
Thực hiện Analytics sử dụng Elasticsearch
Trong khi DynamoDB là một giải pháp NoSQL mạnh mẽ với sự đảm bảo vững chắc về độ bền dữ liệu, Elasticsearch cung cấp một phương pháp truy vấn rất linh hoạt cho phép cho các truy vấn như tối đa và các quy tụ có thể được chia nhỏ ra và trên bất kỳ giá trị thuộc tính nào trong thời gian thực. Tương tự như các giải pháp trên, bạn có thể sử dụng các luồng DynamoDB để gửi bản ghi chèn các bản cập nhật và xóa vào chỉ mục Elasticsearch trong thời gian thực.
Nếu bạn muốn gắn bó với DynamoDB nhưng cần thêm khả năng truy vấn, đây thực sự là một lựa chọn tốt, đặc biệt khi sử dụng dịch vụ AWS ES sẽ quản lý toàn bộ cụm Elasticsearch cho bạn. Điều quan trọng cần nhớ là Elasticsearch không thay thế bảng DynamoDB của bạn, nó chỉ là một chỉ mục có thể tìm kiếm dễ dàng của cùng một dữ liệu.
Chỉ cần sử dụng một cơ sở dữ liệu SQL
Các giải pháp hiển nhiên là nếu bạn có yêu cầu SQL sau đó di chuyển từ một hệ thống NoSQL dựa vào một hệ thống dựa trên SQL.Cung cấp RDS của AWS cung cấp giải pháp được quản lý. Trong khi DynamoDB cung cấp rất nhiều lợi ích, nếu trường hợp sử dụng của bạn kéo bạn tới một giải pháp SQL, điều dễ nhất có thể là không chống lại nó và chỉ thay đổi các giải pháp. Điều này không có nghĩa là giải pháp dựa trên SQL hoặc giải pháp dựa trên NoSQL là tốt hơn, có những ưu và khuyết điểm đối với mỗi và những thay đổi dựa trên trường hợp sử dụng cụ thể, nhưng nó chắc chắn là một tùy chọn để xem xét.
DynamoDB thực sự có chức năng tổng hợp MAX: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Querying.html
- 1. DynamoDB có hỗ trợ các chức năng tổng hợp như AVG, MAX, MIN không?
- 2. Thiết kế các bảng trong Amazon dynamodb
- 3. Sử dụng chức năng nhóm không hợp lệ trong khi cập nhật bảng có chức năng tổng hợp
- 4. Tổng hợp() với nhiều chức năng hơn -
- 5. chức năng tổng hợp trên mảng
- 6. Liên hiệp các mảng như chức năng tổng hợp
- 7. Amazon DynamoDB mapping enums
- 8. Cần cải thiện hiệu suất truy vấn SQL bằng cách sử dụng chức năng tổng hợp
- 9. Chức năng tổng hợp trong mệnh đề WHERE trong SQLite
- 10. GROUP BY/tổng hợp chức năng nhầm lẫn trong SQL
- 11. Dữ liệu mùa xuân cho Amazon DynamoDB
- 12. tổng hợp nhiều biến với các chức năng khác nhau
- 13. Làm thế nào để sử dụng chức năng Tổng hợp trong R
- 14. làm thế nào để sử dụng chức năng tổng hợp trong thiên thạch
- 15. Chức năng tổng hợp của LINQ, Cách tạo chuỗi CSV
- 16. Amazon DynamoDB InvalidSignatureException
- 17. PostgreSQL - GROUP BY khoản hoặc được sử dụng trong một chức năng tổng hợp
- 18. Amazon DynamoDB và AngularJS
- 19. Hỗ trợ chức năng tổng hợp trong GraphQL
- 20. Tùy chỉnh chức năng tổng hợp trong MS SQL Server?
- 21. Chức năng tổng hợp trong truy vấn cập nhật SQL?
- 22. Phân trang trong Amazon DynamoDB bằng Boto
- 23. SQL chọn truy vấn sử dụng tham gia, nhóm bằng và chức năng tổng hợp
- 24. Có cách nào để thực hiện các chức năng tổng hợp trên Google App Engine không?
- 25. Thiếu chức năng tổng hợp 'Trung bình' ở Django?
- 26. SystemVerilog: Truyền các giao diện cho các chức năng/nhiệm vụ (để tổng hợp!)
- 27. C++ tổng hợp không có chức năng ảo?
- 28. Cách sử dụng các chức năng cửa sổ trong PySpark?
- 29. Xử lý các luồng DynamoDB bằng cách sử dụng các luồng Java DynamoDB của bộ xử lý Kinesis
- 30. Các chức năng phù hợp trong R
Điều này có sẵn thông qua cụm Amazon EMR kết nối với DynamoDB; nó không phải là một tính năng có sẵn trong chính DynamoDB. Có [hướng dẫn thiết lập] [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Tutorial.html) nếu bạn không phản đối việc sử dụng dịch vụ phụ được kết nối với luồng DynamoDB của bạn cho các truy vấn tổng hợp. – Hal