Shay Banon: ElasticSearch nagy adatok elemzésére

2012. augusztus 18.
2 perc

Shay Banon az ElasticSearch készítője, ami egy nyílt forráskódú, Lucene alapokra épülő elosztott keresőszerver. A következő előadást 2012. június 5-én, a Berlin Buzzwords 2012 (The conference of High Scalability) nevű rendezvényen tartotta.

Itt az előadás kivonatát olvashatod.

ElasticSearch alapfogalmak

Az emberek többsége az ElasticSearch-öt (ES) szabadszöveges keresésre használja, de emellett alkalmas nagy adatok tárolására és elemzésére is. A kérdés mindig a következő:

Hogyan áramlik az adat?

Shay megvilágítja az ES megismeréséhez szükséges fogalmakat:

  • Az index egy logikai névtér, amit leképzünk egy vagy több shard-ra és aminek nulla vagy több másolata lehet. Hasonlít az RDBMS világ adatbázis fogalmához, de annál sokkal többet takar.

  • A shard: egy Lucene példány, az alapegység, amelyet az ES kezel.

  • A replica az elsődleges shard másolata, amelyet a keresések terhelés-kiegyenlítésére, vagy a rendszer hibatűrő képességének a növelésére is használhatunk - pl. ha egy node kiesne.

  • A node az ES egy futó példánya, amely egy klaszterbe tartozik. Több shardot és/vagy másolatot is kezelhet.

Mivel minden shard-nak megvan a költsége, célszerű előre megtervezni a használandó indexek, shardok és másolatok típusát és számát. Szerencsére könnyű kapacitás-tesztelést végezni, és a terhelés kiértékelése alapján a döntést meghozni.

Adatfolyam példák

Többféle tervezési minta létezik az eltérő felhasználási esetekhez, de minden esetben elegendő csak arra fókuszálnunk, hogy hogyan mozgatjuk az adatokat.

  • Egy index - megfelelő alapértelmezett érték ha kicsiben kezdünk.
  • Egy index / felhasználó - ha a keresések főleg felhasználó-specifikusak, ez kiegészíthető további routing és aliasing képességekkel is.
  • Idő-alapú index - pl. egy index minden napra, hétre vagy hónapra. Könnyű kialakítani az utolsó 3 hónap alias-t, a régi indexeket pedig optimalizálhatjuk, átmozgathatjuk más rendszerre vagy könnyen letörölhetjük.

Adat analitika

Shay egy példát vázol idő-alapú eseménynaplóval, néhány komponenssel és kategóriával. Ebből kiindulva bemutat néhány egyszerűbb lekérdezést, amivel az adatokat különböző szeletek mentén tudja szűrni. Az aggregáló függvények segítségével táblázatok, grafikonok és hisztogrammok készíthetőek olyan adatsorok mint például darabszám/nap vagy darabszám/ország.

Frissítve: 2014. augusztus 29.
Kérdés? Hozzászólás?
Írj nekünk!