Berlin Buzzwords – Day 2 – ElasticSearch: Big Data, Search, and Analytics

Der Vortrag soll einen Überblick über ElasticSearch verschaffen.

  • Die Anzhal der Shards bestimmt den Scaling Faktor, da nur komplette Shards auf weitere Rechner verschoben werden können, es jedoch nicht einfach möglich ist (nur mit reindex), Shards zu teilen. => Anzahl der Shards > Anzahl der Nodes
  • Replicas (Kopien des gleichen Datenbestandes) gibt es aus Gründen der Hochverfügbarkeit und ausserdem können Lese-Vorgänge auf mehrere Nodes ausgelagert werden.
  • Replicas können zur Laufzeit hinzugefügt werden
  • Mehrere Indexe mit unterschiedlicher Anzahl von Shards lassen sich innerhalb einer Instanz betreiben
  • Es gibt eine maximale Größe eines Shards, aber dessen Größe hängt von mehreren Faktoren wie z.B. der verwendeten Hardwar ab. Muss über Perfomancetest bestimmt werden.
  • Die maximale Index Größe beträgt Anzahl der Shards * Max. Shardgröße
  • Es sollten aber auch nich Trillionen von Shards angelegt werden, da eine Shard natürlich auch „Kosten“ hat und somit z.B. bei Personalisierung es auch keinen Sinn macht pro User einen Index anzulegen, es wäre aber möglich.
  • Darüber hinaus ist es möglich in diesem Fall zusätzlich zum Search-Query auch einen Filter z.B. nach User-Id zu erstellen
  • Darüber hinaus ist es möglich und auch eine Best Practice Routing zu benutzen, d.h. dass ein spezifischer User immer auf einer dedizierten Shard sucht
  • Dafür kann Aliase angelegt werden und diese lassen sich mit transparenten Filter versehen, z.B. nach User-ID je nach Route auf der man sucht
  • Diese Shards können auch gleichzeitig per OR-Besucht werden
  • Damit lassen sich einzelne User später transparent auf eigene Indexe / Nodes umziehen
  • Wenn dauerhaft über die Zeit hinzukommen ist es ein guter Ansatz einen Index pro Zeiteinheit (Tag, Woche, …) anzulegen. Diese lassen sich gleichzeitig besuchen
  • Die läst sich auch über Aliase lösen
  • Alte Indexe können optimiert werden oder man kann diese natürlich auf schwächere Hardware verschieben. Alternativ können diese gelöscht oder geschlossen werden. Damit verbraucht dieser keine Ressourcen ausser Platenspeicher mehr.
  • Mit ElasticSearch lassen sich über die Volltextsuche hinaus auch sehr gut Statistiken wie z.B. Klicks erfassen und auswerten
  • Facetten sind Aggregationen nach bestimmten Feldern
GD Star Rating
loading...

Kommentar verfassen