五年前, Manticore 作为一个开源版本的流行搜索引擎 Sphinx Search 的分支开始了我们的旅程。我们有三名C++开发人员、一名支持工程师、一名Sphinx Search的重度使用者/后端团队负责人、一位经验丰富的经理、一位兼职帮助我们的五个孩子的母亲、一盒甜甜圈以及大量的错误、崩溃和技术债务。因此我们拿起铲子和其他挖掘工具,开始努力将其提升到搜索引擎行业标准。并不是说使用Sphinx是不可行的,但许多功能缺失,现有的功能也不够稳定或成熟。而我们已经将其推进到极限。所以在五年和数百名新用户之后,我们准备说Manticore Search可以作为Elasticsearch的替代方案,用于全文搜索和(现在的)数据分析。
在本文中,我想要:
⭐⭐⭐ 据说在 GitHub 上的您的星标支持该项目,让我们觉得我们走在正确的道路上!⭐⭐⭐
一点历史
2001 - 只有Lucene和Sphinx
第一家Apple Store开业,Windows XP、iTunes和Mac OS X发布。
天才Andrey Aksyonoff开始了Sphinx Search的工作,为此我非常感谢他!那时还没有SOLR和Elasticsearch,但已经有了Lucene,后者成为二者的基础。Sphinx Search开始慢慢成型,并在几年内成为一种非常受欢迎的技术,对成千上万的网站产生了影响。
2010 - Elasticsearch出现
视网膜显示屏、systemd、iPad和Elasticsearch出现。
到这个时候,Sphinx已经成为一个流行的全文搜索引擎,但Sphinx的“源数据必须在某处,我们只需制作一个需要定期重建的全文索引”的概念并没有像Elasticsearch的“通过HTTP实时向我发送任何JSON,我会找到一个节点放置它”那样有趣。SOLR在数据分发方面表现得并不好,而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电缆协议)或Sphinx二进制协议进行查询,还有一些编程语言的客户端。
✅ Manticore:增加了与Elasticsearch非常相似的JSON接口。基于新协议,构建了用于PHP、Python、Java、Javascript和Elixir的新客户端。客户端会自动生成,使新功能在客户中出现的时间早于它在引擎中出现的时间。
🙁 Sphinx 2:对大多数语言的文本标记配置困难
✅ Manticore:简化:制作了别名cjk
和non_cjk
。基于ICU的中文标记。增加了包括乌克兰语在内的许多新词干提取器。
🙁 Sphinx 2:没有官方docker映像,也没有Kubernetes生态系统的支持
✅ Manticore:为Kubernetes制作并支持** 官方docker 和 Helm chart **
🙁 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: 迁移到 协程 . 使任何搜索查询的并行化成为可能,以充满 CPU 并将响应时间降到最低
🙁 Sphinx 2: 无法在没有全文字段的情况下使用
✅ Manticore: 可以 在没有全文的情况下使用,就像其他任何数据库一样。
🙁 Sphinx 2: 非全文数据以行存储,必须在内存中才能高效工作。
✅ Manticore: 实现并开源了 Manticore 列式库 ,一个外部完全独立的库,允许以列为导向在块中存储数据,并支持不同的编解码器以高效压缩不同类型的数据。几乎不需要内存。您现在可以在同一服务器上处理更大规模的数据。
🙁 Sphinx 2: 无次级索引
✅ Manticore: Manticore 列式库的第二个重要功能是 支持基于现代和创新的 PGM 算法 的次级索引。
🙁 Sphinx 2: 无反向搜索的穿透索引(当索引中有查询且文档用作输入以找出哪些查询会与之匹配时)
✅ Manticore: 添加了 穿透类型索引。
这仅仅是变化中的三分之一 - 您可以轻松看到的那些。除此之外,还有数月对系统不同部分的重构,结果是更简单、更可靠和更高效的代码。我们希望这能吸引新的开发人员参与该项目。
那么 Elasticsearch 呢?
Elasticsearch 很好:在一定量的数据上使用起来并不困难,有复制功能、容错能力和丰富的功能。 但有一些细微差别。
让我们看看这些细微差别,以及 Manticore 现在(2022 年 7 月)与 Elasticsearch 的对比。未来的读者,我们已经加装了一些其他东西,看看我们的 变更日志 。
搜索速度
性能,即低响应时间,在许多情况下都是重要的,尤其是在日志和数据分析中,当有大量数据而搜索查询不多时。您不想等待 30 秒而不是两秒来获得响应,对吗?所以这里是细微差别:Elasticsearch 被认为是日志管理的标准,但例如,它无法有效地对单个索引分片并行化查询。而且默认情况下,Elasticsearch 只有 1 个分片,但现代服务器中有更多的 CPU 核心。分片过多也不好。所有这一切都让关心响应时间的 devops 生活更不容易:您必须考虑 Elasticsearch 将运行在哪种硬件上,并相应地进行更改。
相反,Manticore 能够无条件地默认将搜索查询并行化到所有 CPU 核心。更准确地说,Manticore 自行决定何时进行并行化,何时不进行,但在大多数情况下确实会,这使得您能有效地加载 CPU 核心(在日志和数据分析的情况下通常待机)并显著减少响应时间。
但是,即使您在 Elasticsearch 中创建与服务器 CPU 核心数量相同的分片,Manticore 也会显著更快,具体而言:这是针对 17 亿文档的测试,您可以看到总体上 Manticore 比 Elasticsearch 快 4 倍。如果您对细节感兴趣或想在自己的硬件上重现,以下是一篇文章 https://db-benchmarks.com/test-taxi/ (下面的所有示例也都有脚本和链接等支持,您在这个博客中找不到任何闲聊)
这是一个不同的案例:没有大数据,仅仅是 Hacker News 上的 110 万条评论。在这个测试中,Manticore 比 Elasticsearch 快 15 倍。 所有细节在这里 。
还有另一个对 Elasticsearch 作为标准日志分析工具的典型测试——1000 万条 Nginx 日志和各种相当现实的分析查询——Manticore 在这里比 Elasticsearch 快 22 倍。 所有细节在这里
数据摄取性能
Elasticsearch 的写入速度也有细微差别。例如,上述 17 亿文档测试的数据集加载如下:
- 加载到 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
No stopped containers
Manticore Search (type columnar):
No stopped containers
WARNING: The cpuset variable is not set. Defaulting to a blank string.
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
---> Using cache
---> 6322fd861e6d
Step 3/4 : RUN wget https://repo.manticoresearch.com/manticore-repo.noarch.deb && dpkg -i manticore-repo.noarch.deb
---> Using cache
---> b70ad32ac505
Step 4/4 : RUN apt-get -y update && apt-get -y install manticore-columnar-lib
---> Using cache
---> 1fcc45e375ba
Successfully built 1fcc45e375ba
Successfully tagged manticoresearch:test
No need to rebuild
Elasticsearch (type tuned):
No stopped containers
Starting elasticsearch (test=taxi suffix=_tuned docker-compose -f ../../docker-compose.yml --env-file ../../.env up -d elasticsearch)
WARNING: The cpuset variable is not set. Defaulting to a blank string.
Creating network "test_engines_default" with the default driver
Creating elasticsearch_engine ... done
Waiting for elasticsearch to come up
Starting loading at Fri Jul 1 04:13:20 PM CEST 2022
2022/07/01 14:13:20 Setting 'pipeline.batch.size' from environment.
2022/07/01 14:13:20 Setting 'xpack.monitoring.enabled' from environment.
2022/07/01 14:13:20 Setting 'pipeline.workers' from environment.
Using bundled JDK: /usr/share/logstash/jdk
Sending Logstash logs to /usr/share/logstash/logs which is now configured via log4j2.properties
[2022-07-01T14:13:29,080][INFO ][logstash.runner ] Log4j configuration path used is: /usr/share/logstash/config/log4j2.properties
[2022-07-01T14:13:29,084][INFO ][logstash.runner ] Starting 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 on 11.0.12+7 +jit [linux-x86_64]"}
[2022-07-01T14:13:29,087][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/usr/share/logstash/data/queue"}
[2022-07-01T14:13:29,088][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/usr/share/logstash/data/dead_letter_queue"}
[2022-07-01T14:13:29,240][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"5ae0d5d3-2824-4ba7-bcc0-a25e899223b0", :path=>"/usr/share/logstash/data/uuid"}
[2022-07-01T14:13:29,534][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
[2022-07-01T14:13:29,973][INFO ][org.reflections.Reflections] Reflections took 66 ms to scan 1 urls, producing 120 keys and 417 values
[2022-07-01T14:13:30,192][WARN ][deprecation.logstash.codecs.plain] Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[2022-07-01T14:13:30,201][WARN ][deprecation.logstash.inputs.file] Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[2022-07-01T14:13:30,223][WARN ][deprecation.logstash.filters.csv] Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[2022-07-01T14:13:30,270][WARN ][deprecation.logstash.codecs.plain] Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[2022-07-01T14:13:30,283][WARN ][deprecation.logstash.outputs.elasticsearch] Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[2022-07-01T14:13:30,292][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["//127.0.0.1:9200"]}
[2022-07-01T14:13:30,412][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://127.0.0.1:9200/]}}
[2022-07-01T14:13:30,448][WARN ][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance, but got an error {:url=>"http://127.0.0.1:9200/", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :message=>"Elasticsearch Unreachable: [http://127.0.0.1:9200/][Manticore::ClientProtocolException] 127.0.0.1:9200 failed to respond"}
[2022-07-01T14:13:30,460][INFO ][logstash.javapipeline ][main] Starting pipeline {: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] CAUTION: Recommended inflight events max exceeded! Logstash will run with up to 320000 events in memory in your current configuration. If your message sizes are large this may cause instability with the default heap size. Please consider setting a non-standard heap size, changing the batch size (currently 10000), or changing the number of pipeline workers (currently 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] Pipeline Java execution initialization time {"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] 开始,创建发现者,使用文件和 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` 事件字段将不再用于确定文档类型 {: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 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T16:41:22,213][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T16:52:53,302][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T17:04:26,699][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T17:16:05,588][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T17:27:40,146][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T17:39:11,727][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T17:50:43,353][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T18:02:13,095][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T18:13:59,913][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T18:25:38,646][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T18:37:17,263][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T18:48:55,751][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T19:00:51,379][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T19:13:09,935][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 Logstash 时出现意外变化,请明确声明您所需的 ECS 兼容性模式。
[2022-07-01T19:25:16,811][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,该值可能会在未来的主版本发布中发生变化。为了避免在升级 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 的未来重大版本中可能会更改。为了避免在升级 Logstash 时发生意外更改,请明确声明您所需的 ECS 兼容性模式。
[2022-07-02T01:41:00,455][WARN ][deprecation.logstash.codecs.plain][main][df6082e07bf59ecdc49074832e93c5e058465344886b3ad93818b05a69e52527] 依赖于 `pipeline.ecs_compatibility` 的默认值,这在 Logstash 的未来重大版本中可能会更改。为了避免在升级 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 已关闭。
加载完成于 2022 年 7 月 2 日周六 08:46:36 CEST
Manticore Search:
root@perf3 /perf/test_engines/tests/taxi # ./init
警告:cpuset 变量未设置。默认为空字符串。
停止 elasticsearch_engine ... 完成
移除 elasticsearch_engine ... 完成
移除网络 test_engines_default
没有停止的容器
Manticore Search(类型列式):
没有停止的容器
警告: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
加载开始于 2022 年 7 月 3 日周日 07:26:48 PM CEST
警告:cpuset 变量未设置。默认为空字符串。
创建网络 "test_engines_default" 使用默认驱动程序
创建 test_engines_manticoresearch_run ... 完成
Manticore 5.0.0 b4cb7da02@220518 版本(列式 1.15.2 b0bcafb@220518)(次要 1.15.2 b0bcafb@220518)
版权所有 (c) 2001-2016, Andrew Aksyonoff
版权所有 (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
版权所有 (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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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)
using config file '/etc/manticoresearch/manticore.conf'...
indexing index '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,
"自动化公司,建筑师的需求。哈鲁姆劳动时间的出现让每个人和所有事情都变得无关紧要。因为没有反击而造成的后果。",
"[email protected]",
"凯莉·道尔高级版"
}
我们将使用 简单的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默认情况下会对新文档进行
缓冲
,时间为一秒,这意味着 最后一批文档无法立即搜索。在许多情况下这是可以接受的,但为了公平起见,让我们在Elasticsearch中执行 /bulk?refresh=1
,看看它带来了什么:
root@perf3 ~ # php load_elasticsearch.php 10000 32 1000000 50
准备中...
缓存中找到
查询中...
插入完成
总时间: 307.47588610649
每秒162614个文档
在这种情况下Manticore又快了43%。
如果我们想测试最大性能,我们可以:
- 在Elasticsearch和Manticore中使用分片
- 让Elasticsearch以最大速度缓冲传入的文档
- 使用MySQL接口将数据放入Manticore Search(略快)
- 禁用Manticore Search中的binlog(遗憾的是,不能在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}}
real 0m13.505s
user 0m0.003s
sys 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在数据摄取性能方面比Elasticsearch快2倍。而且数据在批量加载后立即可搜索,而不是两分钟后。用于此测试的脚本可以在 这里 找到。
它是用什么写的
- Elasticsearch本身是用Java编写的,它使用和依赖的Lucene库也是用Java编写的。
- Manticore是用C++编写的。它带来:
- 代码更难编写,是的。
- 但我们更靠近硬件,因此可以编写 更优化的代码。
- 无需考虑JVM堆大小。
- 没有风险让JVM垃圾回收器在不合适的时刻开始gc,这可能会严重影响性能。
- 无需在启动时运行一个重的JVM,这需要相当长的时间。
开源
- Elasticsearch 不再是纯开源。许可在2021年从Apache 2变更为Elastic License。
- Manticore是完全开源,具有GPLv2许可证的 守护进程 和Apache 2许可证的 列库 。
JSON与SQL
两者 Elasticsearch和Manticore都可以处理SQL和JSON,但区别在于:
- Elasticsearch默认基于JSON,而Manticore则是SQL优先。我们在SQL中喜欢的是,如果使用它,许多事情在概念验证阶段变得容易得多。例如,这里有两个查询做同样的事情。您想花一分钟来计算
{
和}
括号的数量,还是…?
- 在Elasticsearch中SQL非常有限,例如:
- 您不能执行
SELECT id
- 您不能
INSERT/UPDATE/DELETE
- 您不能运行服务命令(创建集群,查看状态等)。
- 您不能执行
- 在Manticore中正好相反:
- 您可以通过SQL做所有事情
- JSON仅涵盖基本功能:搜索和数据修改查询。
启动时间
在某些情况下,您需要能够快速启动服务。例如,在物联网(IoT)或某些ETL场景中。
- Elasticsearch 启动时间很长。
- Manticore只需几秒钟就能启动,具有 110万个文档的表
接近实时与实时
如前所述,默认情况下 当您将数据放入Elasticsearch时,它仅在一秒钟后变得可搜索。这可以调整,但如上所示,摄取速度将会显著降低。
Manticore始终在实时模式下工作。
全文搜索
可能值得另一篇文章来详细解释。简而言之:Manticore 和 Elasticsearch 都在全文检索方面表现优秀,二者有很多共同点,但也存在许多差异。根据 这些客观测试 (在评估相关性时很重要),在几乎默认设置下,Manticore 可以提供比 Elasticsearch 更高的相关性。这是在 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 使用。
- Manticore 的一个重要优势是可以使用 MySQL 客户端来操作服务器。即使某种语言没有官方 Manticore 客户端,也一定会有一个 MySQL 客户端可供使用。使用命令行的 MySQL 客户端进行管理比使用
- HTTP JSON API 在 Elasticsearch 和 Manticore 中都受支持。
- Logstash, Kibana:Manticore 支持 Kibana,但目前处于测试阶段。我们将很快加快这些集成的速度。以下是尝试将 Manticore 与 Kibana 一起使用的方法:
# 下载支持 Kibana 的 Manticore 测试版,检查 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 指向在端口 9308 上监听的 Manticore Search 实例
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,下载加载脚本并将100万条假用户文档导入到 Manticore
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 服务器
如果一切顺利,您应该会看到:
复制
- Elasticsearch 和 Manticore Search 都使用 同步复制。在 Manticore,我们决定不重复造轮子,并与 Galera library 集成,后者也被 Mariadb 和 Percona Xtradb 集群使用。
- 在管理 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 提供 Kubernetes operator 。
- Manticore Search 提供 Helm chart 。
命令式和声明式使用模式
在 Elasticsearch 中,大多数操作仅通过 API 完成。没有办法( 不再 )将映射添加到配置文件中,以便它们在启动后立即可用。
Manticore 像 Kubernetes 一样,支持两种使用模式:
- 命令式:当一切可以通过
CREATE TABLE/DROP TABLE/ALTER TABLE, CREATE CLUSTER/JOIN CLUSTER/DELETE CLUSTER
等在线管理时。 - 声明式:当您可以在配置文件中定义映射时,这使得 Manticore 的可移植性更强,更易于将其集成到 CI/CD、ETL 和其他流程中。
过筛
过筛或持久查询是指一个表包含查询,而不是文档,搜索是在文档而不是查询上进行的。搜索结果是满足文档的查询。这种类型的搜索对用户的订阅非常有用:如果您订阅了例如查询 TV > 42 inches
,那么只要它出现在网站上,您就会收到通知。Manticore 提供了该功能,以及 Elasticsearch。根据我们几年前进行的
测试
这种类型搜索在 Manticore 中的吞吐量显著高于 Elasticsearch。
接下来是什么?
我们现在在以下方向上开发该项目:
- Elasticsearch 的可替代品,以便 Kibana 和 Logstash(或 Opensearch 替代品)可以正常工作。我们希望 更低的延迟,利用 Manticore 更容易实现,能够供人们进行日志分析。我们已经有了一个 beta 。
- 无模式模式。当您将 Manticore 用作日志分析解决方案时,您不必考虑模式。
- 自动分片和分片的调度,以便您可以更快地将数据加载到 Manticore 中,分片将以更优的顺序分布,以提高容错性。
- 进一步的性能优化。我们只想要 更低的延迟和更高的吞吐量,这样您就可以在更便宜的硬件上运行 Manticore,让地球变得更环保。
结论
那么,到头来,我们得到了什么?Manticore 现在可能对以下人员感兴趣:
- 在小规模和大规模数据上 关心响应时间 的人,
- 喜欢 SQL 的人,
- 想要 比 Elasticsearch 更简单的解决方案以更快地将搜索集成到其应用程序中的人,
- 想要 更轻量级 的解决方案,能够快速启动,
- 关心使用 纯开源 软件的人。
我们会继续努力!