ElasticSearch + Kibana-使用预先计算的哈希值进行唯一计数

:已添加

我想对我的ElasticSearch集群执行唯一计数。该集群包含约5000万条记录。

我尝试了以下方法:

回答:

在本节中提到:

预计算哈希通常仅在非常大和/或高基数的字段上有用,因为它可以节省CPU和内存。

回答:

在本节中提到:

除非您将Elasticsearch配置为使用doc_values作为字段数据格式,否则使用聚合和构面对堆空间的要求 非常 高。

回答:

"my_prop": {

"index": "not_analyzed",

"fielddata": {

"format": "doc_values"

},

"doc_values": true,

"type": "string",

"fields": {

"hash": {

"type": "murmur3"

}

}

}

回答:

当我在Kibana的my_prop.hash上使用唯一计数时,收到以下错误:

Data too large, data for [my_prop.hash] would be larger than limit

ElasticSearch的堆大小为2g。对于具有400万条记录的单个索引,上述操作也将失败。

回答:

  1. 我的配置中缺少什么吗?
  2. 我应该增加我的机器吗?这似乎不是可扩展的解决方案。

回答:

由Kibana产生:http://pastebin.com/hf1yNLhE

回答:

http://pastebin.com/BFTYUsVg

回答:

该错误表明您没有足够的内存(更具体地,用于的内存fielddata)来存储来自中的所有值hash,因此您需要从堆中取出它们并将它们放在磁盘上,这意味着使用doc_values

既然你已经在使用doc_valuesmy_prop,我建议做同样的my_prop.hash(而且,不,从主字段中的设置不是由子域继承)"hash":

{ "type": "murmur3", "index" : "no", "doc_values" : true }

以上是 ElasticSearch + Kibana-使用预先计算的哈希值进行唯一计数 的全部内容, 来源链接: utcz.com/qa/415559.html

回到顶部