2013-06-04 41 views
5

Có một bàn với khoảng 20 triệu hàng trong Cassandra.Nhận hồ sơ cuối cùng tại Cassandra

Bảng được sắp xếp theo cột primary_key, là một chuỗi. Chúng tôi đang sử dụng 'ByteOrderedPartitioner', do đó, các hàng được sắp xếp theo primary_key và không phải là một băm của cột primary_key.

Cách tốt nhất để có được bản ghi cuối cùng trong bảng là gì?

Cảm ơn bạn rất nhiều!

+0

Bạn nên mạnh mẽ không sử dụng ByteOrderedPartitioner vì duy trì yêu cầu khi dữ liệu của bạn thay đổi phân phối hoặc bạn mở rộng cluster của bạn. Nếu có thể, bạn nên thay đổi mô hình dữ liệu của mình để thay vào đó bạn có thể sử dụng các truy vấn phạm vi cột. – Richard

Trả lời

1

Nếu cho "bản ghi cuối cùng" bạn có nghĩa là người được đặt hàng cuối cùng tôi không nghĩ rằng bạn có thể làm điều đó như một "GET", bạn phải quét hàng. Điều tốt nhất bạn có thể làm, afaik, là chọn một phạm vi tốt để quét (phím khởi động tốt) theo khóa chính của bạn.

Từ docs datastax:.

quét

"Sử dụng phân vùng ra lệnh cho phép ra lệnh bằng khóa chính Điều này có nghĩa bạn có thể quét hàng như thể bạn đang di chuyển một con trỏ thông qua một chỉ số truyền thống Ví dụ, nếu. ứng dụng của bạn có tên người dùng là làm khóa hàng, bạn có thể quét hàng cho người dùng có tên là giữa Jake và Joe. Không thể sử dụng loại truy vấn này khóa hàng được phân đoạn ngẫu nhiên vì các khóa được lưu trữ theo thứ tự MD5 băm (không tuần tự). "

Nếu bạn tìm thấy giải pháp tốt hơn, hãy cho tôi biết.

Kính trọng, Carlo

Các vấn đề liên quan