找到问题的解决办法了么?

社区日报 第690期 (2019-08-04)

社区日报至尊宝 发表了文章 • 0 个评论 • 1002 次浏览 • 2019-08-04 10:19 • 来自相关话题

1.使用ELK收集和分析Kafka日志。
http://t.cn/AiYY4BuE
2.使用Spring Boot微服务设置ELK堆栈。
http://t.cn/AiYYGkuf
3.(自备梯子)如何阻止电子邮件对你进行间谍活动。
http://t.cn/AiYY6jAr

编辑:至尊宝
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup

elasticsearch配置文件里两项解释

ElasticsearchGod_lockin 回复了问题 • 4 人关注 • 2 个回复 • 10214 次浏览 • 2019-08-03 22:32 • 来自相关话题

社区日报 第689期 (2019-08-03)

社区日报bsll 发表了文章 • 0 个评论 • 1105 次浏览 • 2019-08-03 18:51 • 来自相关话题

1.es集群测试工具rally
[http://t.cn/AiY0eoBa](http://t.cn/AiY0eoBa)

2.使用function_score的一些实例(需翻墙)
[http://t.cn/RQ45Wva](http://t.cn/RQ45Wva)

3.一周热点:《哪吒》刷爆朋友圈
[http://t.cn/AiY0rKja](http://t.cn/AiY0rKja)

elasticsearch同时对多个字段聚合(两个字段值类型一致)

ElasticsearchGod_lockin 回复了问题 • 3 人关注 • 1 个回复 • 3753 次浏览 • 2019-08-03 18:20 • 来自相关话题

logstash filter 字段是否存在

回复

Logstashkindy 回复了问题 • 1 人关注 • 1 个回复 • 1619 次浏览 • 2019-08-03 17:15 • 来自相关话题

x-pack能配置只看到某些dashboard吗?

回复

Kibanauuuu 回复了问题 • 1 人关注 • 1 个回复 • 1517 次浏览 • 2019-08-03 10:59 • 来自相关话题

社区日报 第688期 (2019-08-02)

社区日报laoyang360 发表了文章 • 0 个评论 • 1210 次浏览 • 2019-08-02 22:28 • 来自相关话题

1、Elastic Stack 7.3.0 重磅发布
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

elasticsearch是否能进行众数聚合

Elasticsearchfantuan 回复了问题 • 3 人关注 • 2 个回复 • 1588 次浏览 • 2019-08-02 16:46 • 来自相关话题

用date_histogram为什么key_as_string是这样的

Elasticsearchstephen_qu 回复了问题 • 6 人关注 • 5 个回复 • 3240 次浏览 • 2019-08-02 16:13 • 来自相关话题

filebeat mysql module解析Mysql slow不匹配,请问数据库那边要怎么设置?

回复

BeatsGoun 发起了问题 • 1 人关注 • 0 个回复 • 2177 次浏览 • 2019-08-02 11:08 • 来自相关话题

es path.data配置多个路径,存储的机制是什么,版本是2.4

回复

Elasticsearchlvwendong 发起了问题 • 1 人关注 • 0 个回复 • 1420 次浏览 • 2019-08-02 09:03 • 来自相关话题

如何手动触发translog的comit操作?

Elasticsearchzqc0512 回复了问题 • 3 人关注 • 1 个回复 • 1723 次浏览 • 2019-08-02 08:53 • 来自相关话题

快照一直在IN_PROGRESS状态且无法删除

回复

Elasticsearchwangxinrong 发起了问题 • 1 人关注 • 0 个回复 • 2518 次浏览 • 2019-08-01 20:22 • 来自相关话题

记一次“访问量超过1000的人数”统计,计算聚合桶的个数

Elasticsearchziyou 发表了文章 • 2 个评论 • 7701 次浏览 • 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&gt" 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 />

如果目前索引已存在,如何增加分片数量?

ElasticsearchJoshua 回复了问题 • 7 人关注 • 4 个回复 • 15092 次浏览 • 2019-08-01 16:34 • 来自相关话题