Kibana의 「Data Table」에 동일 필드의 집계 결과를 다른 조건마다 가로 일렬로 늘어놓고 싶다.

목적



Kibana의 「Data Table」에 동일 필드의 집계 결과를 다른 조건마다 가로 일렬로 늘어놓고 싶다.

구체적으로는 다음과 같이 상품별로 구매 횟수를 표시하는 테이블을 만들고 싶습니다.



로그 구조



사용자의 상품 구매를 고려



사용자가있는 가게에서 상품을 구입했다고 가정
동 슈퍼, 웨스트 편의점, 미나미 상점, 북 백화점과 4개의 가게가 존재하며, 아래의 상품을 구입


상품명
단가


버섯의 산
120엔

코알라 행진
92엔

스기노코무라
111엔

다케노코 마을
140엔

하겐 다츠
1000엔


Kibana에서 이 상품명마다 구입 횟수를 표시하고 싶다.

로그는 json 형식으로 등록되어 있어 다음과 같은 구조로 되어 있다.

사용자가 가게에 가면 만들어지는 로그


{"user_id": 52, "kind_name": "アクセス", "place": "北デパート", "@timestamp": "2019-06-13T19:55:23+09:00:00"}

사용자가 구매할 때 만들어지는 로그


{"user_id": 43, "kind_name": "購入", "price": 140, "place": "南商店", "total_price": 280, "total_price_with_tax": 302.4, "product": "たけのこの里", "p_value": 2, "@timestamp": "2019-06-29T05:42:17+09:00:00"}

이번에는 2019/6/1~2019/6/3까지의 "kind_name": "구매"로그의 수를 product 마다 표시시키고 싶다.

Kibana의 Data Table에서 상품별로 구매 횟수를 표시하는 순서



집계 값을 하루에 정리





Buckets를 편집하고 Aggregation으로 Date Histogram을 선택,
Field에 @timestamp 를 선택, Interval에 Daily 선택.



구매 수를 제품별로 표시



타케 노코 마을의 구매 횟수 표시





Metrics에 새로운 Metric을 추가. Filters에서 필터링 조건을 지정하고 싶기 때문에 Aggregation은
Average Bucket, Max Bucket, Min Bucket 및 Sum Bucket 중에서 적절하게 선택 1



로그 수가 하루마다 계산됩니다.

Date Histogram에서 시계열 데이터를 그룹화합니다.
Daily에서 하루 단위로 그룹화한다. Hourly나 Minute를 선택하면 1시간 단위나 1분 단위로 그룹화할 수 있다.

Bucket의 Sub Aggregation에서 Filters를 선택하고 Filter1에 선택 조건을 넣습니다.
죽순의 마을의 구입 수 횟수를 표시하고 싶기 때문에, product.keyword : 죽순의 마을과 넣어 조건을 짜다
Metric의 Aggregation은 Count를 선택


다른 상품도 동일하게 설정을 하면, 상품마다의 구입 횟수를 Kibana의 Data Table로 표시할 수 있다

결론



Add a filter로 로그 전체를 짜는 방법은 알고 있었지만, 항목별로 짜는 방법을 잘 모르기 때문에, 이번 이미지 첨부로 순서를 써 보았다.



Average Bucket, Max Bucket, Min Bucket, Sum Bucket은 검색 결과를 지정된 조건으로 분류하고 평균값, 최대값, 최소값 및 합계 값을 얻지만 Filters에서 검색 조건이 하나인 경우 결과는 하나이므로 평균값, 최대값, 최소값, 합계값 중 어느 것을 취해도 같은 값이 된다.

좋은 웹페이지 즐겨찾기