Tôi có hai câu hỏi về kết quả truy vấn trong Cassandra.Thứ tự các kết quả trong Cassandra
Khi tôi thực hiện một "đầy đủ" lựa chọn của một bảng trong Cassandra (tức.
select * from table
) là nó đảm bảo rằng kết quả sẽ được trả lại trong thứ tự tăng dần của thẻ phân vùng? Ví dụ, có bảng sau:create table users(id int, name text, primary key(id));
Có đảm bảo rằng các truy vấn sau đây sẽ trả lại kết quả với sự gia tăng giá trị trong cột thẻ?
select token(id), id from users;
Nếu có, dữ liệu được phân phối cho nhiều nút trong cụm sao?
Nếu câu trả lời cho câu hỏi trên là 'có', câu hỏi vẫn hợp lệ nếu chúng tôi sử dụng chỉ mục phụ? Ví dụ, nếu chúng ta sẽ có các chỉ số sau:
create index on users(name);
và chúng tôi truy vấn bảng bằng cách sử dụng các chỉ số:
select token(id), id from users where name = 'xyz';
có bất kỳ sự bảo đảm về thứ tự kết quả?
Động lực cho các câu hỏi trên là mã thông báo là điều đúng để sử dụng để thực hiện phân trang và/hoặc tiếp tục xuất lâu hơn "xuất dữ liệu".
EDIT: Có nhiều nguồn tài nguyên trên mạng mà nói rằng trật tự phù hợp với trật tự token (ví dụ như trong mô tả của partitioner results hoặc this Datastax page.):
Nếu không có một chìa khóa phân vùng được quy định trong mệnh đề WHERE, các thứ tự thực tế của tập kết quả sau đó trở nên phụ thuộc vào giá trị băm của userid.
Tuy nhiên thứ tự các kết quả không được chỉ định trong tài liệu chính thức của Cassandra, ví dụ: của SELECT statement.
Cảm ơn bạn đã trả lời. Nhưng có bất kỳ lý do nào tại sao khoản bảo lãnh này không được đề cập trong tài liệu chính thức, ví dụ như. một trong những truy vấn SELECT mà tôi đã đề cập? –
Bởi vì 1) với Cassandra, các phương pháp hay nhất khuyên bạn nên sử dụng SELECT trên một phân vùng đơn -> các hàng được sắp xếp theo các giá trị nhóm và 2) Các truy vấn phạm vi như SELECT sử dụng chỉ mục thứ 2 hoặc không có khóa phân vùng thường không được khuyến nghị và 3) bởi giá trị mã thông báo chỉ đúng khi sử dụng phân vùng ngẫu nhiên hoặc Murmur3. Khi sử dụng ByteOrderedPartitioner, các hàng được sắp xếp theo các phím phân vùng – doanduyhai