시계열 데이터 일정 간격 집계
엘라스틱서치 시계열데이터 날짜별, 시간별 등 기준 일정 간격으로 집계하는법을 알아봅시다.
달력기준 일정 간격 집계
GET [인덱스]/_search
{
"query": {
"match_all": {}
},
"size": 0,
"aggs": {
"my_buckets": {
"date_histogram": {
"field": "timetmp",
"calendar_interval": "month",
"format": "yyyy-MM"
}
}
}
}
my_buckets: 버켓 이름
field: 간격을 측정할 필드
format: 날짜 포맷
calendar_interval: 달력 간격
minute, 1m | 분 |
hour, 1h | 시 |
day, 1d | 일 |
week, 1w | 주 |
month, 1M | 월 |
quarter, 1q | 분기 |
year, 1y | 년 |
시간기준 일정 간격 집계
GET [인덱스]/_search
{
"query": {
"match_all": {}
},
"size": 0,
"aggs": {
"my_buckets": {
"date_histogram": {
"field": "timetmp",
"fixed_interval": "1h",
"format": "yyyy-MM-dd/hh:mm:ss"
}
}
}
}
my_buckets: 버켓 이름
field: 간격을 측정할 필드
format: 날짜 포맷
fixed_interval : 시간 간격
ms | 밀리초 |
s | 초 |
m | 분 |
h | 시 |
d | 일 |
일정 간격 데이터 통계
GET [인덱스]/_search
{
"query": {
"match_all": {}
},
"size": 0,
"aggs": {
"my_buckets": {
"date_histogram": {
"field": "timetmp",
"fixed_interval": "1h",
"format": "yyyy-MM-dd/hh:mm:ss"
},
"aggs":{
"data_sum":{
"sum" : { "field": "egg" }
}
}
}
}
}
각각의 date_histogram 데이터를 통계내고 싶으면 위와 같이 aggs 를 이용하여 통계낼수 있습니다.
기타
GET [인덱스]/_search
{
"query": {
"match_all": {}
},
"size": 0,
"aggs": {
"my_buckets": {
"date_histogram": {
"field": "timetmp",
"fixed_interval": "6h",
"extended_bounds": {
"min": "2024-03-26T00:00:00"
"max": "2024-03-26T23:59:59"
}
}
}
}
}
extended_bounds 를 이용하여 histogram 범위를 확장하면 중간에 Null값으로 인해 표시되지 않는 데이터도 표시할 수 있습니다.
extended_bounds 적용 전 데이터
"buckets":
[
{
"key_as_string": "2024-03-26T00:00:00.000Z",
"key": 1711411200000,
"doc_count": 4245
},
{
"key_as_string": "2024-03-26T12:00:00.000Z",
"key": 1711454400000,
"doc_count": 1862
}
]
extended_bounds 적용 후 데이터
"buckets":
[
{
"key_as_string": "2024-03-26T00:00:00.000Z",
"key": 1711411200000,
"doc_count": 4245
},
{
"key_as_string": "2024-03-26T06:00:00.000Z",
"key": 1711432800000,
"doc_count": 0
},
{
"key_as_string": "2024-03-26T12:00:00.000Z",
"key": 1711454400000,
"doc_count": 1862
},
{
"key_as_string": "2024-03-26T18:00:00.000Z",
"key": 1711476000000,
"doc_count": 0
}
]
마무리
잘못된 점이 있거나 궁금한 점이 있다면 언제든지 문의해주시기 바랍니다!
728x90
반응형
'프로그래밍 > Elasticsearch' 카테고리의 다른 글
[Elasticsearch] 엘라스틱서치 명령어 모음 (0) | 2024.02.23 |
---|