我运行的elasticsearch群集无法访问 x-packs
在aws上,但我还是想做一个 cumulative cardinality aggregation
以确定我的网站的每日新用户数。
这个问题有别的解决办法吗?
例如,如何转换:
GET /user_hits/_search
{
"size": 0,
"aggs": {
"users_per_day": {
"date_histogram": {
"field": "timestamp",
"calendar_interval": "day"
},
"aggs": {
"distinct_users": {
"cardinality": {
"field": "user_id"
}
},
"total_new_users": {
"cumulative_cardinality": {
"buckets_path": "distinct_users"
}
}
}
}
}
}
产生同样的结果 cumulative_cardinality
?
1条答案
按热度按时间hc2pp10m1#
累积基数的增加正是因为这个原因——它以前不容易计算。。。
就像elasticsearch中几乎所有的东西一样,有一个脚本可以帮你完成。这是我的看法。
设置索引
一天内添加1个新用户,第二天再添加2个,其中一个不是严格意义上的“新用户”。
使用参数化的开始时间+天数来模拟日期直方图,对用户进行相应的分组,然后将日期结果与-à-可见光
顺从的
这个脚本速度肯定很慢,但有一个潜在的非常有用的优点——您可以调整它以返回新用户ID的完整列表,而不仅仅是从累积基数中获得的计数,根据它的实现作者的说法,累积基数在设计上只能以顺序、累积的方式工作。