使用high-rest-client 6.3版本,如何创建索引模板?
Elasticsearch • fantuan 回复了问题 • 2 人关注 • 1 个回复 • 1985 次浏览 • 2019-08-06 16:02
社区日报 第688期 (2019-08-02)
社区日报 • laoyang360 发表了文章 • 0 个评论 • 1485 次浏览 • 2019-08-02 22:28
https://tinyurl.com/yynpe4ly
2、NMap数据ELK实战分析
https://tinyurl.com/y2em42b2
3、开源:Elasticsearch股票预测
https://tinyurl.com/y5egx5mr
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
7.2.0的elk,heartbeat-7*的索引下有数据,但是uptime没有数据!
回复Kibana • hanj 回复了问题 • 1 人关注 • 1 个回复 • 2245 次浏览 • 2019-08-06 08:27
filebeat mysql module解析Mysql slow不匹配,请问数据库那边要怎么设置?
回复Beats • Goun 发起了问题 • 1 人关注 • 0 个回复 • 2708 次浏览 • 2019-08-02 11:08
es path.data配置多个路径,存储的机制是什么,版本是2.4
回复Elasticsearch • lvwendong 发起了问题 • 1 人关注 • 0 个回复 • 1822 次浏览 • 2019-08-02 09:03
快照一直在IN_PROGRESS状态且无法删除
回复Elasticsearch • wangxinrong 发起了问题 • 1 人关注 • 0 个回复 • 3053 次浏览 • 2019-08-01 20:22
记一次“访问量超过1000的人数”统计,计算聚合桶的个数
Elasticsearch • ziyou 发表了文章 • 2 个评论 • 9048 次浏览 • 2019-08-01 18:45
前言
众所周知,在ES中有各种聚合方法能够是数据分析简单、高效。但是在繁杂的聚合方法中找到满足我们需求的那个,需要我们自己去实践。下面我就说明一下“访问量超过1000的人数”统计案例的实现。
需求
ES在使用过程中,我们公司有一个需求,就是需要统计活跃用户数,我们定义活跃用户数为:今日访问量超过1000的用户,所以我们统计活跃用户数的时候需要统计“访问量超过1000的人数”。
之前的做法
第一版统计活跃用户数的方法由于对复杂的聚合统计不熟悉的原因,就把统计分为了两步。
第一步:在ES中使用字段聚合每个用户的访问数量,数量大于1000;
查询语句
json<br /> {<br /> "aggs": {<br /> "user": {<br /> "terms": {<br /> "field": "userId.keyword",<br /> "size": 10000,<br /> "order": {<br /> "_count": "desc"<br /> },<br /> "min_doc_count": "1000"<br /> }<br /> }<br /> },<br /> "size": 0,<br /> "query": {<br /> "bool": {<br /> "must": [<br /> {<br /> "range": {<br /> "startTime": {<br /> "gte": "now-4h",<br /> "lte": "now",<br /> "format": "epoch_millis"<br /> }<br /> }<br /> }<br /> ]<br /> }<br /> }<br /> }<br />
查询结果
json<br /> {<br /> "took" : 203,<br /> "timed_out" : false,<br /> "_shards" : {<br /> "total" : 1565,<br /> "successful" : 1565,<br /> "skipped" : 1520,<br /> "failed" : 0<br /> },<br /> "hits" : {<br /> "total" : 67470,<br /> "max_score" : 0.0,<br /> "hits" : [ ]<br /> },<br /> "aggregations" : {<br /> "user" : {<br /> "doc_count_error_upper_bound" : 0,<br /> "sum_other_doc_count" : 0,<br /> "buckets" : [<br /> {<br /> "key" : "admin",<br /> "doc_count" : 46998<br /> },<br /> {<br /> "key" : "nameless",<br /> "doc_count" : 8416<br /> },<br /> {<br /> "key" : "li",<br /> "doc_count" : 2486<br /> },<br /> {<br /> "key" : "liu",<br /> "doc_count" : 2183<br /> },<br /> {<br /> "key" : "111111",<br /> "doc_count" : 1281<br /> }<br /> ]<br /> }<br /> }<br /> }<br />
第二步:从ES中获取第一步的统计结果,然后统计用户桶的个数,达到统计出个数的效果。
改进后的做法
改进后就是直接使用ES的查询,使用了sum_bucket聚合,是计算每个用户的用户ID独立数,也就是每个用户的用户ID独立数都是1,然后用桶聚合求和,得到所有的人数。
参考链接:[sum bucket聚合](<a href="https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-aggregations-pipeline-sum-bucket-aggregation.html</a>" rel="nofollow" target="_blank">https://www.elastic.co/guide/e ... %26gt;)
查询语句
json<br /> {<br /> "aggs": {<br /> "usercount": {<br /> "sum_bucket": {<br /> "buckets_path": "usercount-bucket>usercount-metric"<br /> }<br /> },<br /> "usercount-bucket": {<br /> "terms": {<br /> "field": "userId.keyword",<br /> "size": 10,<br /> "order": {<br /> "_key": "desc"<br /> },<br /> "min_doc_count": "1000"<br /> },<br /> "aggs": {<br /> "usercount-metric": {<br /> "cardinality": {<br /> "field": "userId.keyword"<br /> }<br /> }<br /> }<br /> }<br /> },<br /> "size": 0,<br /> "query": {<br /> "bool": {<br /> "must": [<br /> {<br /> "range": {<br /> "x_st": {<br /> "gte": "now-4h",<br /> "lte": "now",<br /> "format": "epoch_millis"<br /> }<br /> }<br /> }<br /> ]<br /> }<br /> }<br /> }<br />
查询结果
json<br /> {<br /> "took" : 106,<br /> "timed_out" : false,<br /> "_shards" : {<br /> "total" : 1565,<br /> "successful" : 1565,<br /> "skipped" : 1520,<br /> "failed" : 0<br /> },<br /> "hits" : {<br /> "total" : 63956,<br /> "max_score" : 0.0,<br /> "hits" : [ ]<br /> },<br /> "aggregations" : {<br /> "usercount-bucket" : {<br /> "doc_count_error_upper_bound" : 0,<br /> "sum_other_doc_count" : 0,<br /> "buckets" : [<br /> {<br /> "key" : "nameless",<br /> "doc_count" : 8278,<br /> "usercount-metric" : {<br /> "value" : 1<br /> }<br /> },<br /> {<br /> "key" : "liu",<br /> "doc_count" : 2142,<br /> "usercount-metric" : {<br /> "value" : 1<br /> }<br /> },<br /> {<br /> "key" : "li",<br /> "doc_count" : 1928,<br /> "usercount-metric" : {<br /> "value" : 1<br /> }<br /> },<br /> {<br /> "key" : "admin",<br /> "doc_count" : 44395,<br /> "usercount-metric" : {<br /> "value" : 1<br /> }<br /> },<br /> {<br /> "key" : "111111",<br /> "doc_count" : 1281,<br /> "usercount-metric" : {<br /> "value" : 1<br /> }<br /> }<br /> ]<br /> },<br /> "usercount" : {<br /> "value" : 5.0<br /> }<br /> }<br /> }<br />
如何手动触发translog的comit操作?
Elasticsearch • zqc0512 回复了问题 • 3 人关注 • 1 个回复 • 2665 次浏览 • 2019-08-02 08:53
elasticsearch是否能进行众数聚合
Elasticsearch • fantuan 回复了问题 • 3 人关注 • 2 个回复 • 1917 次浏览 • 2019-08-02 16:46
社区日报 第687期 (2019-08-01)
社区日报 • 白衬衣 发表了文章 • 0 个评论 • 2464 次浏览 • 2019-08-01 11:39
http://t.cn/AiYA5DfC
2.深入分析Elastic Search的写入过程
http://t.cn/AiY7Z1uB
3.怎么解决Skywalking对应的ES的CPU高的问题
http://t.cn/AiYA5rNW
编辑:金桥
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
file beat采集日志中的agent.id值被filebeat保留字段覆盖
回复Beats • gary 回复了问题 • 1 人关注 • 1 个回复 • 3425 次浏览 • 2019-07-31 20:06
elasticsearch配置文件里两项解释
Elasticsearch • God_lockin 回复了问题 • 4 人关注 • 2 个回复 • 11969 次浏览 • 2019-08-03 22:32
es持续压测,内存占用过大
Elasticsearch • fantuan 回复了问题 • 4 人关注 • 2 个回复 • 2621 次浏览 • 2019-07-31 19:21