- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组设备定期(比如说每 10 分钟)推送到 ElasticSearch,这种形式的条目:
{
"deviceId": "unique-device-id",
"timestamp": 1586390031,
"payload" : { various data }
}
最佳答案
我将跳过表格并采用第二种方法——只计算计数。我认为有可能从计数倒退到行。
注意:我将使用人类可读的时间格式而不是时间戳,但 epoch_seconds
在您的实际用例中也可以正常工作。另外,我添加了 comment
字段为每个文档提供一些背景。
首先,设置您的索引:
PUT fleet
{
"mappings": {
"properties": {
"timestamp": {
"type": "date",
"format": "epoch_second||yyyy-MM-dd HH:mm:ss"
},
"comment": {
"type": "text"
},
"deviceId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}
POST fleet/_doc
{
"deviceId": "asdjhfa343",
"timestamp": "2020-04-05 10:00:00",
"comment": "in the last week"
}
POST fleet/_doc
{
"deviceId": "asdjhfa343",
"timestamp": "2020-04-10 13:05:00",
"comment": "#asdjhfa343 in the last hour"
}
POST fleet/_doc
{
"deviceId": "asdjhfa343",
"timestamp": "2020-04-10 12:05:00",
"comment": "#asdjhfa343 in the 2 hours"
}
POST fleet/_doc
{
"deviceId": "asdjhfa343sdas",
"timestamp": "2020-04-07 09:00:00",
"comment": "in the last week"
}
POST fleet/_doc
{
"deviceId": "asdjhfa343sdas",
"timestamp": "2020-04-10 12:35:00",
"comment": "in last 2hrs"
}
deviceId
其中
在过去 2 小时内出现,但在 1 小时内未出现 .
GET fleet/_search
{
"size": 0,
"aggs": {
"distinct_devices_last7d": {
"filter": {
"range": {
"timestamp": {
"gte": "now-7d"
}
}
},
"aggs": {
"uniq_device_count": {
"cardinality": {
"field": "deviceId.keyword"
}
}
}
},
"not_seen_last1h": {
"filter": {
"range": {
"timestamp": {
"gte": "now-2h"
}
}
},
"aggs": {
"device_ids_per_hour": {
"date_histogram": {
"field": "timestamp",
"calendar_interval": "day",
"format": "'disregard' -- yyyy-MM-dd"
},
"aggs": {
"total_uniq_count": {
"cardinality": {
"field": "deviceId.keyword"
}
},
"in_last_hour": {
"filter": {
"range": {
"timestamp": {
"gte": "now-1h"
}
}
},
"aggs": {
"uniq_count": {
"cardinality": {
"field": "deviceId.keyword"
}
}
}
},
"uniq_difference": {
"bucket_script": {
"buckets_path": {
"in_last_1h": "in_last_hour>uniq_count",
"in_last2h": "total_uniq_count"
},
"script": "params.in_last2h - params.in_last_1h"
}
}
}
}
}
}
}
}
date_histogram
聚合只是一个占位符,使我们能够使用
bucket script
获得最终差异,无需进行任何后期处理。
size: 0
,我们对
hits
不感兴趣部分。所以只取聚合,这里是带注释的结果:
...
"aggregations" : {
"not_seen_last1h" : {
"doc_count" : 3,
"device_ids_per_hour" : {
"buckets" : [
{
"key_as_string" : "disregard -- 2020-04-10",
"key" : 1586476800000,
"doc_count" : 3, <-- 3 device messages in the last 2hrs
"total_uniq_count" : {
"value" : 2 <-- 2 distinct IDs
},
"in_last_hour" : {
"doc_count" : 1,
"uniq_count" : {
"value" : 1 <-- 1 distict ID in the last hour
}
},
"uniq_difference" : {
"value" : 1.0 <-- 1 == final result !
}
}
]
}
},
"distinct_devices_last7d" : {
"meta" : { },
"doc_count" : 5, <-- 5 device messages in the last 7d
"uniq_device_count" : {
"value" : 2 <-- 2 unique IDs
}
}
}
关于 Elasticsearch /Kibana : get values that are not found in entries more recent than a certain date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61112108/
我需要为一个小项目想出一个正则表达式。 字符串不应以: "/wiki" 而且它也不应该有下面的模式"/.*:.*"(基本上模式以字符 '/' 开头,之后出现任何 ':') 而且它也不能有某个字符'#'
嗨,我有一个 react 应用程序,我正在返回几个按钮。我想做的是根据您单击的按钮,另一个组件将在 View 中显示和渲染。我已经查看了文档中的条件渲染,但我不确定如何将其与状态联系起来并渲染我所期望
如何编写 if 语句,使其仅在选择框中的值 A 更改为值 B 时应用? https://jsfiddle.net/mademoiselletse/gv0ohdzv/1/ 我有以下“英里”选择框和“剩余
我需要一个匹配 7 字母单词的正则表达式,该单词以 'st' 开头。例如,它应该只匹配以下内容中的 'startin':start startin starting 最佳答案 一般提示: 起始符号直接
我知道这两个端点:/users/{user-id}/media/recent和/tags/{tag-name}/media/recent 但我试图只获取某个用户发布的也有某个主题标签的帖子。有没有简单
我想当在下拉列表 1 上选择项目 x5 时,在下拉列表 2 上自动选择项目 y0 x5 x4
我有一个要求,我们将把一堆不同供应商的金融价格“firehosing”到 Kafka 中的一个“市场数据”主题中。问题是,其中一些供应商具有细粒度的许可要求,一直到单个证券。如果不为每个不同的许可粒度
我想使用神经网络来学习输入向量和输出向量的映射。该问题的物理原理有限制,某些输入节点仅对某些输出节点有影响。我想在训练中使用这个约束。 如果我将神经网络表述为有向图,我想象从某些输入节点到输出节点的路
所以我在一页上弹出了两个表格。这是我之前用来选择第一个表中的所有复选框(当时是唯一一个)的脚本: $('#selectAll').click(function() { if(this.ch
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this q
我正在尝试显示 | 管道字符以分隔我页面上的链接。但问题是它们都有相同的类,如果我将它应用于类,它们都会得到管道,这很好,除了最后一个。我能够抵消这种情况的唯一方法是将我需要的那些应用到一个 id,除
所以我有一个包含大约 300 个 .txt 文件的文件夹,所有文件的命名如下 ERROR WITH Position Post_20162602_052055.txt ERROR WITH Posit
我的问题很简单,但我找不到简单的解决方案:我有一个大于或等于 16 的整数,所以至少 1000 是二进制的。我希望使用按位非运算符翻转第三位。在这种情况下,它将是 1100。 有没有运营商可以做到这一
感谢对 my previous question 的回答,我能够创建一个函数宏,使其返回 Map将每个字段名称映射到它的类值,例如 ... trait Model case class User (n
我的应用程序 Nib 中有以下项目: 通常:文件所有者、第一响应者窗口、委托(delegate) View Controller “a” 查看“b” UIScrollView“c” “b”中的一些其他
假设我的屏幕上有 100 个由 *ngFor 生成的 div,它们从具有类似数据的对象中获取值 {A1:someOtherObject,A2:someOtherOtherObject...,J10:s
我正在使用抽象类和虚拟方法。目前,我有一个由按钮单击和两个多行文本框组成的窗口窗体,我在其中显示结果。基类有一个默认构造函数和一个接受基类所需的所有必要数据的构造函数。有两个类 Trees 和 Tom
我有一个数据集可以调查不同种族(黑人、白人和拉丁裔)个体的抑郁症。 我想知道基线时的抑郁症与所有种族的后期抑郁症有何关系,我做到了 lm(depression_base ~ depression_po
如何根据长度排除某些术语?例如,不要将少于 3 个字母或多于 20 个字母的术语编入索引。还排除以数字开头的单词。 谢谢, 最佳答案 StandardAnalyzer 有一个您可以设置的 maxTok
我正在寻找一个脚本,可以根据单词的位置突出显示一定数量的单词。例如,对于以下内容我只想突出显示第二个、第三个和第四个单词: Quisque bibendum sem ut lacus. In
我是一名优秀的程序员,十分优秀!