• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

FREEHOST.WIKI

Что такое Manticore

Статья также доступна на украинском (перейти к просмотру).

Постоянное увеличение объемов обрабатываемых данных во всех отраслях знаний стимулирует рост спроса на инструментарий для их обработки и хранения. Существующие на IT-рынке программные средства этой категории уже не способны в полной мере удовлетворить этот спрос и потому создаются новые, более прогрессивные инструменты. Одним из них является система обработки и хранения данных Manticore Search, ориентированная на широкий спектр задач, начиная от организации полнотекстового поиска по базам знаний и заканчивая реализацией технологии. OLAP(Online Analytical Processing), позволяющий обрабатывать сотни Тбайт данных в пределах любой распределенной системы. Рассмотрим технологическое устройство и основные возможности Manticore Search.

Технологические основы создания Manticore Search 

Программа была создана в 2017 году на базе известной поисковой системы Sphinx и стала обособленной ветвью последней. Она имеет открытый исходный код, который полностью переписан с исправлением многих сотен ошибок, которые есть в Sphinx. В результате получена система с улучшенной функциональностью и широким спектром применения. 

Главный процесс программы (daemon) созданный на С++. Это обеспечивает быстрый запуск и улучшение работы с памятью.

Программа имеет многопоточную архитектуру, обеспечивающую интеллектуальное распараллеливание запросов и возможность использования всех многоядерных ресурсов ЦП.

Был добавлен новый компонент Manticore Buddy, созданный на языке PHP, основной задачей которого является выполнение высокоуровневых функций без потерь вычислительной мощности системы.

В программе используются низкоуровневые оптимизации для повышения производительности работы.

Средство имеет собственный синтаксис, основанный на SQL и поддерживает протоколы MySQL, HTTP SQL да HTTP JSON.

Сравнение с аналогами на IT-рынке 

По многим ключевым параметрам – скорость обработки, пропускная способность и т.п. Manticore Search превышает своих конкурентов, основным из которых, кроме Sphinx, есть поисковая система Elasticsearch.

Оба средства имеют некоторые общие характеристики, например, это касается поддержки HTTP JSON для управления схемами баз данных Это позволяет выполнять совместимые с ElasticsearchJSON-запросы и использование таких инструментов, как Filebeat, Logstash и некоторые другие.

Однако, в отличие от Elasticsearch, Manticore имеет гораздо большие показатели ключевых характеристик, которые экспериментально получены и представлены разработчиками программы в документации на нее:

 

  • Пропускная способность при приеме на один компьютер почти в два раза больше;

  • Аналитика журналов выполняется почти в 30 раз быстрее;

  • Скорость обработки данных значительных объемов больше в четыре раза;

  • Скорость обработки данных средних объемов больше в пять раз;

  • Скорость обработки небольших объемов данных больше в пятнадцать раз. 

Указанные преимущества достаточно существенны и позволяют рассматривать Manticore в качестве лидера в указанном сегменте программного обеспечения.

Основные возможности

Рассмотрим основные возможности Manticore Search для каждого отдельного направления:

  • Возможности поиска и обработки текста;

  • Обработка природного языка;

  • Доступность;

  • Хранилище данных;

  • Оптимизация производительности;

  • Интеграция.

Возможности поиска и обработки текста

Программа обеспечивает возможность организации следующих видов поиска и функций обработки текстовых данных:

  • Полнотекстовый поиск (более двадцати операторов, пользовательское ранжирование);

  • Фасетный;

  • вектор;

  • Геопространственный;

  • Исправление орфографии;

  • Объединение таблиц;

  • Автозаполнение;

  • Стандартные функции фильтрации и обработки данных;

  • Стоковая фильтрация.

Обработка природного языка

Программа использует следующие методы и элементы для обработки естественного языка:

 

  • Токенизация на уровне слов и знаков;

  • Выделение текста и корней;

  • Формы слов;

  • Лемматизация и стемминг;

  • Синонимы и стоп-слова;

  • Оптимальная сегментация китайского языка.

 Доступность

Средство позволяет использовать данные, размещенные в пределах любой распределенной системы – дата-центрах, отдельных узлах, VPS-серверах и т.д.

Устроенная балансировка нагрузки обеспечивает равномерное ее распределение между всеми узлами распределенной системы, каждый из которых может выполнять функции не только узла данных, но и балансировщика нагрузки в зависимости от ситуации.

Виртуальная синхронная репликация обеспечивает высокую производительность репликации и согласованность данных на всех Ubuntu-серверах распределенной системы, несмотря на все другие факторы. При этом задействованы функции библиотеки Galera.

Хранилище данных

ManticoreSearch позволяет хранить данные хранилища в трех форматах:

  • Сроковый;

  • Столючатый;

  • Docstore.

Срочный формат обеспечивает высокую производительность, однако требует значительных затрат такого важного ресурса, как оперативная память, не подходящая для обработки значительных объемов данных. Это объясняется тем, что атрибуты данных всегда находятся в памяти. Для этого формат можно использовать для данных малого, среднего и умеренно большого размера.

Столбчатый формат является более оптимальным и становится доступным через библиотеку. Columnar Library. Он подходит для работы с данными любого размера, особенно сверхбольшого. Это объясняется тем, что их атрибуты во время работы не хранятся в памяти, и поэтому она более разгружена по сравнению со срочным хранением. Его недостатком является несколько пониженная производительность работы для некоторых видов запросов.

Формат Docstore является специализированным и не требует ресурсов оперативной памяти, поскольку здесь не производится сортировка и фильтрация данных, а только получение их исходного значения.

Оптимизация производительности

Указанный вид оптимизации реализуется на основе применения двух методов:

  • Автоматические вторичные индексы;

  • Оптимизация запросов исходя из результатов оценки данных.

Колоночные структуры данных используются библиотекой Columnar Library в виде PGM-индекса, специфика которого состоит в том, что он организован в виде структуры данных большего уровня по сравнению с организацией «обычных» индексов. Это позволяет значительно повысить производительность обработки запросов и время обновления. 

Оптимизатор запросов при своей работе использует статистические данные для оценки разных планов выполнения запросов. Это позволяет получить наиболее эффективный план выполнения запроса, учитывая такие параметры, как объемы доступных ресурсов, сложность запроса, размер данных и т.д. В конечном счете, это позволяет значительно повысить уровень производительности системы при выполнении запросов.

Интеграция

Manticore Search использует максимум возможностей для интеграции с другими сервисами, технологиями, базами данных и т.д. Приведем некоторые из них:

  • MySQL;

  • ProxySQL;

  • PostgreSQL;

  • Vector.dev;

  • Logstash;

  • Apache Superset;

  • XML та CSV;

  • Grafana.

Выводы

Мы осветили только основные возможности программы, но «за кадром» еще остались достаточно значительные направления, такие, например, как безопасность передачи данных, резервное копирование, используемые типы данных, использование Real-time таблиц и многое другое. Ознакомиться со всеми возможностями Manticore Search и примерами их применения на практике можно с помощью средств интерактивного обучения от разработчиков программы этим адресом.

Кстати, поиск по статьям в блоге FREEhost.UA работает именно благодаря Manticore Search.

Аренда сервера

ДРУГИЕ СТАТЬИ ПО ТЕМЕ

Спасибо, что выбираете FREEhost.UA