Tôi đang sử dụng DSE để tích hợp Cassandra/Solr để dữ liệu được lưu trữ trong Cassandra và được lập chỉ mục trong Solr. Nó rất tự nhiên khi sử dụng Cassandra để xử lý hoạt động CRUD và sử dụng Solr để tìm kiếm toàn văn bản tương ứng, và DSE thực sự có thể đơn giản hóa việc đồng bộ hóa dữ liệu giữa Cassandra và Solr.Khi nào sử dụng Cassandra so với Solr trong DSE?
Khi nói đến truy vấn, tuy nhiên, có hai cách để thực hiện: Chỉ số cấu hình phụ/thủ công Cassandra so với Solr. Tôi muốn biết khi nào nên sử dụng phương pháp nào và sự khác biệt về hiệu suất nói chung là gì, đặc biệt là khi thiết lập DSE.
Đây là một ví dụ về trường hợp sử dụng trong dự án của tôi. Tôi có một bảng Cassandra lưu trữ một số dữ liệu thực thể mục. Bên cạnh hoạt động CRUD cơ bản, tôi cũng cần truy xuất các mục bằng bình đẳng trên một số trường (nói danh mục) và sau đó sắp xếp theo một số thứ tự (trong trường hợp của tôi ở đây, một trường like_count).
tôi có thể nghĩ trong ba cách khác nhau để xử lý nó:
- Declare 'lập chỉ mục = true' trong schema Solr cho cả chủng loại và lĩnh vực LIKE_COUNT và truy vấn trong Solr
- Tạo một bảng denormalized trong Cassandra với khóa chính (thể loại, LIKE_COUNT, id)
- Tạo một bảng denormalized trong Cassandra với khóa chính (loại, trật tự, id) và sử dụng một thành phần bên ngoài, chẳng hạn như Spark/Storm, để sắp xếp các mục bằng cách LIKE_COUNT
Phương pháp đầu tiên có vẻ là phương pháp đơn giản nhất để triển khai và duy trì. Tôi chỉ viết một số mã truy cập Solr tầm thường và việc nâng hạng nặng còn lại được xử lý bằng tìm kiếm Solr/DSE.
Phương pháp thứ hai yêu cầu không chuẩn hóa thủ công khi tạo và cập nhật. Tôi cũng cần phải duy trì một bảng riêng biệt. Ngoài ra còn có vấn đề về tombstone vì like_count có thể được cập nhật thường xuyên. Phần tốt là đọc có thể nhanh hơn (nếu không có bia mộ quá mức).
Phương pháp thứ ba có thể làm giảm bớt vấn đề bia mộ với chi phí của một thành phần phụ để phân loại.
Bạn nghĩ phương pháp nào là lựa chọn tốt nhất? Sự khác biệt về hiệu suất là gì?
+1 Câu trả lời tuyệt vời. Và tôi hoàn toàn đồng ý với chỉ số phụ có trường hợp sử dụng hạn chế. Có lẽ là công cụ hiểu lầm nhất trong Cassandra ngay bây giờ. – Aaron
+1 Tôi không thể nói điều đó tốt hơn. Gần đây tôi đã gặp tình trạng khó xử này và thấy mình sử dụng Solr cho ALL hoạt động đọc vì Cassandra không thể lọc nhiều hơn một cột cho mỗi truy vấn (về cơ bản, vì chỉ số phụ Cassandra chỉ có thể được khai báo trên một cột tại một thời điểm - tức là có không có chỉ số hợp chất). Đối với tôi, đây là giới hạn chính. –
Câu trả lời hay !! Làm thế nào bạn sẽ nói chỉ số SASI so sánh với DSE/Solr. Thực sự rất thích nghe ý kiến của bạn. – taylorcressy