Apa saja kasus penggunaan penggunaan Elasticsearch versus kueri sql standar? [Tutup]

125

Saya baru saja memulai dengan Elasticsearch dan salah satu kasus penggunaan utama yang pernah saya lihat adalah skalabilitasnya dengan pencarian pada kumpulan data yang besar, tetapi selain itu kapan Anda ingin menggunakannya hanya dengan membuat kueri sql dengan RDBMS tradisional?

James Drinkard
sumber
3
Mengedit Pertanyaan untuk memperbaikinya (misalnya klarifikasi, menambahkan informasi tambahan, dll.) Dianjurkan . Namun, mengedit Pertanyaan untuk mengubahnya menjadi pertanyaan yang berbeda, yang mengakibatkan pembatalan satu atau beberapa Jawaban, bertentangan dengan kebijakan Stack Overflow. Hasil edit Anda di sini berhasil. Kebijakannya adalah bahwa pengguna lain dengan hak mengedit harus secara proaktif mengembalikan perubahan tersebut, yang telah saya lakukan di sini. Jika pertanyaan baru Anda sesuai topik, Anda dianjurkan untuk mengajukan pertanyaan baru , mungkin dengan tautan ke pertanyaan ini untuk konteks tambahan.
Makyen
Dimengerti. Maksudnya benar, hanya saja bukan eksekusi.
James Drinkard

Jawaban:

78

Ada dua kasus penggunaan Elasticsearch utama:

  1. Pencarian Teks

Anda menginginkan Elasticsearch saat Anda melakukan banyak pencarian teks, di mana database RDBMS tradisional tidak berkinerja sangat baik (konfigurasi yang buruk, bertindak sebagai kotak hitam, kinerja yang buruk). Elasticsearch sangat dapat disesuaikan, dapat diperpanjang melalui plugin. Anda dapat membuat penelusuran yang canggih tanpa banyak pengetahuan dengan cukup cepat.

  1. Logging dan analisis

Kasus edge lainnya adalah banyak orang menggunakan Elasticsearch untuk menyimpan log dari berbagai sumber (untuk memusatkannya), sehingga mereka dapat menganalisis dan memahaminya. Dalam hal ini, Kibana menjadi berguna. Ini memungkinkan Anda terhubung ke cluster Elasticsearch dan langsung membuat visualisasi. Misalnya, Loggly dibuat menggunakan Elasticsearch dan Kibana.

Ingat, Anda tidak ingin menggunakan Elasticsearch sebagai penyimpanan data utama Anda. Alasannya di sini: Seberapa andal ElasticSearch sebagai datastore utama terhadap faktor-faktor seperti kehilangan penulisan, ketersediaan data

Memperbarui

Saya merasa bagian kedua tidak lagi tegang, sebenarnya apa yang telah dilakukan Elastic sebagai perusahaan dengan sangat baik pada tahun lalu. Dengan pergerakan DevOps saat ini, pipeline CI / CD, peningkatan jumlah metrik dari berbagai sumber, ELK menjadi pilihan defacto untuk pemantauan infrastruktur, tidak lagi hanya mesin pencari teks RESTful yang terdistribusi. Ini memiliki serangkaian produk yang luar biasa:

  • Logstash (banyak input data)
  • Beats
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • Grafik
    • Timelion
  • X-Pack (premium)
    • Peringatan
    • Pelaporan
    • Keamanan
    • Pembelajaran mesin
    • Metrik lintas pusat data

Sebuah ekosistem, dibangun oleh komunitas, tumbuh di sekitar tumpukan ELK yang memperluas fitur-fitur saat ini, beberapa di antaranya layak untuk disebutkan:

  • ElastAlert
  • Penjaga Pencarian
