Jakie są przypadki użycia usługi Elasticsearch w porównaniu ze standardowymi zapytaniami sql? [Zamknięte]

125

Właśnie zaczynam pracę z Elasticsearch i jednym z głównych przypadków użycia, które widziałem, jest jego skalowalność przy wyszukiwaniu w dużych zestawach danych, ale poza tym, kiedy chciałbyś go używać do tworzenia zapytań sql za pomocą tradycyjnego RDBMS?

Jamesa Drinkarda
źródło
3
Zachęcamy do edytowania pytań w celu ich ulepszenia (np. Wyjaśnienia, dodania dodatkowych informacji itp.) . Jednak edytowanie pytania w celu zmiany go na inne, co powoduje unieważnienie jednej lub więcej odpowiedzi, jest niezgodne z zasadami dotyczącymi przepełnienia stosu. Twoja zmiana tutaj zrobiła to. Zasada jest taka, że ​​inni użytkownicy z uprawnieniami do edycji powinni proaktywnie cofać takie zmiany, co tutaj zrobiłem. Jeśli Twoje nowe pytanie dotyczy tematu, zachęcamy do zadania nowego pytania , na przykład z łączem do tego pytania w celu uzyskania dodatkowego kontekstu.
Makyen
Zrozumiany. Cóż, intencja była słuszna, ale nie wykonanie.
James Drinkard

Odpowiedzi:

78

Istnieją dwa podstawowe przypadki użycia Elasticsearch:

  1. Wyszukiwanie tekstu

Chcesz Elasticsearch, gdy wykonujesz dużo wyszukiwania tekstowego, gdzie tradycyjne bazy danych RDBMS nie działają zbyt dobrze (słaba konfiguracja, działa jak czarna skrzynka, słaba wydajność). Elasticsearch jest wysoce konfigurowalny, rozszerzalny za pomocą wtyczek. Możesz szybko zbudować solidne wyszukiwanie bez dużej wiedzy.

  1. Rejestrowanie i analiza

Innym krytycznym przypadkiem jest to, że wiele osób używa Elasticsearch do przechowywania dzienników z różnych źródeł (w celu ich centralizacji), aby mogli je analizować i nadawać im sens. W takim przypadku Kibana staje się przydatna. Pozwala połączyć się z klastrem Elasticsearch i od razu tworzyć wizualizacje. Na przykład Loggly jest budowany przy użyciu Elasticsearch i Kibana.

Pamiętaj, że nie chcesz używać Elasticsearch jako podstawowego magazynu danych. Oto powody: Jak niezawodny jest ElasticSearch jako podstawowy magazyn danych w kontekście takich czynników, jak utrata zapisu, dostępność danych

Aktualizacja

Wydawało mi się, że druga część nie jest już nerwowa, tak naprawdę Elastic jako firma radziła sobie naprawdę dobrze w zeszłym roku. Przy obecnym ruchu DevOps, potokach CI / CD, rosnącej ilości metryk z różnych źródeł, ELK stał się domyślnym wyborem do monitorowania infrastruktury, nie jest już tylko rozproszoną wyszukiwarką tekstową RESTful. Posiada niesamowity zestaw produktów:

  • Logstash (mnóstwo danych wejściowych)
  • Bity
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • Wykres
    • Timelion
  • X-Pack (premium)
    • Alerty
    • Raportowanie
    • Bezpieczeństwo
    • Nauczanie maszynowe
    • Dane dotyczące różnych centrów danych

Ekosystem, zbudowany przez społeczność, rośnie wokół stosu ELK, który rozszerza obecne funkcje, z których kilka warto wymienić:

  • ElastAlert
  • Search Guard
