es - elasticsearch - aggs - pipeline - cumulative_cardinality

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

问:cumulative_cardinality有什么特点?
答:
在这里插入图片描述
问:cumulative_cardinality如何使用?
答:

DELETE /cumulative_cardinality_test

PUT /cumulative_cardinality_test
{
  "mappings": {
    "properties": {
      "type": {"type": "integer"},
      "num": {"type": "integer"},
      "date": {"type": "date"}
    }
  }
}

POST /cumulative_cardinality_test/_bulk
{"index": {"_id": 1}}
{"type": 1, "num": 4, "date": "1989-01-10"}
{"index": {"_id": 2}}
{"type": 2, "num": 4, "date": "1988-01-10"}
{"index": {"_id": 3}}
{"type": 1, "num": 5, "date": "1990-01-10"}
{"index": {"_id": 4}}
{"type": 2, "num": 9, "date": "1990-01-10"}
{"index": {"_id": 5}}
{"type": 1, "num": 6, "date": "1989-01-10"}

GET /cumulative_cardinality_test/_search
{
  "size": 0,
  "aggs": {
    "cumulative_aggs": {
      "date_histogram": {
        "field": "date",
        "calendar_interval": "year"
      },
      "aggs": {
        "cardinality_aggs": {
          "cardinality": {
            "field": "num"
          }
        },
        "cumu_aggs": {
          "cumulative_cardinality": {
            "buckets_path": "cardinality_aggs"
          }
        },
        "derivative_aggs": {
          "derivative": {
            "buckets_path": "cumu_aggs"
          }
        }
      }
    }
  }
}

# 结果
{
  "took" : 862,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 5,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "cumulative_aggs" : {
      "buckets" : [
        {
          "key_as_string" : "1988-01-01T00:00:00.000Z",
          "key" : 567993600000,
          "doc_count" : 1,
          "cardinality_aggs" : {
            "value" : 1
          },
          "cumu_aggs" : {
            "value" : 1
          }
        },
        {
          "key_as_string" : "1989-01-01T00:00:00.000Z",
          "key" : 599616000000,
          "doc_count" : 2,
          // 当前bucket唯一值(基数)数量
          "cardinality_aggs" : {
            "value" : 2
          },
          // 从开始到现在bucket的累积基数的数量
          "cumu_aggs" : {
            "value" : 2
          },
          // 和上一个bucket相比增加的基数的数量
          "derivative_aggs" : {
            "value" : 1.0
          }
        },
        {
          "key_as_string" : "1990-01-01T00:00:00.000Z",
          "key" : 631152000000,
          "doc_count" : 2,
          "cardinality_aggs" : {
            "value" : 2
          },
          "cumu_aggs" : {
            "value" : 4
          },
          "derivative_aggs" : {
            "value" : 2.0
          }
        }
      ]
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是谁的博客?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值