Tôi hy vọng có một người có thể giúp tôi đề xuất một mô hình dữ liệu phù hợp được triển khai bằng cơ sở dữ liệu Apache Cassandra. Nhiều hơn tôi cần nó để làm việc dưới tải trọng cao và số lượng lớn dữ liệu.Đề nghị mô hình dữ liệu Cassandra cho một lược đồ hiện có
Giản Tôi có 3 loại đối tượng:
- sản phẩm
- Tag
- ProductTag
sản phẩm:
key - string key
name - string
.... - some other fields
Tag:
key - string key
name - unique tag words
ProductTag:
product_key - foreign key referring to product
tag_key - foreign key referring to tag
rating - this is rating of tag for this product
Mỗi sản phẩm có thể có 0 hoặc nhiều thẻ. Thẻ có thể được gán cho 1 hoặc nhiều sản phẩm. Có nghĩa là mối quan hệ giữa các sản phẩm và thẻ là nhiều - nhiều trong điều khoản của cơ sở dữ liệu quan hệ.
Giá trị "xếp hạng" được cập nhật "rất" thường xuyên.
tôi cần phải được chạy các truy vấn sau
- Chọn đối tượng bằng phím
- Chọn thẻ cho sản phẩm đặt hàng theo thứ hạng
- Chọn sản phẩm theo đơn đặt thẻ theo thứ hạng
- Cập nhật giá bởi product_key và tag_key
Điều quan trọng nhất là làm cho các truy vấn này thực sự nhanh chóng trên lượng lớn dữ liệu, xem xét xếp hạng đó được cập nhật liên tục.
gì về việc niêm yết tags sản phẩm đặt hàng theo thứ hạng? Hoặc liệt kê các sản phẩm theo thẻ được sắp xếp theo xếp hạng? Truy vấn như vậy sẽ yêu cầu sử dụng 2 chỉ mục cùng một lúc để có hiệu lực –
Điều đó có ý nghĩa. Cảm ơn các liên kết! Một ý tưởng khác tôi đang xem xét là sử dụng các công cụ bên ngoài như tìm kiếm nhân sư hoặc có thể lucandra để chọn các đối tượng được sắp xếp theo xếp hạng. Tìm kiếm toàn văn Sphinx hoạt động tốt cho các tác vụ như vậy, nhưng nó không hỗ trợ cập nhật chỉ mục "thời gian thực". –