DevOps

Elasticsearch چیست؟

Elasticsearch چیست ؟

الستیک سرچ (Elasticsearch) یک موتور جستجو توزیع شده متن باز است که برای ذخیره، جستجو و تحلیل داده های حجیم، با قابلیت اعتماد بالا و مدیریت آسان طراحی شده است. از مهمترین جنبه های این ابزار قدرتمند سرعت در جستجو داده و انعطاف پذیری در تحلیل داده توسط زبان قدرتمند پرس و جو آن می باشد.
این قابلیت ها کاربران را قادر می سازد که بر روی داده های حجیم بدون ساختار، نیمه ساخت یافته و سری زمانی به صورت برخط جستجو و تحلیل انجام دهند و Elasticsearch را به ابزاری ایده آل برای ذخیره و تحلیل آنی داده ها تبدیل کرده است.
در حال حاضر شرکت های بزرگی همچون Uber, Facebook, Stackoverflow, Github و هزاران شرکت دیگر به صورت فزاینده از این تکنولوژی استفاده می کنند.

💠معمولا Elasticsearch را به عنوان راه حلی می شناسند که منابع سخت افزاری زیادی لازم دارد، اما این دیدگاه تا چه حد صحیح است؟
🔅 بیشترین نیازمندی Elasticsearch میزان حافظه RAM است.

اما بر خلاف تصور عمومی، در مرحله توسعه و تست نرم افزار حتی می توان Elasticsearch را روی یک لپ تاپ متوسط نصب و به راحتی استفاده کرد.

برای استقرار نهایی نرم افزار و استفاده در محیط production ماشین هایی با حافظه 64MB توصیه می شود.

اگرچه استفاده از ماشین هایی با حافظه های 32MB و 16MB هم معمول است (استفاده ازماشین هایی با حافظه کمتر توصیه نمی شود).

همچنین به دلیل تغییر استراتژی آدرس دهی هیپ توسط JVM (و در نتیجه Elasticsearch) برای حافظه های بزرگتر که باعث کاهش کارایی می شود، استفاده از ماشین هایی با حافظه بیشتر نیز توصیه نمی شود (در صورت نیاز می بایست در این موارد تعداد ماشین ها افزایش یابد).

🔰 چند نکته دیگر (فقط برای محیط production):
🔅میزان CPU فاکتور مهمی برای Elasticsearch نیست. توصیه می شود بین CPUی قویتر با CPUی با هسته بیشتر، CPU با هسته بیشتر را انتخاب کنید.
🔅اگر قادر به خرید SSD هستید، این کار را بکنید. استفاده از SSD برای ذخیره سازی داده هم در زمان ساخت indexها و هم در زمان query کارایی را افزایش چشمگیری میدهد.
🔅علیرغم تصور عمومی استفاده از NAS برای Elasticsearch توصیه نمی شود.

🔰برای مطالعه بیشتر در این باره به منابع زیر مراجعه کنید.

[1] https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html
[2] https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html

مزایای Elasticsearch

 

💠 یکی از مهمترین مزایا استفاده از Elasticsearch فرم دادن به داده ها درزمان ساختن query می باشد نه در زمان ذخیره سازی داده. به این معنا که در هنگام ذخیره سازی تحلیل گر لازم نیست فکر کند که در آینده چه نیازی خواهد داشت و چه گزارشاتی لازم دارد و با توجه به آن داده ها را ساختار دهد، بالعکس OLAP cubeها که تحلیل گر می بایست از ابتدا مشخص کند که چه جدولهای dimensionی لازم دارد. در Elasticsearch همه ساختاردهی به داده ها در زمان ساختن query مشخص می شود و از این جهت نیاز به pre-aggregation نیز وجود ندارد. در عمل ثابت شده است که با منابع سخت افزاری کافی بدون نیاز به pre-aggregation می توان از Elasticsearch به عنوان زیرساخت ابزارهای BI استفاده کرد.

🔰 از این جهت که اضافه کردن داده به Elasticsearch بسیار ساده تر از به روز رسانی داده های موجود درآن است، توصیه می شود تحلیل گر از ابتدا هر داده ای را که احتمال می رود در آینده ممکن است مورد استفاده قرار بگیرد را در Elasticsearch ذخیره کنید.

منابع:
[1] https://discuss.elastic.co/t/elasticsearch-as-an-olap-cube/13408/2
[2] http://stackoverflow.com/questions/35513249/reasons-against-using-elasticsearch-as-an-olap-cube

تعامل با Elasticsearch

 

💠 جهت تعامل با Elasticsearch معمولا از Restful API استفاده می شود.

بدین صورت می توان از هر REST Client همچون Postman که یک افزونه کروم هست برای تعامل با Elasticsearch استفاده کرد.

اگرچه شرکت Elastic جهت تسهیل کار با Elasticsearch افزونه کروم Sense را منتشر کرده که واسط کاربری آن به صورت خاص برای تعامل با Elasticsearch از طریق Restful API بهینه سازی شده است و قابلیت های جالبی از جمله Autocompletion دستورات Elasticsearch، تبدیل دستورات cURL به Restful API و … را دارد.

💠 برای آشنایی بیشتر با Sense به اینجا مراجعه کنید.
https://www.elastic.co/blog/found-sense-a-cool-json-aware-interface-to-elasticsearch

💠 برای دانلود و افزودن Sense به کروه به اینجا مراجعه کنید.
https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig?hl=en

🔰 لازم به ذکر است در Kibana 5 افزونه Sense به صورت یکپارچه به Kibana اضافه شده است و از واسط کاربری Kibana تحت عنوان Console قابل دسترس است.

نمایش بیشتر

نوشته های مشابه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن