Trên một nút vật lý nhất định, các hàng cho một khóa phân vùng đã cho được lưu trữ theo thứ tự được tạo ra bởi các phím phân cụm, làm cho việc thu hồi các hàng theo thứ tự phân cụm đó đặc biệt hiệu quả. http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt Loại thứ tự nào được tạo ra bởi các phím phân cụm?Clustering Keys trong Cassandra
Trả lời
Giả phím phân nhóm của bạn là
k1 t1, k2 t2, ..., kn tn
nơi ki là tên chính thứ i và ti là loại chìa khóa thứ i. Sau đó, dữ liệu đơn đặt hàng được lưu trữ theo thứ tự từ điển, trong đó mỗi thứ nguyên được so sánh bằng cách sử dụng bộ so sánh cho loại đó.
Vì vậy, (a1, a2, ..., an) < (b1, b2, ..., bn) nếu a1 < b1 sử dụng so sánh t1, hoặc a1 = b1 và a2 b2 < sử dụng so sánh t2, hoặc (a1 = b1 và a2 = b2) và a3 < b3 sử dụng bộ so sánh t3, v.v.
Điều này có nghĩa là tìm tất cả các hàng với một số k1 = a nhất định, vì dữ liệu được lưu trữ cùng nhau. Nhưng không hiệu quả khi tìm tất cả các hàng với ki = x cho i> 1. Thực tế, truy vấn như vậy không được phép - các ràng buộc khóa phân cụm duy nhất được cho phép chỉ định 0 hoặc nhiều cụm phân cụm, bắt đầu từ khóa đầu tiên .
Ví dụ, hãy xem xét các giản đồ
create table clustering (
x text,
k1 text,
k2 int,
k3 timestamp,
y text,
primary key (x, k1, k2, k3)
);
Nếu bạn đã chèn sau:
insert into clustering (x, k1, k2, k3, y) values ('x', 'a', 1, '2013-09-10 14:00+0000', '1');
insert into clustering (x, k1, k2, k3, y) values ('x', 'b', 1, '2013-09-10 13:00+0000', '1');
insert into clustering (x, k1, k2, k3, y) values ('x', 'a', 2, '2013-09-10 13:00+0000', '1');
insert into clustering (x, k1, k2, k3, y) values ('x', 'b', 1, '2013-09-10 14:00+0000', '1');
sau đó chúng được lưu trữ theo thứ tự này trên đĩa (thứ tự select * from clustering where x = 'x'
lợi nhuận):
x | k1 | k2 | k3 | y
---+----+----+--------------------------+---
x | a | 1 | 2013-09-10 14:00:00+0000 | 1
x | a | 2 | 2013-09-10 13:00:00+0000 | 1
x | b | 1 | 2013-09-10 13:00:00+0000 | 1
x | b | 1 | 2013-09-10 14:00:00+0000 | 1
k1
đặt hàng chi phối, sau đó k2
, sau đó k3
.
- 1. composite Keys trong SQLAlchemy
- 2. Clustering Google Markers Clustering - Python/Django
- 3. Markov Clustering
- 4. Doctrine - Store ArrayCollection keys
- 5. gpg --export-secret-keys
- 6. WEKA K-Means Clustering
- 7. Node.js Multi Server Clustering
- 8. Filtering trên Keys nước ngoài trong Django
- 9. Clustering and Shared Data trong Vert.x
- 10. lỗi Strange của Hierarchical Clustering trong R
- 11. Clustering ~ 100,000 Short Strings trong Python
- 12. k-means clustering implementation trong Javascript?
- 13. Chỉ mục hợp chất trong Apache Cassandra
- 14. Clustering và Bayes classifier Matlab
- 15. Clustering không gian vectơ lớn
- 16. Nodejs Clustering và expressjs phiên
- 17. Symfony2 Doctrine ORM Composite Primary Keys
- 18. CompositeData không có phương thức keys()?
- 19. Mapping để Keys của một Hash
- 20. Java KeyListener không đăng ký Arrow Keys
- 21. Bind Nhiều Keys để keyPress Event
- 22. onKeyDown trong một dịch vụ? (Global Hot Keys)
- 23. Matlab: K-có nghĩa là clustering
- 24. Clustering a sparse dataset of binary vector
- 25. Cassandra CompositeType
- 26. Clustering với ma trận khoảng cách
- 27. Clustering (fkmeans) với Mahout sử dụng Clojure
- 28. dấu Clustering trên mapbox/tờ rơi
- 29. Cassandra CQL3 Nhập CSV
- 30. hạn chế nút cassandra
Cảm ơn Richard. Bạn có thể vui lòng đưa ra một ví dụ? – Vinodh
Tôi đã thêm một ví dụ vào câu trả lời của mình. – Richard
Cảm ơn rất nhiều Richard. Từ ví dụ của bạn, tôi có thể hiểu các cột phân cụm và tài liệu CQL "thứ tự các cột được định nghĩa cho các vấn đề KEY CHÍNH". từ http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt. – Vinodh