blog-post

Manticore: более быстрый аналог Elasticsearch на C++ с 21-летней историей

Пять лет назад Manticore начался как форк открытой версии некогда популярной поисковой системы Sphinx Search . У нас было три разработчика на C++, инженер поддержки, опытный пользователь Sphinx Search / руководитель бэкенд-команды, опытный менеджер, мать пятерых детей, помогающая нам неполный рабочий день, коробка пончиков и тонна ошибок, сбоев и технических долгов. Поэтому мы взяли лопату и другие инструменты для копания и начали работать, чтобы привести этот проект к стандартам индустрии поисковых систем. Не то чтобы Sphinx был невозможен в использовании, но многого не хватало, а существующие функции не были достаточно стабильными или зрелыми. Мы продвинули его практически на предельный уровень. И вот, спустя 5 лет и сотни новых пользователей, мы готовы сказать, что Manticore Search может использоваться как альтернатива Elasticsearch как для полнотекстового поиска, так и (теперь) для аналитики данных.

В этой статье я хочу:

⭐⭐⭐ Ваша звезда на GitHub поддерживает проект и заставляет нас думать, что мы на верном пути!⭐⭐⭐

Немного истории

2001 - только Lucene и Sphinx

Открылся первый магазин Apple, вышли Windows XP, iTunes и Mac OS X.

Гений Андрей Аксенов начал работать над Sphinx Search, за что я хочу ему очень поблагодарить! SOLR и Elasticsearch еще не существовали, но уже был Lucene, на основе которого в дальнейшем были созданы оба. Sphinx Search медленно начал собираться, и за несколько лет стал довольно популярной технологией, оказавшей влияние на тысячи веб-сайтов, использующих его.

2010 - появился Elasticsearch

Retina дисплей, systemd, iPad и Elasticsearch появились.

К этому времени Sphinx уже был популярной поисковой системой для полнотекстового поиска, но концепция Sphinx о том, что “исходные данные должны находиться где-то, и мы просто создаем полнотекстовый индекс, который нужно регулярно перестраивать”, уже не была такой интересной, как концепция Elasticsearch “дайте мне любой JSON по HTTP в реальном времени, я найду узел, на который его поместить”. SOLR не очень хорошо справлялcя с распределением данных, JSON нарастал в популярности, тогда как XML утратил свою привлекательность. Вскоре Elasticsearch начал быстро набирать популярность.

2017 - появился Manticore

  • Elastic прочно утвердился как стандартный инструмент для полнотекстового поиска и аналитики логов и данных.
  • Sphinx прекратил свое развитие как проект с открытым исходным кодом. Разработка, в целом, значительно замедлилась, и на какое-то время была полностью приостановлена.
  • Многие пользователи Sphinx, которые любили его и знали, как с ним работать, были недовольны этим и им было больно мигрировать на Elasticsearch. Кроме того, к тому времени выявились концептуальные недостатки Elasticsearch: чрезмерное потребление памяти, трудности с поддержанием крупных кластеров и некоторые проблемы с производительностью.

В результате недовольные пользователи и некоторые бывшие разработчики Sphinx объединились и создали форк - Manticore Search. Наши главные цели были следующими:

  • Продолжать развивать проект как проект с открытым исходным кодом
  • Смотреть на всё с точки зрения обычного пользователя и добавлять функциональность, необходимую в современных условиях
  • Укрепить сильные стороны Sphinx и устранить очевидные слабости

2022: Еще пять лет спустя

“Хорошо, кто хочет узнать, работает ли это?”

Хорошо, кто хочет узнать, работает ли это?

🙁 Sphinx 2: Основной вариант использования - индексирование данных из внешней базы данных: Sphinx возвращает id, затем по id вам нужно зайти в базу данных и там искать исходный документ. Схему данных можно объявить только в конфигурации.

✅ Manticore: Основной способ работы с ним точно такой же, как в MySQL/Postgres и Elasticsearch: таблица может быть создана на лету, данные могут быть изменены одним/пакетным запросом INSERT/REPLACE/DELETE, данные автоматически упаковываются в фоновом режиме. Нет необходимости искать оригинальный документ во внешнем источнике. Поддерживается автоматическое создание ID.


🙁 Sphinx 2: Нет репликации.

✅ Manticore: Репликация на основе Galera, которую также используют Mariadb и Percona Server.


🙁 Sphinx 2: Запросы могут выполняться через SQL (MySQL wire protocol) или бинарный протокол Sphinx, есть клиенты для нескольких языков программирования.

✅ Manticore: Добавлен интерфейс JSON, очень похожий на Elasticsearch. На основе нового протокола были созданы новые клиенты для PHP, Python, Java, Javascript и Elixir. Клиенты генерируются автоматически, что делает новую функциональность доступной в клиенте напрямую после появления в движке.


🙁 Sphinx 2: Трудно настроить токенизацию текста для большинства языков.

✅ Manticore: Упрощено: сделаны псевдонимы cjk и non_cjk. Токенизация китайского языка на основе ICU. Добавлено много новых стеммеров, включая украинский.


🙁 Sphinx 2: Нет официального docker-образа и поддержки в экосистеме Kubernetes.

✅ Manticore: Создан и поддерживается официальный docker и Helm chart для Kubernetes.


🙁 Sphinx 2: Нет репозиториев APT/YUM/Homebrew.

✅ Manticore: Добавлены репозитории APT/YUM/Homebrew . Ночные сборки также доступны в разработческом репозитории . Каждый новый коммит становится доступным в виде пакета.


🙁 Sphinx 2: Новичкам было трудно понять, что к чему.

✅ Manticore: Создана платформа с интерактивными курсамиhttps://play.manticoresearch.com/


🙁 Sphinx 2: Мало примеров в документации

✅ Manticore: переписана документация, создан собственный движок рендеринга для него - https://manual.manticoresearch.com/ . Он также доступен в простом markdown формате для взносов и легкого редактирования.


🙁 Sphinx 2: Ошибки, которые часто приводят к крахам

✅ Manticore: Крахи теперь редки. Сотни старых ошибок были исправлены.


🙁 Sphinx 2: Запуск поисковых запросов параллельно ограничен

✅ Manticore: Перешли на корутины . Сделали возможным параллелизацию любого поискового запроса, чтобы полностью загружать ЦП и минимизировать время отклика


🙁 Sphinx 2: Не может использоваться без полнотекстовых полей

✅ Manticore: Может использоваться без полнотекстовых полей, как любая другая база данных.


🙁 Sphinx 2: Не полнотекстовые данные хранятся по строкам, их необходимо загружать в память для эффективной работы.

✅ Manticore: Реализована и открыта для использования Библиотека Manticore Columnar , внешняя полностью независимая библиотека, которая позволяет хранить данные в колонках в блоках с поддержкой различных кодеков для эффективного сжатия различных типов данных. Требует почти нулевой памяти. Теперь вы можете обрабатывать гораздо большие объемы данных на одном сервере.


🙁 Sphinx 2: Нет вторичных индексов