Evaldas Buinauskas
sumber
Mengapa membatasi Pencarian Elastis tidak digunakan sebagai mesin kueri untuk sistem standar, seperti pos atau erp karena saya tidak mengerti banyak perusahaan yang menghabiskan banyak energi hanya dengan mengubah data dari sql menjadi pencarian elastis untuk analitik.
pannu
Di versi lama tidak disarankan, sekarang saya tidak tahu.
Evaldas Buinauskas
Anda berkata, karena konfigurasi yang buruk, kinerja RDBMS tidak terlalu baik. Apakah ini berarti, dengan konfigurasi yang baik, Anda dapat bekerja sebaik dengan EleasticSearch, terkait dengan pencarian teks (pencarian fuzzy)?
Legenda
2
@ Legenda yang saya maksud adalah opsi konfigurasi yang buruk. Pengalaman saya sendiri terbatas pada Pencarian Teks Lengkap MSSQL dan jumlah pengaturan di MSSQL tidak dapat dibandingkan dengan Elasticsearch. Pencarian Teks di RDBMS adalah sebuah fitur, sedangkan di Elasticsearch, fitur itu adalah intinya.
Evaldas Buinauskas
Saya banyak mencari di web, tapi saya tidak dapat menemukan sesuatu yang konkret. Berapa banyak data (hanya perkiraan) yang harus dimiliki aplikasi agar kita berpikir untuk pindah ke ElasticSerach ?, karena pemeliharaan sistem terdistribusi itu rumit. Misalnya, mencari di teks komentar yang terindeks dengan baik di mongodb. (Saya tidak berbicara tentang fitur lanjutan ES, pencarian teks murni)
Iván Sánchez
27

Sebagai tambahan dengan jawaban lain, Logging masih menjadi kasus penggunaan utama serta pencarian, tetapi sekarang metrik dan analitik menjadi lebih penting.

Saya percaya bahwa posting ini merangkum perubahan di pasar yang mendorong kasus penggunaan baru untuk Big Data. Semua yang benar-benar perlu Anda ketahui tentang Database Sumber Terbuka

Dengan munculnya Web 2.0, halaman web statis menjadi dinamis dan media sosial ada di sekitar kita. Setiap orang men-tweet, memposting, membuat blog, vlogging, berbagi foto, mengobrol, dan memberi komentar. Internet of Things (IoT) sedang berkembang - jaringan perangkat terhubung yang berkembang pesat yang mengumpulkan dan bertukar data, seperti sensor dan perangkat pintar. Ada beberapa contoh bagus di sini.

Secara keseluruhan, ini menghasilkan data baru dalam jumlah besar yang ingin diserap dan digunakan bisnis agar tetap menjadi yang terdepan, untuk memberikan fitur seperti rekomendasi produk dan pengalaman pelanggan yang lebih baik. Data dapat dianalisis untuk mencari pola aplikasi seperti deteksi penipuan dan analisis perilaku. Sebagian besar data baru tidak terstruktur, yang berarti tidak dapat disimpan dengan rapi dalam database tabel.

Bayangkan mencoba merancang database untuk menyimpan data tentang belanja bahan makanan Anda - apa yang Anda suka, seberapa sering Anda membelinya, apakah Anda lebih suka susu atau krim dengan kopi Anda. Jenis database baru diperlukan untuk menyimpan data baru, dan database tersebut harus non-relasional dan idealnya berbiaya rendah. Membunyikan lonceng? Tidak relasional seperti di NoSQL dan berbiaya rendah seperti di open source.

Salah satu Arsitek Elasticsearch yang saya ajak bicara mengatakan bahwa 80% data yang digunakan Elasticsearch di perusahaan tidak terstruktur, sementara 20% terstruktur. Ini adalah data tidak terstruktur yang dicari perusahaan untuk menemukan pola data yang langka atau tidak biasa. Mereka juga menggunakan Elasticsearch untuk memantau pola data. Misalnya, pengecer besar melakukan pelacakan waktu nyata dengan Elasticsearch untuk memastikan persediaan uang yang cukup di toko bagi orang-orang untuk mencairkan cek pada hari pembayaran.

Dalam pengalaman saya dengan kasus penggunaan penelusuran, kami tidak hanya menggunakan penelusuran tidak jelas, tetapi juga berkembang menjadi penelusuran lengkap dan cepat. Dari apa yang saya lihat, setelah Anda mulai bekerja dengan Elasticsearch, Anda mulai berkembang menjadi kasus penggunaan lain yang melengkapi apa yang sudah Anda miliki. Sekarang kami telah menetapkan Elasticsearch sebagai mesin pencari fuzzy di perusahaan kami, kini kami memiliki tim lain yang mempelajari analitik dan metrik untuk logging.

Berikut beberapa sumber tambahan yang membahas lebih mendalam tentang topik ini:

James Drinkard
sumber