不要急,总有办法的

Elasticsearch:字段太多, 在 Elasticsearch 中防止映射爆炸的 3 种方法

Elasticsearch | 作者 liuxg | 发布于2022年06月07日 | | 阅读数:1527

当一个系统具有三样东西时,它就被称为“可观察的”:日志、指标和跟踪。 虽然指标和跟踪具有可预测的数据结构,但日志(尤其是应用程序日志)通常是非结构化数据,需要收集和解析才能真正有用。 因此,控制日志可以说是实现可观察性最难的部分。如果你想了解如何把一个数据进行结构化,请参考我之前的文章 “Elasticsearch:Elastic可观测性 - 运用 pipeline 使数据结构化”。你可以在 “Elastic:开发者上手指南” 查找更多的文章。

在本文中,我们将深入探讨开发人员可以用来通过 Elasticsearch 管理日志的三种有效策略。

[相关文章:利用 Elastic 改善云中的数据管理和可观察性]

让 Elasticsearch 为你的数据工作
有时我们无法控制我们在集群中收到的日志类型。 想想一个日志分析提供商,它有一个特定的预算来存储其客户的日志,并且需要保持存储空间(Elastic 在咨询中处理了许多类似的案例)。

通常情况下,我们有客户索引字段 “以防万一” 他们需要用于搜索。 如果你是这种情况,那么以下技术在帮助你降低成本并将集群性能集中在真正重要的事情上应该被证明是有价值的。

让我们首先概述问题。 考虑以下具有三个字段的 JSON 文档:message、transaction.user、transaction.amount:

{
 "message": "2023-06-01T01:02:03.000Z|TT|Bob|3.14|hello",
 "transaction": {
   "user": "bob",
   "amount": 3.14
 }
}
将保存此类文档的索引的映射可能类似于以下内容:

PUT dynamic-mapping-test
{
 "mappings": {
   "properties": {
     "message": {
       "type": "text"
     },
     "transaction": {
       "properties": {
         "user": {
           "type": "keyword"
         },
         "amount": {
           "type": "long"
         }
       }
     }
   }
 }
}
但是,Elasticsearch 允许我们为新字段编制索引,而不必事先指定映射,这也是 Elasticsearch 易于使用的部分原因:我们可以轻松载入新数据。 因此,可以对偏离原始映射的内容进行索引,
 
更多阅读 https://elasticstack.blog.csdn ... 59151

[尊重社区原创,转载请保留或注明出处]
本文地址:http://elasticsearch.cn/article/14625


0 个评论

要回复文章请先登录注册