Mengenal Elasticsearch, Sedikit Pengantar

bapakSM

(*tulisan ini saya sadur dan saya terjemahkan dari: https://qbox.io/blog/what-is-elasticsearch dengan penyesuain seperlunya)

Pertanyaan klasik. “Coba terangkan kepada saya dengan sederhana, apa itu Elasticsearch?”

Jujur, ini pertanyaan sulit. Bertanya ke tiap orang, mesti akan mendapat jawaban bermacam-macam. Malah bikin tambah frustrasi. Sehingga malah membuat malas untuk tahu lebih jauh mengenai Elasticsearch.

Dear All, gambarkan Elasticsearch?
Video penjelasan terbaru dari Elastic pun, masih sulit untuk bisa memahami bahkan dari komunitas utama Elasticsearch.

Penjelasan dari Tim Qbox:

Elasticsearch is an open-source, broadly-distributable, readily-scalable, enterprise-grade search engine. Accessible through an extensive and elaborate API, Elasticsearch can power extremely fast searches that support your data discovery applications.

Sangat mudah sebenarnya memulai dengan Elasticsearch.

Fast, Incisive Search against Large Volumes of Data

Database SQL konvensional benar-benar tidak dirancang untuk pencarian teks kompleks, dan jelas kinerjanya rendah pada sturktur data mentah yang berada di luar database. Pada hardware yang sama, prosese query menghabiskan waktu lebih dari 10 detik namun hanya memerlukan wakut di bawah 10 milidetik saat menggunakan Elasticsearch.

Pengguna bisa menggunakan query pada ES dengan bahasa yang sederhana (Query DSL). Query ini akan melakukan pemeriksaan tunggal atau jamak pada target pencarian dan kemudian memberikan skor pada tiap elemen hasil pencarian yang memiliki kecocokan dengan fokus query. Penambahan operator query akan membantu pengoptimalan query sederhana maupun komplek yang seringnya dihasillkan dari set data yang besar hanya dengan beberapa milidetik. Desain ES lebih sederhana dan ramping daripada database yg terdiri dari schema, tabeel, field, baris dan kolom.

Indexing Documents to the Repository

Selama operasi pengindeksan, Elasticsearch mengubah data mentah seperti file log atau file pesan ke dalam dokumen internal dan menyimpannya dalam struktur data dasar yang sama dengan objek JSON. Setiap dokumen adalah satu set sederhana menghubungkan kunci dan nilai: kunci adalah string, dan nilai adalah salah satu dari tipe string, angka, tanggal, atau daftar.

Menambahkan dokumen ke Elasticsearch cukup dengan melakukan POST HTTP, dokumen dikirim sebagai objek JSON sederhana. Pencarian juga dilakukan dengan JSON: cukup query GET HTTP dengan JSON. RESTful API membuatnya lebih mudah mengambil, mengirimkan, dan memverifikasi data secara langsung dari baris perintah seperti curl maupun dengan bahasa pemograman semisal Python atau Ruby.

Denormalized Document Storage: Fast, Direct access to your Data

Sangat penting untuk diingat bahwa Elasticsearch bukanlah database relasional, sehingga konsep DBMS tidak akan berlaku. Kita membutuhkan proses normalisasi ketika berhadapan dengan database konvensional karen Native Elasticsearch tidak mengizinkan joins or subqueries, sehingga proses denormalizing data adalah mutlak.

ES biasanya akan menyimpan dokumen satu kali untuk setiap lumbung(repositori) di mana ia berada. Meskipun ini berlawanan dengan perspektif DBMS konvensional, Hal ini merupakan hal wajar pada Elasticsearch. Pencarian teks penuh akan sangat cepat karena dokumen disimpan sangat dekat sesuai metadata dalam indeks. Desain ini akan sangat mengurangi jumlah data yang dibaca, dan ES selalu membatasi tingkat pertumbuhan indeks dengan menjaganya agar tetap dikompresi.

Broadly Distributable and Highly Scalable

Elasticsearch dapat ditingkatkan berskala hingga ribuan server dan mampu mengakomodasi hingga petabyte data. Kapasitas yang sangat besar merupakan hasil dari proses yg teliti dan rumit serta distribusi arsitektur. Namun pengguna ES malah tidak menyadari bahwa proses otomatisasi dan kompleksitas ini didukung secara langsng oleh disain terdistribusi ini.

Ya gitulah, tulisan ini buat pengantar materi nanti. ELK Stack

Estu~
yang lagi spaneng