Мондриан срещу Elasticsearch: Какво да изберем

Намирането на аналитичен двигател за вашето бизнес приложение е предизвикателство за разработчиците и архитектите за съхранение на данни.

Вашият избор винаги зависи от широк спектър от бизнес, специфични за приложения и хардуер изисквания, които трябва да бъдат взети предвид в ранните фази на жизнения цикъл на разработка на софтуер.

За да ви помогнем да направите правилния избор относно решението, което отговаря на далеч достигащите се цели на вашия проект, решихме да представим в центъра на вниманието два мощни (но различни по своята същност) инструменти - Elasticsearch и Mondrian, да покрием накратко техните високи нива характеристики и проучване на основните цели на търсачката и OLAP сървър.

Elasticsearch

Най-големите компании в света дават своите предпочитания на Elasticsearch. Не е изненада - Elasticsearch въплъщава най-добрите характеристики на документи, ориентирани към съхранение на данни, търсене на много наематели и аналитичен механизъм едновременно. Оптимизиран за търсене и извличане, той захранва приложения с най-съвременни функции за търсене. Неговата мулти-наемност ви дава възможността да имате толкова индекси на клъстер, колкото ви е необходимо.

Освен своите възможности за търсене, той също така поддържа аналитичност и предлага ефективно обобщаване, което помага да се извлече стойност от вашите данни.

Какво е под капака?

В основата на Elasticsearch е Apache Lucene - една от най-обичаните библиотеки за извличане на информация, която е известна със своята производителност, мащабируемост и релевантност.

В близост до реално време

Elasticsearch се нарича платформа за търсене в реално време, тъй като използва лек процес за търсене на нови документи за търсене чрез освежаване на всеки фрагмент веднъж на секунда.

разгръщане

Като правило добавянето на Elasticsearch към вашия архитектурен дизайн е безболезнен процес - можете да го стартирате или на място, или в облака. Изпълнението изисква минимални усилия, но дава максимални резултати в дългосрочен план.

Производителност и мащабируемост

Мащабируемостта винаги е проблем, свързан с прекъсване или прекъсване, но Elasticsearch има разпределен характер, който гарантира цялостната ефективност на търсенето. Той лесно се мащабира поради разделянето на всеки индекс на множество частици. Шардингът ви позволява да паралелизирате операциите между парчетата и репликирането на парчетата на вашия индекс осигурява наличност в случай на повреда на един или повече възли. Освен това можете да контролирате броя на репликите динамично, след като индексът е създаден, но броят на парчетата трябва да бъде определен по време на създаването на индекса.

гъвкавост

Една от основните специалности на Elasticsearch е, че не е необходимо да се уточнява схемата отпред. Elasticsearch поема индексирането на документите и автоматично извежда типовете и полетата му. По този начин ви помага да стигнете веднага до изследването на вашите данни възможно най-бързо.

Сигурност

Вие сте в състояние да приложите различни мерки за сигурност във вашия клъстер с помощта на X-Pack - разширение на Elastic Stack (което също осигурява функции за сигнализиране, наблюдение, отчитане, машинно обучение).

Обикновено такива мерки включват предотвратяване на разкриване на частни данни и изпълнение на скъпи заявки или външен код чрез динамични скриптове. Освен това може да искате да наложите ограничения върху правата за актуализиране.

API

Всички функции на Elasticsearch са изложени чрез интерфейса RESTful.

Освен това можете да взаимодействате с Elasticsearch на всеки език по ваш избор. Поддръжката за езици е широка - Java, Python, Curl, PHP, SQL, JavaScript, Ruby и други.

общност

Като продукт с отворен код, Elasticsearch е подкрепен от разработчици от цял ​​свят.

Опитайте да посетите Elastic Forum - това ще ви даде несравнимо усещане за принадлежност към международната общност.

Документация, издания и актуализации

Първото нещо, което хваща окото, е как документацията на Elasticsearch е добре организирана и актуализирана.

Друго, което може да ви хареса, е разделът със случаите на използване, който помага да откриете как различни организации се справят с предизвикателствата при търсене и анализи с помощта на Elasticsearch и други продукти от стека ELK.

Незначителните издания и поправки се случват често. Големите издания също са чести - веднъж на всеки два или четири месеца.

Безплатен ли е?

Да, това е безплатна търсачка, която се пуска като отворен код под лиценза Apache 2.0.

Какво мислим

Elasticsearch е свързан с бързината и гъвкавостта. Ако трябва да управлявате сложни потоци от данни, това е най-добрият избор. Това прави процеса на търсене безболезнен и ефективен.

Можете да използвате Elasticsearch както като основен магазин, така и като търсачка. Но най-добрата практика е да използвате Elasticsearch в допълнение към съществуващата база данни.

И за да предоставите на приложението си с инструмент за бизнес разузнаване, можете да опитате Flexmonster - той помага да трансформирате данните от вашия индекс в прозрения с мощни функции за филтриране, обобщаване и сортиране.

За да научите на практика как да изградите отчет въз основа на данните от индекс Elasticsearch, моля, вижте статията Свързване към Elasticsearch.

Сега да преминем към прегледа на Mondrian

Мондриан

Mondrian е двигател с отворен код OLAP, който беше пуснат през 2002 г. Създаването му беше вдъхновено главно от SSAS и желанието за преодоляване на проблема с отнемането на време за процеса на създаване на отчети.

Как работи?

Архитектите от Пентахо комбинираха най-добрите характеристики на ROLAP (релационна онлайн аналитична обработка), нейната опростена структура и производителност на MOLAP (многоизмерна онлайн аналитична обработка).