✅ Manticore: Вторая важная функция Manticore Columnar Library - это поддержка вторичных индексов на основе современного и инновационного алгоритма PGM .


🙁 Sphinx 2: Нет перколяторных индексов для обратного поиска (когда в индексе есть запросы, а документы используются как входные данные, чтобы выяснить, какие запросы им соответствуют)

✅ Manticore: Добавлены индексы типа перколятор.

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

Что насчет Elasticsearch?

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

Давайте рассмотрим эти нюансы и сравним, насколько Manticore отличается от Elasticsearch сейчас (июль 2022). Будущий читатель, мы уже что-то добавили, ознакомьтесь с нашим Changelog .

Скорость поиска

Производительность, а именно низкое время отклика, важно во многих случаях, особенно в логах и аналитике данных, когда данных много, а запросов не так много. Вы же не хотите ждать 30 секунд вместо двух для ответа, не так ли? Так что вот нюансы: Elasticsearch считается стандартом для управления логами, но, например, он не может эффективно параллелизовать запрос к одному шардированному индексу. А в Elasticsearch по умолчанию только 1 шарда, но на современных серверах ядер ЦП гораздо больше. Делать слишком много шардов также плохо. Все это не облегчает жизнь девопсу, который заботится о времени отклика: необходимо думать о том, на каком оборудовании будет работать Elasticsearch, и вносить изменения соответственно.

Manticore, напротив, способен параллелизовать поисковый запрос на все ядра ЦП без условий и по умолчанию. Более корректно сказать, что Manticore сам решает, когда параллелизовать, а когда нет, но в большинстве случаев он это делает, что позволяет эффективно загружать ядра ЦП (которые часто простаивают в случае логирования и аналитики данных) и значительно сокращать время отклика.

Но даже если вы сделаете столько шардов в Elasticsearch, сколько ядер ЦП на сервере, Manticore оказывается значительно быстрее, а именно: вот тест для 1,7 миллиарда документов, из которого видно, что в целом Manticore в 4 раза быстрее, чем Elasticsearch. Если вас интересуют детали или вы хотите воспроизвести это на своем оборудовании, вот статья https://db-benchmarks.com/test-taxi/ (все примеры ниже также поддерживаются скриптами и ссылками и т.д., вы не найдете никаких пустых разговоров в этом блоге)

Manticore в 4 раза быстрее, чем настроенный Elasticsearch в тесте с 1.7B документов

Вот другой случай: нет больших данных, всего 1,1 миллиона комментариев с Hacker News. В этом тесте Manticore в 15 раз быстрее, чем Elasticsearch. Все детали здесь .

Manticore в 15 раз быстрее, чем Elasticsearch в тесте с 1.1M документов

И еще один тест, показательный для Elasticsearch как стандартного инструмента аналитики логов - 10 миллионов логов Nginx и различные довольно реалистичные аналитические запросы - Manticore здесь в 22 раза быстрее, чем Elasticsearch. Все детали здесь

Manticore в 22 раза быстрее, чем Elasticsearch в тесте логов Nginx с 10M записей

Производительность загрузки данных

Также есть нюансы с скорость записи в Elasticsearch. Например, набор данных для теста с 1,7 миллиарда документов, обсуждаемого выше, был загружен:

  • в Elasticsearch - за 28 часов и 33 минуты
  • в Manticore Search - за 1 час и 8 минут.

Это было на сервере с 32 ядрами и SSD. Объемы данных после индексации примерно одинаковые. Чтобы узнать больше о том, как именно происходила загрузка, читайте здесь .

Кратко:

  • Исходник - csv
  • Logstash использовался для загрузки данных в Elasticsearch с PIPELINE_BATCH_SIZE=10000 и PIPELINE_WORKERS=32 в 32 шардов.
  • Manticore Search использовал встроенный инструмент indexer для загрузки данных в 32 шардов параллельно.

Вот лог загрузки данных:

Elasticsearch:

root@perf3 /perf/test_engines/tests/taxi # ./init                                                                                                                           WARNING: The cpuset variable is not set. Defaulting to a blank string.
Removing elasticsearch_engine ... done
Removing network test_engines_default
Нет остановленных контейнеров
Manticore Search (тип колоночный):
Нет остановленных контейнеров
WARNING: Переменная cpuset не задана. По умолчанию используется пустая строка.
Building manticoresearch
Step 1/4 : FROM manticoresearch/manticore:5.0.0
 ---> 32e4119b4d86
Step 2/4 : RUN apt-get -y update && apt-get -y install wget
 ---> Используется кэш
 ---> 6322fd861e6d
Step 3/4 : RUN wget https://repo.manticoresearch.com/manticore-repo.noarch.deb && dpkg -i manticore-repo.noarch.deb
 ---> Используется кэш
 ---> b70ad32ac505
Step 4/4 : RUN apt-get -y update && apt-get -y install manticore-columnar-lib
 ---> Используется кэш
 ---> 1fcc45e375ba

Успешно построено 1fcc45e375ba
Успешно помечен manticoresearch:test
        Нет необходимости пересобирать
Elasticsearch (тип настроенный):
Нет остановленных контейнеров
        Starting elasticsearch (test=taxi suffix=_tuned docker-compose -f ../../docker-compose.yml --env-file ../../.env up -d elasticsearch)
WARNING: Переменная cpuset не задана. По умолчанию используется пустая строка.
Создание сети "test_engines_default" с драйвером по умолчанию
Создание elasticsearch_engine ... завершено
        Ожидание запуска elasticsearch
        Начало загрузки в Пт Июл  1 04:13:20 PM CEST 2022
