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万条记录的单个索引,上述操作也将失败。
回答:
- 我的配置中缺少什么吗?
- 我应该增加我的机器吗?这似乎不是可扩展的解决方案。
回答:
由Kibana产生:http://pastebin.com/hf1yNLhE
回答:
http://pastebin.com/BFTYUsVg
回答:
该错误表明您没有足够的内存(更具体地,用于的内存fielddata
)来存储来自中的所有值hash
,因此您需要从堆中取出它们并将它们放在磁盘上,这意味着使用doc_values
。
既然你已经在使用doc_values
了my_prop
,我建议做同样的my_prop.hash
(而且,不,从主字段中的设置不是由子域继承)"hash":
{ "type": "murmur3", "index" : "no", "doc_values" : true }。
以上是 ElasticSearch + Kibana-使用预先计算的哈希值进行唯一计数 的全部内容, 来源链接: utcz.com/qa/415559.html