Evaldas Buinauskas
źródło
Dlaczego ogranicza Elastic Search nie jest używany jako silnik zapytań dla standardowych systemów, takich jak POS lub ERP, ponieważ nie rozumiem firm, wiele energii jest wkładane tylko w przekształcanie danych z sql do elastycznego wyszukiwania w celu analizy.
pannu
W starszych wersjach nie było to zalecane, teraz nie wiem.
Evaldas Buinauskas
Powiedziałeś, że z powodu złej konfiguracji RDBMS nie działa zbyt dobrze. Czy to oznacza, że ​​przy dobrej konfiguracji można wykonać równie dobrze, jak z EleasticSearch, jeśli chodzi o wyszukiwanie tekstowe (wyszukiwanie rozmyte)?
Legends,
2
@ Legends Naprawdę miałem na myśli kiepskie opcje konfiguracji. Moje własne doświadczenie ogranicza się do wyszukiwania pełnotekstowego MSSQL, a ilości ustawień w MSSQL nie można porównać z Elasticsearch. Wyszukiwanie tekstowe w RDBMS to funkcja, podczas gdy w Elasticsearch jest to esencja.
Evaldas Buinauskas
Dużo szukałem w sieci, ale nie mogę znaleźć nic konkretnego. Ile danych (tylko ok.) Powinna mieć aplikacja, żebyśmy mogli pomyśleć o przejściu na ElasticSerach ?, bo utrzymanie systemów rozproszonych jest skomplikowane. Na przykład wyszukiwanie w komentarzach tekstów dobrze zindeksowanych w mongodb. (Nie mówię o zaawansowanych funkcjach ES, czystym wyszukiwaniu tekstowym)
Iván Sánchez
27

Aby dodać do drugiej odpowiedzi, rejestrowanie jest nadal głównym przypadkiem użycia, podobnie jak wyszukiwania, ale teraz metryki i analizy stają się coraz ważniejsze.

Uważam, że ten post podsumowuje zmiany na rynku, które napędzają nowe przypadki użycia Big Data. Wszystko, co naprawdę musisz wiedzieć o bazach danych Open Source

Wraz z pojawieniem się Web 2.0 statyczne strony internetowe stały się dynamiczne, a media społecznościowe są wszędzie wokół nas. Wszyscy tweetują, piszą posty, blogują, vlogują, udostępniają zdjęcia, rozmawiają i komentują. Powstaje Internet rzeczy (IoT) - szybko rozwijająca się sieć połączonych urządzeń, które zbierają i wymieniają dane, takie jak czujniki i inteligentne urządzenia. Oto kilka świetnych przykładów.

W sumie generuje to ogromne ilości nowych danych, które firmy chcą wchłonąć i wykorzystać, aby wyprzedzić konkurencję, oferując takie funkcje, jak rekomendacje produktów i lepsze doświadczenia klientów. Dane można analizować w poszukiwaniu wzorców zastosowań, takich jak wykrywanie oszustw i analiza zachowań. Wiele nowych danych nie ma struktury, co oznacza, że ​​nie można ich starannie przechowywać w tabelarycznej bazie danych.

Wyobraź sobie, że próbujesz zaprojektować bazę danych do przechowywania danych o Twoich zakupach spożywczych - co lubisz, jak często to kupujesz, czy wolisz mleko czy śmietanę do kawy. Do przechowywania nowych danych potrzebne są nowe typy baz danych, które muszą być nierelacyjne i idealnie tanie. Zadzwonić w dzwony? Nie relacyjny jak w NoSQL i tani jak w open source.

Jeden z architektów Elasticsearch, z którymi rozmawiałem, powiedział, że 80% danych, z którymi pracuje Elasticsearch w firmach, to dane nieustrukturyzowane, a 20% to dane ustrukturyzowane. To nieustrukturyzowane dane, na które patrzą firmy, aby odkryć rzadkie lub nietypowe wzorce danych. Używają również Elasticsearch do monitorowania wzorców danych. Na przykład duży sprzedawca prowadzi śledzenie w czasie rzeczywistym za pomocą usługi Elasticsearch, aby zapewnić w sklepach odpowiednią ilość pieniędzy w sklepach, aby ludzie mogli realizować czeki w dni wypłaty.

Z mojego własnego doświadczenia w przypadku naszego przypadku użycia wyszukiwania, nie tylko używamy wyszukiwania rozmytego, ale ewoluowało to w autouzupełnianie i szybkie wyszukiwanie. Z tego, co widziałem, kiedy zaczniesz pracować z Elasticsearch, zaczniesz ewoluować w inne przypadki użycia, które uzupełniają to, co już masz. Teraz, gdy stworzyliśmy Elasticsearch jako rozmytą wyszukiwarkę w naszej firmie, mamy teraz inne zespoły zajmujące się analizami i metrykami do logowania.

Oto kilka dodatkowych zasobów, które zawierają bardziej szczegółowe informacje na ten temat:

Jamesa Drinkarda
źródło