Технически той служи като посредник между хранилището на данни и инструментите за анализ. С помощта на логически описания на данните и JDBC извлича данните от база данни, преобразува MDX заявки в SQL заявки и изпраща OLAP кубчета като отговор на инструмента за отчитане. Основната характеристика на Mondrian е, че тя хвърля кубици в паметта, за да може бързо да отговаря на заявки.

Също така е важно да разберете конструкциите на схемата на Мондриан. Кубът е съвкупност от измерения и мерки. Размерите представят атрибутите, по които мерките трябва да бъдат разделени на категории. Тези размери и йерархии се картографират върху таблици от вашата база данни чрез схемата.

В близост до реално време

Можете да постигнете практически опит в Mondrian в реално време, тъй като двигателите на ROLAP не изчисляват предварително пресечните точки на размерите, което означава, че данните са достъпни за крайните потребители веднага след актуализирането им в базата данни.

Именно това прави Mondrian добър избор за системи в реално време - можете да стартирате многоизмерни заявки върху постоянно променяща се база данни. За това можете да използвате неговия API за управление на кеша.

разгръщане

Можете да стартирате Mondrian в уеб контейнер (Tomcat или JBoss) или да вградите като част от приложението си.

Производителност и мащабируемост

Mondrian използва в паметта изчисления за увеличаване на скоростта. Въпреки ефективността на самия Mondrian, той може да забави вашето приложение, ако вашите SQL заявки не са оптимизирани или схемата е лошо проектирана. Освен това настройката, поддържането и преструктурирането на OLAP кубчета може да ви струва много по отношение на времето на разработчика, което често е по-скъп ресурс от захранването и паметта. Все пак, използвайки правилните конфигурации, можете да мащабите Mondrian за използване от стотици или хиляди потребители.

гъвкавост

Той е гъвкав в смисъл, че може да бъде вграден в разнообразни среди и интегриран с инструментите на трети страни. Но езикът на схемата на Mondrian налага определени ограничения, които могат да бъдат преодолени чрез добавяне на персонализирани приставки към приложението.

Сигурност

За да ограничите достъпа до определени части от OLAP куба, можете да определите ролите на потребителя в дефиницията на схемата, като използвате картографиране на ролите на BA сървъра.

API

Mondrian не предоставя REST API, но можете да използвате REST API на трети страни, обвити около библиотеката на Mondrian.

общност

Mondrian също е проект с отворен код, който всеки може да допринесе. Официалният форум на Пентахо е на ваше разположение в случай, че трябва да зададете въпрос, свързан с функционалността на Mondrian. Изглежда обаче, че не се използва активно.

Документация, издания и актуализации

Документацията е изчерпателна, но не е достатъчно бърза. За съжаление, създава впечатление за един дълъг документ, който превъртате надолу, докато намерите необходимата информация.

Последната официална стабилна версия 3.0 излиза през 2008 г. Оттогава Mondrian се поддържа и актуализира най-вече от разработчиците.

Безплатен ли е?

Да, Mondrian е безплатен и с отворен код. Той е лицензиран съгласно ETL.

Какво мислим

Като цяло Mondrian е добър вариант, ако имате една релационна база данни като слой за съхранение, която не отговаря напълно на нуждите за бързо извличане на резултатите от търсенето чрез заявки. Той разширява функционалността на релационната база данни, като предоставя измерен изглед на данни, кеширане и изчисления на по-високо ниво.

Ако сте решили да го използвате, определено ви е необходим усъвършенстван преден инструмент за показване и анализ на данните от кубчета. Именно за това е проектиран Flexmonster. Можете да се свържете с Mondrian чрез XMLA или Flexmonster Accelerator (специална програма от страна на сървъра за бърз трансфер на данни) и да започнете да проучвате OLAP данните. За да разберете повече подробности, моля, вижте статията Свързване с Пентахо Мондриан.

Обединявайки всичко това

Както Mondrian, така и Elasticsearch могат да бъдат използвани за ефективно запитване на предварително агрегираните данни и анализирането им в почти реално време, въпреки че те използват по същество различни технологии. Изглежда обаче, че първият в крайна сметка се превърна в остаряло и не толкова популярно решение поради конкуренцията на инструментите с отворен код на пазара на ИТ. Освен това писането на схемите на Мондриан изисква по-висока крива на обучение и може да бъде досаден процес.

Elasticsearch се получава повече от общността на разработчиците (особено от инженерите на DevOps) и достига до Mondrian в различни аспекти: по-широк спектър от поддържани типове данни, мащабируемост, способност за комуникация чрез REST интерфейс и силна поддръжка на общността. Освен това, той е чудесен за анализ на регистрационни файлове. Други ключови характеристики са близо търсене в реално време и архитектура без схеми. Препоръчваме да получите практически опит, за да сте сигурни, че Elasticsearch е проектиран за лесна интеграция на данни и с отлична производителност.

Сравняване на популярността

Нашите изводи за популярността на Elasticsearch и Mondrian се основават на анализа на заявките за търсене чрез Google Trends. Той показа как интересът към двете решения се промени през последното десетилетие. На графиката на тенденциите можете да забележите, че Mondrian е бил в търсенето през първите 10 години след излизането си, но спадът на популярността му през 2014 г. съвпада с увеличаването на популярността на Elasticsearch, което последва скоро след основните ъпдейти.

Заключителни мисли

Надяваме се сега да сте готови да вземете добре информирано решение относно аналитичния бек-енд двигател за вашия проект.

Каквото и решение да изберете, винаги можете да разчитате на Flexmonster. Той служи като инструмент за бизнес разузнаване за вашите данни и отваря широк спектър от възможности - можете да се свържете или с Elasticsearch или Mondrian, да получите обобщените данни от индекс или OLAP куб и да започнете своя анализ на скоростта на мисълта. Без значение колко голям е вашият набор от данни - Flexmonster може да се справи с него.

Първоначално публикуван на www.flexmonster.com.