Używam DSE do integracji Cassandra/Solr, aby dane były przechowywane w Cassandrze i indeksowane w Solr. To bardzo naturalne, że używa Cassandry do obsługi operacji CRUD i używa Solr do pełnego wyszukiwania tekstowego, a DSE może naprawdę uprościć synchronizację danych między Cassandrą i Solr.Kiedy używać Cassandra vs Solr w DSE?
Jeśli chodzi o zapytanie, istnieją dwa sposoby przejścia: Cassandra pomocniczy/ręczny skonfigurowany indeks vs. Solr. Chcę wiedzieć, kiedy stosować tę metodę i jaka jest różnica w wydajności, zwłaszcza w konfiguracji DSE.
Oto jeden przykład użycia w moim projekcie. Mam tabelę Cassandry przechowującą pewne dane jednostki towaru. Poza podstawową operacją CRUD, muszę również pobrać elementy według równości na pewnym polu (np. Kategoria), a następnie sortować według pewnego porządku (w moim przypadku tutaj pole like_count).
mogę myśleć o trzech różnych sposobów, aby sobie z tym poradzić:
- Declare „indeksowane = true” w schemacie Solr dla obu kategorii i pola like_count i kwerendy w Solr
- Tworzenie nieznormalizowane tabeli w Cassandry z klucz podstawowy (kategoria, like_count, id)
- Tworzenie nieznormalizowane tabeli w Cassandry z klucza podstawowego (kategoria, klasa, id) i użyć zewnętrznego urządzenia, takiego jak Spark/Storm, aby posortować elementy według like_count
Pierwsza metoda wydaje się być najprostsza w implementacji i utrzymaniu. Po prostu napiszę trochę trywialnego kodu dostępu do Solr, a pozostałe podnoszenie ciężkie obsługiwane jest przez Solr/DSE search.
Druga metoda wymaga ręcznej denormalizacji przy tworzeniu i aktualizacji. Muszę również zachować oddzielną tabelę. Istnieje również problem z grobowcem, ponieważ wartość like_count może być często aktualizowana. Dobrą stroną jest to, że odczyt może być szybszy (jeśli nie ma nadmiernych nagrobków).
Trzecia metoda może złagodzić problem nagrobka kosztem jednego dodatkowego komponentu do sortowania.
Która metoda jest według ciebie najlepszą opcją? Jaka jest różnica w wydajności?
+1 Wspaniała odpowiedź. I całkowicie zgadzam się z wtórnymi indeksami mającymi ograniczone przypadki użycia. Prawdopodobnie najbardziej nie rozumiane narzędzie w Cassandrze. – Aaron
+1 Nie mogłem powiedzieć nic lepszego. Niedawno natknąłem się na ten dylemat i znalazłem się przy użyciu Solr dla WSZYSTKICH operacji odczytu, ponieważ Cassandra nie mogła filtrować więcej niż jednej kolumny na zapytanie (w zasadzie, ponieważ dodatkowe indeksy Cassandra można zadeklarować tylko w jednej kolumnie na raz - tj. bez indeksów złożonych). Dla mnie jest to główne ograniczenie. –
Świetna odpowiedź !! Jak oceniasz wskaźniki SASI w porównaniu do DSE/Solr. Bardzo chciałbym usłyszeć twoją opinię. – taylorcressy