【Elasticsearch】cumulative_cardinality

1.定义与用途

`cumulative_cardinality`是一种父级管道聚合(Parent Pipeline Aggregation),用于在父级直方图(`histogram`)或日期直方图(`date_histogram`)聚合中计算累计基数。它主要用于统计在某个时间范围内“新增”的唯一项目数量,例如每天访问网站的新访客数量。

2.工作原理

`cumulative_cardinality`聚合会计算每个时间桶中的唯一值数量,并将这些值累计起来。它依赖于父级直方图中的某个基数聚合(`cardinality`)结果。具体来说,它会从第一个时间桶开始,逐个累加每个桶中的唯一值数量,从而得到每个时间点的累计唯一值数量。

3.参数

• `buckets_path`:必需参数,指定要计算累计基数的基数聚合路径。

• `format`:可选参数,定义输出值的格式。如果指定,格式化的值将返回在聚合的`value_as_string`属性中。

4.应用场景

`cumulative_cardinality`聚合特别适用于以下场景:

• 统计新增用户:例如,每天访问网站的新访客数量。

• 分析趋势:通过累计唯一值的变化,可以分析数据的增长趋势。

5.示例

假设我们有一个索引`user_hits`,其中记录了每次用户访问的日期(`timestamp`字段)和用户ID(`user_id`字段)。我们希望计算每天新增的唯一用户数量。

查询示例:

```json

GET /user_hits/_search

{

  "size": 0,

  "aggs": {

    "users_per_day": {

      "date_histogram": {

        "field": "timestamp",

        "calendar_interval": "day"

      },

      "aggs": {

        "distinct_users": {

          "cardinality": {

### 如何在 Docker 中安装 Elasticsearch 和 Elastic View #### 安装 Elasticsearch 使用 Docker 为了通过 Docker 安装 Elasticsearch,可以利用官方提供的镜像来简化部署过程。具体的操作指令如下: 创建并启动一个名为 `elasticsearch` 的容器实例,映射主机端口 9200 到容器内部用于 HTTP 访问的相同端口号,并设置内存限制以满足 Elasticsearch 对 JVM 堆大小的要求。 ```bash docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.1 docker run -d --name elasticsearch \ -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ docker.elastic.co/elasticsearch/elasticsearch:7.8.1 ``` 上述命令会下载指定版本的 Elasticsearch 镜像并按照配置参数运行它[^1]。 #### 安装 Kibana (作为可视化工具) 虽然提到的是 elastic_view, 实际上更常见的是使用 Kibana 来管理和监控 Elasticsearch 数据库。Kibana 是由 Elastic 提供的一个开源分析和可视化的平台,能够帮助查看存储于 Elasticsearch 索引中的数据。可以通过以下方式快速搭建 Kibana 并连接到之前建立好的 Elasticsearch 上: ```bash docker pull docker.elastic.co/kibana/kibana:7.8.1 docker run -d --name kibana \ -p 5601:5601 \ -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \ --link elasticsearch \ docker.elasic.co/kibana/kibana:7.8.1 ``` 这里假设 Elasticsearch 已经作为一个单独的服务被命名为 `elasticsearch` 启动了;如果是在同一台机器上的不同网络命名空间,则可能需要调整链接部分或直接使用 IP 地址替代服务名[^2]。 对于想要实现的功能——即所谓的 “elastic_view”,实际上是指向 Kibana 或者其他类似的插件化界面应用,比如 Curator、Watcher 等等。而这些功能通常已经集成到了 Kibana 当中或是可通过 X-Pack 插件获得高级特性支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值