Những hạn chế thực tế trên một gia đình cột ở Cassandra là gì?


10

Ở Cassandra, không nên có nhiều hơn vài nghìn gia đình cột , hãy nói 2.000 vì lý do tranh luận. Trong trường hợp cần duy trì hơn 2.000 loại dữ liệu, một cách tiếp cận sẽ là loại bỏ nhiều loại dữ liệu không liên quan đến từng họ cột.

Ví dụ: một CF đơn có thể chứa Đơn đặt hàng, Hóa đơn và Khách hàng, với điều kiện các khóa hàng của chúng là khác biệt (ví dụ: có tiền tố với loại đối tượng, tức là các khóa của một CF có thể bao gồm cả hai Order|1234Customer|1234). Một CF thứ hai có thể chứa Địa chỉ, LineItems và OrderTypes. Với tính khả thi cơ bản của phương pháp này, các giới hạn thực tế trên nó là gì? Ví dụ, điều gì sẽ sai khi đưa tất cả 10.000 loại đối tượng vào một CF? Theo như tôi có thể nói từ wiki Cassandra , không có giới hạn cứng nào về kích thước của CF.

Câu trả lời:


6

Tôi không phải là một fan hâm mộ. Đó là một ý tưởng tốt khi tạo một bảng quan hệ có tên là OrderOrCustomers với các cột được xác định cho cả hai. Hình phạt của công cụ lưu trữ thấp hơn một chút ở Cassandra vì lưu trữ tế bào thưa thớt dưới mui xe, nhưng đó vẫn là một thực tế tồi.

Điều này sẽ cắn bạn sau này khi bạn muốn ánh xạ / giảm dữ liệu của bạn; mỗi tác vụ sẽ phải quét qua tất cả dữ liệu của bạn và lọc ra các hàng không khớp với những gì bạn thực sự quan tâm (ví dụ: khách hàng). Và chúc may mắn có ý nghĩa về số liệu thống kê mà Cassandra theo dõi trên mỗi CF. ("CF này có phải là nguồn của 80% ứng dụng của tôi đọc vì dữ liệu đơn hàng không? Hoặc do các phiên của khách hàng được kết hợp với? Hoặc năm loại dữ liệu khác mà tôi đã ném vào?")

Nếu bạn hoàn toàn tích cực cần hàng chục hoặc hàng trăm ngàn CF? Thậm chí sau đó tôi thà chạy Cassandra mà không cần phân bổ đấu trường, hơn là cắt xén mô hình dữ liệu của tôi như thế này.


Cảm ơn câu trả lời của bạn, Jonathan. Tôi sẽ cần đọc lên phân bổ đấu trường để hiểu câu cuối cùng. Là sử dụng phân bổ đấu trường một tùy chọn cấu hình?
Andrew Swan

Hoặc nếu phân bổ đấu trường được đưa vào Cassandra ngày nay, việc phân chia đấu trường của bất kỳ gia đình cột nào không được truy cập trong một khoảng thời gian có thể cấu hình sẽ khó đến mức nào? Có đáng để tôi đăng nhập một vé JIRA về điều này?
Andrew Swan

1
Cassandra đã rất thông minh trong việc xả nước để giảm áp lực bộ nhớ. Vấn đề là với các tình huống xấu nhất trong đó mọi thứ đều hoạt động.
jbellis

Trong trường hợp nào là giải pháp duy nhất để có vòng thứ hai?
Andrew Swan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.