2022/07/01 14:13:20 Установка 'pipeline.batch.size' из окружения.
2022/07/01 14:13:20 Установка 'xpack.monitoring.enabled' из окружения.
2022/07/01 14:13:20 Установка 'pipeline.workers' из окружения.
Использование упакованного JDK: /usr/share/logstash/jdk
Отправка логов Logstash в /usr/share/logstash/logs, которые теперь настроены через log4j2.properties
[2022-07-01T14:13:29,080][INFO ][logstash.runner          ] Путь конфигурации Log4j: /usr/share/logstash/config/log4j2.properties
[2022-07-01T14:13:29,084][INFO ][logstash.runner          ] Запуск Logstash {"logstash.version"=>"7.15.2", "jruby.version"=>"jruby 9.2.19.0 (2.5.8) 2021-06-15 55810c552b OpenJDK 64-Bit Server VM 11.0.12+7 на 11.0.12+7 +jit [linux-x86_64]"}
[2022-07-01T14:13:29,087][INFO ][logstash.setting.writabledirectory] Создание каталога {:setting=>"path.queue", :path=>"/usr/share/logstash/data/queue"}
[2022-07-01T14:13:29,088][INFO ][logstash.setting.writabledirectory] Создание каталога {:setting=>"path.dead_letter_queue", :path=>"/usr/share/logstash/data/dead_letter_queue"}
[2022-07-01T14:13:29,240][INFO ][logstash.agent           ] Файл постоянного UUID не найден. Генерация нового UUID {:uuid=>"5ae0d5d3-2824-4ba7-bcc0-a25e899223b0", :path=>"/usr/share/logstash/data/uuid"}
[2022-07-01T14:13:29,534][INFO ][logstash.agent           ] Успешно запущен API-узел Logstash {:port=>9600}
[2022-07-01T14:13:29,973][INFO ][org.reflections.Reflections] Отсканировать 1 URL заняло 66 мс, произведено 120 ключей и 417 значений
[2022-07-01T14:13:30,192][WARN ][deprecation.logstash.codecs.plain] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем мажорном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно объявите свой желаемый режим совместимости ECS.
[2022-07-01T14:13:30,201][WARN ][deprecation.logstash.inputs.file] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем мажорном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно объявите свой желаемый режим совместимости ECS.
[2022-07-01T14:13:30,223][WARN ][deprecation.logstash.filters.csv] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем мажорном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно объявите свой желаемый режим совместимости ECS.
[2022-07-01T14:13:30,270][WARN ][deprecation.logstash.codecs.plain] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем мажорном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно объявите свой желаемый режим совместимости ECS.
[2022-07-01T14:13:30,283][WARN ][deprecation.logstash.outputs.elasticsearch] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем мажорном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно объявите свой желаемый режим совместимости ECS.
[2022-07-01T14:13:30,292][INFO ][logstash.outputs.elasticsearch][main] Новый выход Elasticsearch {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["//127.0.0.1:9200"]}
[2022-07-01T14:13:30,412][INFO ][logstash.outputs.elasticsearch][main] URL-адреса пула Elasticsearch обновлены {:changes=>{:removed=>[], :added=>[http://127.0.0.1:9200/]}}
[2022-07-01T14:13:30,448][WARN ][logstash.outputs.elasticsearch][main] Попытка восстановить соединение с неработающим экземпляром ES, но возникла ошибка {:url=>"http://127.0.0.1:9200/", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :message=>"Elasticsearch недоступен: [http://127.0.0.1:9200/][Manticore::ClientProtocolException] 127.0.0.1:9200 не ответил"}
[2022-07-01T14:13:30,460][INFO ][logstash.javapipeline    ][main] Запуск конвейера {:pipeline_id=>"main", "pipeline.workers"=>32, "pipeline.batch.size"=>10000, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>320000, "pipeline.sources"=>["/usr/share/logstash/pipeline/logstash.conf"], :thread=>"#<Thread:0x3cf654c4@/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:125 run>"}
[2022-07-01T14:13:30,461][WARN ][logstash.javapipeline    ][main] ВНИМАНИЕ: Рекомендуемое максимальное количество событий в ожидании превышено! Logstash будет работать с до 320000 событий в памяти в вашей текущей конфигурации. Если размер ваших сообщений велик, это может вызвать нестабильность с размером кучи по умолчанию. Пожалуйста, рассмотрите возможность установки нестандартного размера кучи, изменения размера партии (в настоящее время 10000) или изменения количества рабочих потоков конвейера (в настоящее время 32) {:pipeline_id=>"main", :thread=>"#<Thread:0x3cf654c4@/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:125 run>"}
[2022-07-01T14:13:31,275][INFO ][logstash.javapipeline    ][main] Время инициализации выполнения Java конвейера {"seconds"=>0.81}
[2022-07-01T14:13:31,286][INFO ][logstash.javapipeline    ][main] Конвейер запущен {"pipeline.id"=>"main"}
[2022-07-01T14:13:31,290][INFO ][filewatch.observingread  ][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] НАЧАЛО, создание Discoverer, Watch с файлами и коллекциями sincedb
[2022-07-01T14:13:31,305][INFO ][logstash.agent           ] Конвейеры запущены {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2022-07-01T14:13:31,336][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T14:13:35,455][WARN ][logstash.outputs.elasticsearch] Попытка восстановить соединение с мертвой ES инстанцией, но возникла ошибка {:url=>"http://127.0.0.1:9200/", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :message=>"Elasticsearch недоступен: [http://127.0.0.1:9200/][Manticore::SocketException] Соединение сброшено"}
[2022-07-01T14:13:40,811][WARN ][logstash.outputs.elasticsearch] Восстановлено соединение с ES инстанцией {:url=>"http://127.0.0.1:9200/"}
[2022-07-01T14:13:40,945][INFO ][logstash.outputs.elasticsearch] Определена версия Elasticsearch (7.15.2) {:es_version=>7}
[2022-07-01T14:13:40,946][WARN ][logstash.outputs.elasticsearch] Обнаружен кластер 6.x и выше: поле события `type` не будет использоваться для определения _type документа {:es_version=>7}
[2022-07-01T14:13:44,465][INFO ][logstash.outputs.elasticsearch] Использование шаблона сопоставления из {:path=>"/template.json"}
[2022-07-01T14:13:44,483][INFO ][logstash.outputs.elasticsearch] Установка шаблона Elasticsearch {:name=>"logstash"}

[2022-07-01T14:25:18,564][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T14:36:51,663][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T14:47:48,196][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T14:58:24,202][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T15:09:34,405][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T15:21:00,702][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T15:32:29,427][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T15:43:59,768][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T15:55:24,851][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущих основных выпусках Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T16:06:51,722][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем основном выпуске Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T16:18:22,191][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем основном выпуске Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T16:29:54,860][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T16:41:22,213][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T16:52:53,302][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T17:04:26,699][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T17:16:05,588][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T17:27:40,146][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T17:39:11,727][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T17:50:43,353][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T18:02:13,095][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpectedные изменения при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T18:13:59,913][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T18:25:38,646][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpectedные изменения при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T18:37:17,263][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T18:48:55,751][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpectedные изменения при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T19:00:51,379][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpectedные изменения при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T19:13:09,935][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpectedные изменения при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T19:25:16,811][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию для `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpectedные изменения при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T19:37:15,727][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T19:48:59,923][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T20:00:46,024][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T20:12:27,410][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T20:24:06,169][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T20:35:44,409][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T20:47:16,165][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T20:58:55,137][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T21:10:32,131][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T21:22:13,640][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T21:33:58,533][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T21:45:30,972][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T21:57:09,853][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T22:08:51,288][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T22:20:38,762][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T22:32:13,204][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T22:43:49,824][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T22:55:52,191][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T23:07:49,883][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T23:20:17,374][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T23:32:19,973][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T23:44:15,294][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-01T23:55:47,100][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T00:07:11,897][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T00:18:40,233][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T00:30:32,451][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T00:42:16,614][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T00:53:53,569][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T01:05:28,623][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T01:17:13,903][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T01:29:10,660][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpected изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T01:41:00,455][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежатьUnexpected изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T01:52:42,559][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T02:04:14,124][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T02:16:04,127][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T02:27:51,732][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T02:39:56,423][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T02:51:54,136][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T03:03:46,056][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T03:15:54,520][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T03:26:58,089][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T03:38:05,988][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T03:48:58,174][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T03:59:49,479][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T04:10:37,353][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T04:21:19,909][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T04:31:52,571][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T04:42:25,201][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, пожалуйста, явно укажите желаемый режим совместимости ECS.
[2022-07-02T04:53:00,526][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T05:03:39,891][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T05:14:19,439][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T05:24:59,133][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T05:35:34,450][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T05:46:12,227][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T05:56:52,682][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T06:07:30,958][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T06:18:08,658][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T06:28:49,737][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T06:39:34,836][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] Полагание на значение по умолчанию `pipeline.ecs_compatibility`, которое может измениться в будущем крупном релизе Logstash. Чтобы избежать неожиданных изменений при обновлении Logstash, явно укажите желаемый режим совместимости ECS.
[2022-07-02T06:46:35,043][INFO ][logstash.javapipeline    ][main] Конвейер завершен {"pipeline.id"=>"main"}
[2022-07-02T06:46:35,202][INFO ][logstash.pipelinesregistry] Успешно удален конвейер из реестра {:pipeline_id=>:main}
[2022-07-02T06:46:35,211][INFO ][logstash.runner          ] Logstash завершил работу.
        Завершено загрузка в субботу, 2 июля 08:46:36 AM CEST 2022

Manticore Search:

root@perf3 /perf/test_engines/tests/taxi # ./init
WARNING: Переменная cpuset не установлена. Устанавливается в пустую строку по умолчанию.
Остановка elasticsearch_engine ... выполнено
Удаление elasticsearch_engine ... выполнено
Удаление сети test_engines_default
Нет остановленных контейнеров
Manticore Search (тип колонный):
Нет остановленных контейнеров
WARNING: Переменная cpuset не установлена. Устанавливается в пустую строку по умолчанию.
Сборка manticoresearch
Шаг 1/4 : FROM manticoresearch/manticore:5.0.0
 ---> 32e4119b4d86
Шаг 2/4 : RUN apt-get -y update && apt-get -y install wget
 ---> Используется кэш
 ---> 6322fd861e6d
Шаг 3/4 : RUN wget https://repo.manticoresearch.com/manticore-repo.noarch.deb && dpkg -i manticore-repo.noarch.deb
 ---> Используется кэш
 ---> b70ad32ac505
Шаг 4/4 : RUN apt-get -y update && apt-get -y install manticore-columnar-lib
 ---> Используется кэш
 ---> 1fcc45e375ba

Успешно построен 1fcc45e375ba
Успешно помечен manticoresearch:test
        Начало загрузки в воскресенье, 3 июля 07:26:48 PM CEST 2022
WARNING: Переменная cpuset не установлена. Устанавливается в пустую строку по умолчанию.
Создание сети "test_engines_default" с драйвером по умолчанию
Создание test_engines_manticoresearch_run ... выполнено
Manticore 5.0.0 b4cb7da02@220518 релиз (колонный 1.15.2 b0bcafb@220518) (вторичный 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используя конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексирование индекса 'taxi2'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi5'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi6'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi9'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi15'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi1'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi12'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi14'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi8'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi7'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi13'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi10'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi3'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi4'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi11'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

используется конфигурационный файл '/etc/manticoresearch/manticore.conf'...
индексация индекса 'taxi16'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi17'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi18'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi19'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi20'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi21'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi22'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi23'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi24'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi25'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi26'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi27'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi28'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi29'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi30'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi31'...
Manticore 5.0.0 b4cb7da02@220518 release (columnar 1.15.2 b0bcafb@220518) (secondary 1.15.2 b0bcafb@220518)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2022, Manticore Software LTD (https://manticoresearch.com)

using config file '/etc/manticoresearch/manticore.conf'...
indexing index 'taxi32'...
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 80.0 MB
collected 40000000 docs, 814.9 MB
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
creating lookup: 40000.0 Kdocs, 100.0% done
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2116.941 sec, 37790 bytes/sec, 18895.18 docs/sec
total 530 reads, 3.914 sec, 1916.2 kb/call avg, 7.3 msec/call avg
total 8347 writes, 5.855 sec, 406.9 kb/call avg, 0.7 msec/call avg
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2118.297 sec, 37766 bytes/sec, 18883.09 docs/sec
total 530 reads, 3.850 sec, 1916.2 kb/call avg, 7.2 msec/call avg
total 8371 writes, 5.813 sec, 406.5 kb/call avg, 0.6 msec/call avg
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2119.772 sec, 37739 bytes/sec, 18869.94 docs/sec
total 530 reads, 4.239 sec, 1916.2 kb/call avg, 7.9 msec/call avg
total 8742 writes, 5.988 sec, 399.9 kb/call avg, 0.6 msec/call avg
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2121.282 sec, 37713 bytes/sec, 18856.51 docs/sec
total 530 reads, 3.697 sec, 1916.2 kb/call avg, 6.9 msec/call avg
total 8941 writes, 3.312 sec, 396.6 kb/call avg, 0.3 msec/call avg
sorted 80.0 Mhits, 100.0% done
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2124.098 sec, 37663 bytes/sec, 18831.52 docs/sec
total 530 reads, 3.686 sec, 1916.2 kb/call avg, 6.9 msec/call avg
total 8972 writes, 3.289 sec, 396.1 kb/call avg, 0.3 msec/call avg
total 40000000 docs, 80000000 bytes
total 2124.121 sec, 37662 bytes/sec, 18831.31 docs/sec
total 530 reads, 3.497 sec, 1916.2 kb/call avg, 6.5 msec/call avg
total 8916 writes, 3.380 sec, 397.0 kb/call avg, 0.3 msec/call avg
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2130.926 sec, 37542 bytes/sec, 18771.17 docs/sec
total 530 reads, 7.057 sec, 1916.2 kb/call avg, 13.3 msec/call avg
total 9074 writes, 3.303 sec, 394.5 kb/call avg, 0.3 msec/call avg
sorted 80.0 Mhits, 100.0% done
total 40000000 docs, 80000000 bytes
total 2131.300 sec, 37535 bytes/sec, 18767.88 docs/sec
total 530 reads, 7.140 sec, 1916.2 kb/call avg, 13.4 msec/call avg
total 9005 writes, 5.885 sec, 395.6 kb/call avg, 0.6 msec/call avg
collected 52817071 docs, 105.6 MB
creating lookup: 40000.0 Kdocs, 100.0% done
sorted 163.8 Mhits, 100.0% done
total 40000000 docs, 814943250 bytes
total 2387.474 sec, 341341 bytes/sec, 16754.10 docs/sec
total 748 reads, 5.297 sec, 1846.8 kb/call avg, 7.0 msec/call avg
total 15726 writes, 8.017 sec, 363.3 kb/call avg, 0.5 msec/call avg
creating lookup: 52817.0 Kdocs, 100.0% done
sorted 105.6 Mhits, 100.0% done
total 52817071 docs, 105634142 bytes
total 2752.827 sec, 38372 bytes/sec, 19186.48 docs/sec
total 947 reads, 3.342 sec, 1416.1 kb/call avg, 3.5 msec/call avg
total 11846 writes, 6.872 sec, 396.2 kb/call avg, 0.5 msec/call avg
collected 60000000 docs, 1663.3 MB
collected 60000000 docs, 1760.9 MB
collected 60000000 docs, 2526.3 MB
collected 60000000 docs, 2526.9 MB
collected 60000000 docs, 2521.6 MB
collected 60000000 docs, 2527.2 MB
collected 60000000 docs, 2519.4 MB
collected 60000000 docs, 2528.9 MB
collected 60000000 docs, 2550.7 MB
collected 60000000 docs, 2530.5 MB
collected 60000000 docs, 2535.5 MB
collected 60000000 docs, 2521.5 MB
collected 60000000 docs, 2524.7 MB
collected 60000000 docs, 2530.4 MB
collected 60000000 docs, 2541.5 MB
collected 60000000 docs, 2523.3 MB
collected 60000000 docs, 2545.0 MB
collected 60000000 docs, 2523.0 MB
collected 60000000 docs, 2529.6 MB
collected 60000000 docs, 2533.7 MB
collected 60000000 docs, 2533.7 MB
collected 60000000 docs, 2533.0 MB
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
sorted 296.5 Mhits, 100.0% done
total 60000000 docs, 1663373694 bytes
total 3755.841 sec, 442876 bytes/sec, 15975.11 docs/sec
total 1890 reads, 6.795 sec, 1210.9 kb/call avg, 3.5 msec/call avg
total 27244 writes, 8.377 sec, 360.1 kb/call avg, 0.3 msec/call avg
sorted 286.6 Mhits, 100.0% done
total 60000000 docs, 1760925599 bytes
total 3781.297 sec, 465693 bytes/sec, 15867.56 docs/sec
total 1861 reads, 5.982 sec, 1223.1 kb/call avg, 3.2 msec/call avg
total 32940 writes, 9.832 sec, 338.7 kb/call avg, 0.2 msec/call avg
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
creating lookup: 60000.0 Kdocs, 100.0% done
sorted 394.0 Mhits, 100.0% done
total 60000000 docs, 2526368830 bytes
total 4003.871 sec, 630981 bytes/sec, 14985.49 docs/sec
total 2506 reads, 15.430 sec, 1085.0 kb/call avg, 6.1 msec/call avg
total 36437 writes, 10.878 sec, 346.9 kb/call avg, 0.2 msec/call avg
sorted 398.1 Mhits, 100.0% done
total 60000000 docs, 2550752406 bytes
total 4030.026 sec, 632936 bytes/sec, 14888.23 docs/sec
total 2608 reads, 11.693 sec, 1047.5 kb/call avg, 4.4 msec/call avg
total 35896 writes, 10.655 sec, 349.2 kb/call avg, 0.2 msec/call avg
sorted 394.5 Mhits, 100.0% done
total 60000000 docs, 2526941479 bytes
total 4039.151 sec, 625611 bytes/sec, 14854.60 docs/sec
total 2508 reads, 10.428 sec, 1084.2 kb/call avg, 4.1 msec/call avg
total 36716 writes, 10.820 sec, 345.5 kb/call avg, 0.2 msec/call avg
sorted 395.6 Mhits, 100.0% done
total 60000000 docs, 2533004314 bytes
total 4040.958 sec, 626832 bytes/sec, 14847.96 docs/sec
total 2599 reads, 10.602 sec, 1047.5 kb/call avg, 4.0 msec/call avg
total 36421 writes, 13.513 sec, 346.1 kb/call avg, 0.3 msec/call avg
sorted 395.0 Mhits, 100.0% done
total 60000000 docs, 2528909232 bytes
total 4042.235 sec, 625621 bytes/sec, 14843.27 docs/sec
total 2510 reads, 12.530 sec, 1084.5 kb/call avg, 4.9 msec/call avg
total 35811 writes, 13.278 sec, 348.4 kb/call avg, 0.3 msec/call avg
sorted 395.1 Mhits, 100.0% done
total 60000000 docs, 2530457184 bytes
total 4043.242 sec, 625848 bytes/sec, 14839.57 docs/sec
total 2510 reads, 10.881 sec, 1084.3 kb/call avg, 4.3 msec/call avg
total 36415 writes, 13.446 sec, 346.8 kb/call avg, 0.3 msec/call avg
sorted 394.6 Mhits, 100.0% done
total 60000000 docs, 2519499069 bytes
total 4043.766 sec, 623057 bytes/sec, 14837.65 docs/sec
total 2508 reads, 11.577 sec, 1082.6 kb/call avg, 4.6 msec/call avg
total 35936 writes, 10.685 sec, 348.6 kb/call avg, 0.2 msec/call avg
sorted 396.3 Mhits, 100.0% done
total 60000000 docs, 2535539179 bytes
total 4045.012 sec, 626831 bytes/sec, 14833.08 docs/sec
total 2601 reads, 10.332 sec, 1047.6 kb/call avg, 3.9 msec/call avg
total 36545 writes, 10.750 sec, 345.9 kb/call avg, 0.2 msec/call avg
sorted 394.8 Mhits, 100.0% done
total 60000000 docs, 2527225224 bytes
total 4045.299 sec, 624731 bytes/sec, 14832.03 docs/sec
total 2509 reads, 10.903 sec, 1084.0 kb/call avg, 4.3 msec/call avg
total 35913 writes, 10.725 sec, 348.2 kb/call avg, 0.2 msec/call avg
sorted 394.9 Mhits, 100.0% done
total 60000000 docs, 2523385127 bytes
total 4045.569 sec, 623740 bytes/sec, 14831.03 docs/sec
total 2509 reads, 7.503 sec, 1081.6 kb/call avg, 2.9 msec/call avg
total 36191 writes, 10.624 sec, 347.4 kb/call avg, 0.2 msec/call avg
sorted 394.9 Mhits, 100.0% done
total 60000000 docs, 2524711893 bytes
total 4046.779 sec, 623881 bytes/sec, 14826.60 docs/sec
total 2509 reads, 10.721 sec, 1082.9 kb/call avg, 4.2 msec/call avg
total 36326 writes, 10.709 sec, 346.5 kb/call avg, 0.2 msec/call avg
sorted 395.1 Mhits, 100.0% done
total 60000000 docs, 2529673951 bytes
total 4048.110 sec, 624902 bytes/sec, 14821.72 docs/sec
total 2510 reads, 9.881 sec, 1083.9 kb/call avg, 3.9 msec/call avg
total 36528 writes, 10.929 sec, 346.3 kb/call avg, 0.2 msec/call avg
sorted 394.8 Mhits, 100.0% done
total 60000000 docs, 2530548084 bytes
total 4048.832 sec, 625006 bytes/sec, 14819.08 docs/sec
total 2509 reads, 11.065 sec, 1085.1 kb/call avg, 4.4 msec/call avg
total 36033 writes, 13.487 sec, 348.0 kb/call avg, 0.3 msec/call avg
sorted 396.6 Mhits, 100.0% done
total 60000000 docs, 2541500170 bytes
total 4049.268 sec, 627644 bytes/sec, 14817.49 docs/sec
total 2603 reads, 9.141 sec, 1047.9 kb/call avg, 3.5 msec/call avg
total 35976 writes, 10.642 sec, 348.3 kb/call avg, 0.2 msec/call avg
sorted 397.1 Mhits, 100.0% done
total 60000000 docs, 2545075714 bytes
total 4049.585 sec, 628478 bytes/sec, 14816.33 docs/sec
total 2605 reads, 10.802 sec, 1048.6 kb/call avg, 4.1 msec/call avg
total 36079 writes, 10.748 sec, 348.3 kb/call avg, 0.2 msec/call avg
sorted 393.8 Mhits, 100.0% done
total 60000000 docs, 2521600380 bytes
total 4050.387 sec, 622557 bytes/sec, 14813.39 docs/sec
total 2505 reads, 8.642 sec, 1084.8 kb/call avg, 3.4 msec/call avg
total 37029 writes, 10.997 sec, 345.8 kb/call avg, 0.2 msec/call avg
sorted 394.4 Mhits, 100.0% done
total 60000000 docs, 2521590009 bytes
total 4050.635 sec, 622517 bytes/sec, 14812.48 docs/sec
total 2507 reads, 9.764 sec, 1084.3 kb/call avg, 3.8 msec/call avg
total 36405 writes, 10.763 sec, 346.0 kb/call avg, 0.2 msec/call avg
sorted 395.5 Mhits, 100.0% done
total 60000000 docs, 2533750585 bytes
total 4052.470 sec, 625235 bytes/sec, 14805.78 docs/sec
total 2598 reads, 8.921 sec, 1046.4 kb/call avg, 3.4 msec/call avg
total 35573 writes, 10.726 sec, 350.0 kb/call avg, 0.3 msec/call avg
sorted 394.6 Mhits, 100.0% done
total 60000000 docs, 2523017966 bytes
total 4054.196 sec, 622322 bytes/sec, 14799.48 docs/sec
total 2508 reads, 9.315 sec, 1083.1 kb/call avg, 3.7 msec/call avg
total 36474 writes, 10.862 sec, 346.0 kb/call avg, 0.2 msec/call avg
sorted 395.9 Mhits, 100.0% done
total 60000000 docs, 2533751399 bytes
total 4058.118 sec, 624366 bytes/sec, 14785.17 docs/sec
total 2600 reads, 9.010 sec, 1046.6 kb/call avg, 3.4 msec/call avg
total 35132 writes, 13.446 sec, 351.9 kb/call avg, 0.3 msec/call avg
        Finished loading at Sun Jul  3 08:34:27 PM CEST 2022

It turns out that in this test Manticore is 25 times faster in terms of data ingestion. Maybe I don’t know how to bake Logstash and Elasticsearch, but the import of the same dataset (but of a slightly smaller size) took Mark Litwintschik even longer - 4 days and 16 hours.

Maybe the problem is in Logstash, not Elasticsearch? Let’s go find out by writing directly to Elasticsearch. The index scheme is as follows:

"properties": {
  "name": {"type": "text"},
  "email": {"type": "keyword"},
  "description": {"type": "text"},
  "age": {"type": "integer"},
  "active": {"type": "integer"}
}

Starting Manticore and Elasticsearch using their official docker images like this:

docker run --name manticore --rm -p 9308:9308 -v $(pwd)/manticore_idx:/var/lib/manticore manticoresearch/manticore:5.0.2

docker run --name elasticsearch --rm -p 9200:9200 -e discovery.type=single-node -e xpack.security.enabled=false -v $(pwd)/es_idx/:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:8.3.2

Let’s now put 50 million random docs like this to both:

{
  1,
  84,
  "Авт corporis qui necessitatibus architecto est. Harum laboriosam temporibus praesentium quis et nulla. Consequuntur quia neque et repellat.",
  "[email protected]",
  "Keely Doyle Sr."
}

Мы будем использовать простые php-скрипты с размером пачки 10,000 и параллелизмом 32 (на сервере 16 физических ядер CPU и гиперпоточность).

root@perf3 ~ # php load_elasticsearch.php 10000 32 1000000 50
подготовка...
найдено в кэше
запрос...
завершено вставление
Общее время: 178.24096798897
280519 документов в секунду

root@perf3 ~ # php load_manticore.php 10000 32 1000000 50
подготовка...
найдено в кэше
запрос...
завершено вставление
Общее время: 215.7572619915
231742 документов в секунду

Хорошо, теперь Elastic стал на 21% быстрее, но снова есть интересная нюанс: Elasticsearch по умолчанию буферизует новые документы в течение одной секунды, что означает, последняя партия документов не будет доступна для поиска сразу. Это нормальная ситуация во многих случаях, но чтобы сделать все справедливо, давайте сделаем /bulk?refresh=1 в Elasticsearch и посмотрим, что это даст:

root@perf3 ~ # php load_elasticsearch.php 10000 32 1000000 50
подготовка...
найдено в кэше
запрос...
завершено вставление
Общее время: 307.47588610649
162614 документов в секунду

В этом случае Manticore снова быстрее на 43%.

Если мы хотим протестировать максимальную производительность, мы можем:

  • Использовать шардинг как в Elasticsearch, так и в Manticore
  • Позволить Elasticsearch буферизовать входящие документы до максимума
  • Использовать интерфейс MySQL для передачи данных в Manticore Search (немного быстрее)
  • Отключить binlog в Manticore Search (к сожалению, вы не можете сделать это в Elasticsearch)

Вот что это даст:

Manticore:

// docker run -p9306:9306 --name manticore --rm -v $(pwd)/manticore_idx:/var/lib/manticore -e searchd_binlog_path= manticoresearch/manticore:5.0.2

root@perf3 ~ # php load_manticore_sharded.php 10000 32 1000000 32 50
подготовка...
найдено в кэше /tmp/bc9719fb0d26e18fc53d6d5aaaf847b4_10000_1000000
запрос...
завершено вставление
Общее время: 55.874907970428
894856 документов в секунду

Elasticsearch:

root@perf3 ~ # php load_elasticsearch_sharded.php 10000 32 1000000 32 50
подготовка...
найдено в кэше
запрос...
завершено вставление
Общее время: 119.96515393257
416788 документов в секунду

Но помните нюанс: вам нужно потратить еще 13 секунд, чтобы сделать документы доступными для поиска:

root@perf3 ~ # curl -s -X POST "localhost:9200/_sql?format=json&pretty" -H 'Content-Type: application/json' -d'{"query": "select count(*) from user"}'                 {
  "columns" : [
    {
      "name" : "count(*)",
      "type" : "long"
    }
  ],
  "rows" : [
    [
      0
    ]
  ]
}

root@perf3 ~ # time curl -XPOST "localhost:9200/user/_refresh"
{"_shards":{"total":64,"successful":32,"failed":0}}
реальное время    0m13.505s
пользовательское время    0m0.003s
системное время     0m0.000s

root@perf3 ~ # curl -s -X POST "localhost:9200/_sql?format=json&pretty" -H 'Content-Type: application/json' -d'{"query": "select count(*) from user"}'
{
  "columns" : [
    {
      "name" : "count(*)",
      "type" : "long"
    }
  ],
  "rows" : [
    [
      50000000
    ]
  ]
}

В целом, Manticore в 2 раза быстрее, чем Elasticsearch по производительности загрузки данных. И данные доступны для поиска сразу после загрузки пакета, а не через 2 минуты. Скрипты, использованные для этого теста, можно найти здесь .

На чем это написано

  • Elasticsearch сам написан на Java, и библиотека Lucene, от которой он зависит, также написана на Java.
  • Manticore написан на C++. Что это дает:
    • Код сложнее писать, да.
    • Но мы ближе к оборудованию, поэтому можем писать более оптимизированный код.
    • Нет необходимости думать о размере кучи JVM.
    • Существует нет риска, что сборщик мусора JVM начнет gc в неподходящий момент, что может сильно повлиять на производительность.
    • Нет необходимости запускать тяжелую JVM на старте, что занимает много времени.

Открытый исходный код

  • Elasticsearch больше не является чисто открытым исходным кодом. Лицензия была изменена с Apache 2 на Elastic License в 2021 году.
  • Manticore является чисто открытым исходным кодом с лицензией GPLv2 для демона и лицензией Apache 2 для колоночной библиотеки .

JSON против SQL

Оба Elasticsearch и Manticore могут работать и с SQL, и с JSON, но разница в следующем:

  • Elasticsearch по умолчанию основан на JSON, тогда как Manticore первоочередной SQL. Что нам нравится в SQL, так это то, что используя его, многие вещи намного проще сделать на этапе создания концепции. Например, вот 2 запроса, которые делают одно и то же. Хотите ли вы потратить минуту на подсчет { и } скобок или… ?

JSON vs SQL

  • SQL сильно ограничен в Elasticsearch, например:
    • вы не можете делать SELECT id
    • вы не можете INSERT/UPDATE/DELETE
    • вы не можете выполнять командные операции (создавать кластер, смотреть статус и т.д.).
  • В Manticore все наоборот:
    • Вы можете делать все через SQL
    • JSON охватывает только базовую функциональность: запросы на поиск и изменение данных.

Время запуска

В некоторых случаях вам нужно иметь возможность быстро запустить сервис. Например, в IoT (Интернет вещей) или некоторых сценариях ETL.

Время запуска

Почти в реальном времени против реального времени

Как уже упоминалось, по умолчанию когда вы отправляете данные в Elasticsearch, они становятся доступными для поиска только через секунду. Это можно настроить, но тогда скорость загрузки значительно замедлится, как вы видели выше.

Manticore всегда работает в реальном времени.

Полнотекстовый поиск

Вероятно, стоит написать еще одну статью, чтобы все это объяснить. Короче говоря: как Manticore, так и Elasticsearch хороши с точки зрения полнотекстового поиска, у них много общего, но также есть много различий. Согласно этим объективным тестам (что важно при оценке релевантности) на почти стандартных настройках Manticore может обеспечить более высокую релевантность, чем Elasticsearch. Вот соответствующий pull request в BEIR (бенчмарк информационного поиска).

Агрегации

Как Manticore, так и Elasticsearch предоставляют богатую функциональность агрегации. Вы, вероятно, знаете, что может делать Elasticsearch, вот что может сделать Manticore для вашего сравнения:

  • Просто группировка: SELECT release_year FROM films GROUP BY release_year LIMIT 5
  • Получить агрегаты: SELECT release_year, AVG(rental_rate) FROM films GROUP BY release_year LIMIT 5
  • Сортировка ведер: SELECT release_year, count(*) from films GROUP BY release_year ORDER BY release_year asc limit 5
  • Группировка по нескольким полям одновременно: SELECT category_id, release_year, count(*) FROM films GROUP BY category_id, release_year ORDER BY category_id ASC, release_year ASC
  • Получить N записей из каждого ведра, а не 1: SELECT release_year, title FROM films GROUP 2 BY release_year ORDER BY release_year DESC LIMIT 6
  • Сортировка внутри ведра: SELECT release_year, title, rental_rate FROM films GROUP BY release_year WITHIN GROUP ORDER BY rental_rate DESC ORDER BY release_year DESC LIMIT 5
  • Фильтрация ведер: SELECT release_year, avg(rental_rate) avg FROM films GROUP BY release_year HAVING avg > 3
  • Используйте GROUPBY(), чтобы получить доступ к ключу агрегации: SELECT release_year, count(*) FROM films GROUP BY release_year HAVING GROUPBY() IN (2000, 2002)
  • Группировка по значению массива: SELECT groupby() gb, count(*) FROM shoes GROUP BY sizes ORDER BY gb asc
  • Группировка по узлу json: SELECT groupby() color, count(*) from products GROUP BY meta.color
  • Получить количество уникальных значений: SELECT major, count(*), count(distinct age) FROM students GROUP BY major
  • Используйте GROUP_CONCAT(): SELECT major, count(*), count(distinct age), group_concat(age) FROM students GROUP BY major
  • Используйте FACET после вашего основного запроса, и он сгруппирует результаты основного запроса: SELECT *, price AS aprice FROM facetdemo LIMIT 10 FACET price LIMIT 10 FACET brand_id LIMIT 5
  • Фасетирование по агрегации над другим атрибутом: SELECT * FROM facetdemo FACET brand_name by brand_id
  • Фасетирование без дубликатов: SELECT brand_name, property FROM facetdemo FACET brand_name distinct property
  • Фасетирование по выражениям: SELECT * FROM facetdemo FACET INTERVAL(price,200,400,600,800) AS price_range
  • Фасетирование по многоуровневой группировке: SELECT *,INTERVAL(price,200,400,600,800) AS price_range FROM facetdemo FACET price_range AS price_range, brand_name ORDER BY brand_name asc;
  • Сортировка результатов фасета:
    SELECT * FROM facetdemo
    FACET brand_name BY brand_id ORDER BY FACET() ASC
    FACET brand_name BY brand_id ORDER BY brand_name ASC
    FACET brand_name BY brand_id ORDER BY COUNT(*) DESC
    
  • Пагинация в результатах фасетов:
    SELECT * FROM facetdemo
    FACET brand_name BY brand_id ORDER BY FACET() ASC  LIMIT 0,1
    FACET brand_name BY brand_id ORDER BY brand_name ASC LIMIT 2,4
    FACET brand_name BY brand_id ORDER BY COUNT(*) DESC LIMIT 4;
    

Безсхемный

Elasticsearch знаменит тем, что в него можно писать что угодно. С Manticore Search вам нужно предварительно создать схему. Многие эксперты Elasticsearch рекомендуют использовать статическое отображение, например, https://octoperf.com/blog/2018/09/21/optimizing-elasticsearch/#index-mapping :

Одно из первых, что вы можете сделать, это определить отображение индексов статически.

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

Интеграции

  • Как Elasticsearch, так и Manticore имеют клиенты для разных языков программирования.
  • Поддержка протокола MySQL:
    • Важным преимуществом Manticore является возможность использовать MySQL-клиенты для работы с сервером. Даже если для какого-то языка нет официального клиента Manticore, есть определенно MySQL-клиент, который вы можете использовать. Использование командной строки MySQL-клиента для администрирования более удобно, чем использование curl, потому что команды намного компактнее, и сессия поддерживается.
    • Поддержка протокола MySQL также позволила поддерживать MySQL/Mariadb FEDERATED движок для тесной интеграции между ними и Manticore.
    • Кроме того, Manticore можно использовать через ProxySQL .
  • HTTP JSON API поддерживается и в Elasticsearch, и в Manticore.
  • Logstash, Kibana: Manticore поддерживает Kibana, но это в процессе разработки и находится на бета-стадии. Мы скоро доведем эти интеграции до ума. Вот как вы можете попробовать Manticore с Kibana:
# загрузите бета-версию manticore с поддержкой Kibana, смотрите https://repo.manticoresearch.com/repository/kibana_beta/ для различных версий ОС
wget https://repo.manticoresearch.com/repository/kibana_beta/ubuntu/jammy.zip

# распакуйте архив
unzip jammy.zip

# установите пакеты
dpkg -i build/*

# переключите Manticore в режим, поддерживающий Kibana
mysql -P9306 -h0 -e "set global log_management = 0; set global log_management = 1;"

# запустите Kibana, указывая на экземпляр Manticore Search, слушающий на порту 9308
docker run -d --name kibana --rm -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9308 -p 5601:5601 --network=host docker.elastic.co/kibana/kibana:7.4.2

# установите php и composer, загрузите скрипт загрузки и поместите в Manticore 1 миллион документов с фейковыми пользователями
apt install php composer php8.1-mysql
wget https://gist.githubusercontent.com/sanikolaev/13bf61bbe6c39350bded7c577216435f/raw/8d8029c0d99998c901973fd9ac66a6fb920deda7/load_manticore_sharded.php
composer require fakerphp/faker
php load_manticore_sharded.php 10000 16 1000000 16 1

# не забудьте создать шаблон индекса в Kibana (user*)

# запустите `docker stop kibana`, чтобы остановить сервер Kibana

Если всё прошло хорошо, вы должны увидеть:

Kibana с Manticore Search на сервере

Репликация

  • Как Elasticsearch, так и Manticore Search используют синхронную репликацию. В Manticore мы решили не изобретать велосипед и сделали интеграцию с библиотекой Galera , которая также используется в MariaDB и Percona Xtradb cluster.
  • Важное отличие в управлении репликацией и кластеризацией в Manticore и Elasticsearch заключается в том, что с Elasticsearch вам нужно редактировать конфигурацию для установки реплики, в то время как в Manticore этого не требуется: репликация всегда включена, и подключиться к другой ноде очень легко:

ПРИСОЕДИНИТЬСЯ К КЛАСТЕРУ

Шардинг и распределенные индексы

В отличие от Elasticsearch, в Manticore пока нет автоматического шардинга, но объединить несколько индексов в один для ручного шардинга проще, чем в Elasticsearch:

Распределенный индекс

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

Простота использования и обучения

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

Наша конечная цель - сделать Manticore Search максимально простым в использовании и обучении.

  • Как уже упоминалось, Manticore ориентирован на SQL, что, по нашему мнению, важно, когда вы только начинаете работать с Manticore по сравнению с Elasticsearch.
  • Manticore предлагает интерактивные курсы - play.manticoresearch.com , которые помогут вам ознакомиться с необходимыми шагами, чтобы стать знакомым с Manticore.
  • Существует руководство по началу работы с примерами для разных ОС и языков программирования - https://manual.manticoresearch.com/Quick_start_guide .
  • Вы можете общаться напрямую с разработчиками в публичных каналах: Slack , Telegram , Форум .
  • У нас есть специальный короткий домен mnt.cr , интегрированный с документацией, чтобы mnt.cr/<keyword> перенаправлял вас на результаты поиска в документации в специальном режиме - он сразу возвращает к самой актуальной секции. Это особенно удобно, когда вам нужно вспомнить некоторые детали по той или иной настройке, например, mnt.cr/max_packet_size .

Облачная нативность

Императивные и декларативные режимы использования

В Elasticsearch большинство действий выполняется только через API. Нет способа ( больше нет ) добавить маппинги в конфигурационный файл, чтобы они были доступны сразу после запуска.

Manticore, как и Kubernetes, поддерживает два режима использования:

  • Императивный: когда всё можно управлять в режиме онлайн с использованием CREATE TABLE/DROP TABLE/ALTER TABLE, CREATE CLUSTER/JOIN CLUSTER/DELETE CLUSTER и т. д.
  • Декларативный: когда вы можете определить маппинги в конфигурационном файле, что обеспечивает большую портативность и более простую интеграцию Manticore в CI/CD, ETL и другие процессы.

Перколяция

Перколяция или «постоянный запрос» - это когда таблица содержит запросы, а не документы, и поиск выполняется по документам, а не по запросам. Результаты поиска - это запросы, удовлетворяющие документам. Этот тип поиска полезен для подписок пользователей: если вы подписались, например, на запрос TV > 42 дюймов, как только он появится на сайте, вы получите уведомление об этом. Manticore предоставляет эту функциональность так же, как и Elasticsearch. Согласно тестам , которые мы проводили несколько лет назад, пропускная способность этого типа поиска в Manticore значительно выше, чем в Elasticsearch.

Что дальше?

Мы сейчас разрабатываем проект в следующих направлениях:

  • Заменитель Elasticsearch в стеке ELK, чтобы Kibana и Logstash (или альтернативы Opensearch) могли работать с ним. Мы хотим, чтобы низкая задержка, которую легче достигнуть с Manticore, была доступна людям для анализа логов. У нас уже есть бета .
  • Безсхемный режим. Когда вы используете Manticore как решение для анализа логов, вам не нужно думать о схемах.
  • Автоматический шардинг и оркестрация шардов, чтобы вы могли быстрее загружать данные в Manticore, и шардов будет распределено в оптимальном порядке для лучшей отказоустойчивости.
  • Дальнейшие оптимизации производительности. Мы просто хотим даже более низкую задержку и большую пропускную способность, чтобы вы могли запускать Manticore на более дешёвом оборудовании и сделать Землю зеленее.

Выводы

Итак, в конце концов, что у нас есть? Manticore может сейчас интересовать тех, кто:

  • Заботится о низком времени отклика как при небольших, так и при больших объемах данных,
  • Любит SQL,
  • Хотел бы что-то проще, чем Elasticsearch, чтобы быстрее интегрировать поиск в своё приложение,
  • Хотел бы что-то более легковесное, что запускается быстро,
  • Заботится о использовании чисто открытого программного обеспечения.

Мы продолжаем!

⭐⭐⭐ Ваша звезда на GitHub поддерживает проект и заставляет нас думать, что мы на правильном пути!⭐⭐⭐

Спасибо!

Установить Manticore Search

Установить Manticore Search