How to display data as a percentage in Kibana visualizations | Elastic Blog
엔지니어링

Kibana 시각화에서 데이터를 퍼센트로 표시하는 방법

데이터를 분석할 때 퍼센트를 사용하는 것은 효과적인 숫자 비교에 꼭 필요한 접근 방식이며, 특히 해당 데이터에서 샘플 크기 또는 총계 간에 차이가 큰 경우에는 더욱더 그렇습니다. 퍼센트를 사용하면 시간, 지리적 리전, 제품군 등과 같은 차원 카테고리에 걸쳐 데이터 합계가 얼마나 변경되었는지 빠르고 정확하게 파악할 수 있습니다.

리전별 선 시각화

리전 퍼센트별 선 시각화

이 블로그 게시물에서는 원형 차트, 단일 숫자 메트릭, 테이블, TSVB(시계열 데이터 시각화 도우미)를 사용한 시계열 등 일반적으로 사용되는 시각화를 사용해 Kibana에서 퍼센트를 계산하는 몇 가지 예를 살펴보겠습니다.

이 블로그에서는 Kibana에 제공되어 있는 flightsecommerce 샘플 데이터 세트를 사용합니다. 이 샘플 데이터를 사용하여 다음 질문에 답하는 방법을 배웁니다.

  • 정시 항공편의 퍼센트는 어떻게 되나요?
  • 시간 경과에 따른 각 지연 유형의 비율은 어떻게 되나요?
  • 주별로 총 매출액이 어떻게 변하나요?

시작하기 전에 flights 및 ecommerce 샘플 데이터를 설치해야 합니다. 자체 클러스터(6.5 이상)에 샘플 데이터를 설치하거나 Elasticsearch Service 14일 무료 체험판을 사용하면 됩니다.

정시 항공편의 퍼센트는 어떻게 되나요?

항공사 고객은 정시 목표 대비 실적을 보여주는 대시보드에 수치를 크게 표시하려고 합니다. 샘플 kibana_sample_data_flights 인덱스의 각 문서는 단일 항공편을 나타내므로 퍼센트를 계산하려면 “정시 항공편”을 나타내는 문서 수를 항공편 수로 나누어야 합니다.

정시 항공편 수를 총 항공편 수로 나눔

이 나누기 계산 때문에 Filter ratio 계산이 포함된 TSVB 메트릭 시각화를 사용해야 합니다. Filter ratio는 두 개의 문서 세트에서 동일한 메트릭을 나눈 후 그 결과로 숫자를 반환합니다. TSVB 사용에 필요한 유일한 요구 사항은 인덱스에 시간 필드가 있어야 한다는 것인데, 이는 kibana_sample_data_flights 인덱스에 제공되어 있습니다.

정시 항공편 퍼센트

Kibana 7.4 이상의 TSVB에서 이 설정을 구성하려면 먼저 시각화 유형과 데이터 세트를 선택한 다음 위의 퍼센트를 표시하는 데 사용되는 집계를 구성합니다.

시각화 유형과 데이터 세트를 선택하려면 다음을 수행합니다.

  1. TSVB로 이동하여 Metric 탭을 선택합니다.Metric 탭 선택
  2. Panel options 탭을 선택합니다.
  3. Panel options 탭
  1. 마지막 간격만 사용하는 것이 아니라 Entire time range로 Data timerange mode를 설정합니다. 참고: 이 설정은 Kibana 7.4 이상에서만 사용할 수 있습니다. 이전 버전에서는 날짜 간격을 길게 설정하시기 바랍니다.
  2. kibana_sample_data_flights를 인덱스로 입력합니다. time fieldtimestamp로 설정합니다.Time field를 timestamp로 설정

인덱스와 시간 범위를 선택했으므로 이제 표시할 데이터를 구성할 수 있습니다.

  1. Data 탭으로 돌아가서 Filter Ratio를 사용하여 FlightDelayType: "No Delay"와 같은 특정 값의 퍼센트를 계산합니다.Filter Ratio 사용
  1. Options 탭으로 이동하여 퍼센트 포맷터를 선택합니다.
    • 기본 설정인 4자리 정밀도가 너무 높으면 사용자 정의 형식 스트링을 사용하여 자릿수를 줄입니다.사용자 정의 형식 스트링 사용

하나의 값 대신 여러 값을 비교하려는 경우 Kibana에는 사용할 수 있는 시각화가 두 가지 더 있습니다. bucket aggregation을 사용하여 비교할 값을 선택하는 경우 원형 차트 또는 테이블을 사용하여 각 값을 퍼센트로 변환할 수 있습니다.

각 값을 퍼센트로 변환하는 원형 차트

각 값을 퍼센트로 변환하는 테이블 시각화

이러한 시각화는 FlightDelayType 필드에 있는 Terms bucket aggregation을 사용하며 버킷당 횟수를 총 퍼센트로 변환하여 표시합니다. Flights 샘플 데이터에는 FlightDelayType에 대한 값이 6개뿐이므로 Terms 크기를 6 이상으로 설정하면 정확한 퍼센트가 계산됩니다. 데이터에 고유 값이 더 많은 경우 [Other] 버킷을 활성화하여 모든 데이터를 포함하도록 해야 합니다.

Other 버킷 활성화

시간 경과에 따른 각 지연 유형의 비율은 어떻게 되나요?

동일한 항공사에서 대시보드에 두 개의 시각화를 나란히 표시하여 위의 설명 요약과 시계열을 비교하려고 합니다. 그러면 특정 시간 범위를 자세히 살펴보고 요약과 분석 정보를 동시에 볼 수 있습니다.

항공편 문서에 시간 필드가 있으므로 시각화를 구축하기에 가장 효과적인 옵션은 TSVB입니다. 위와 동일한 설정을 통해 Filter Ratio를 사용하여 “No Delay” 항공편을 간격당 총 항공편 수로 나눌 수 있습니다.

정시 항공편 시각화

둘 이상의 계열을 비교하려면 여러 ‘필터 비율’을 작성하거나 ‘집계’를 사용하여 그룹을 선택하면 됩니다. TSVB에는 다수의 계열을 100% 척도에 맞춰 표시하는 모드가 있습니다.

여러 계열 시각화

TSVB에서 누적 퍼센트 시각화를 구성하려면 먼저 적절한 데이터를 선택한 다음 집계를 구성합니다. 적절한 데이터를 선택하려면 다음을 수행합니다.

  1. TSVB로 이동하여 Panel options를 선택한 다음 kibana_sample_data_flights를 인덱스로 입력합니다.
  2. Time fieldtimestamp로 설정합니다.time field를 timestamp로 설정

집계를 구성하려면 다음을 수행합니다.

  1. Data 탭으로 돌아갑니다.
  2. Group by 아래에서 FlightDelayType의 Terms를 선택합니다.
  3. Options 탭으로 이동합니다.Options 탭에서 선택
  4. Data Formatter > Percent를 선택합니다.
  5. Stacked > Percent를 선택합니다.
  6. stacked data-percent 선택
  7. Split color theme > Rainbow를 선택합니다.

주별로 매출액이 어떻게 변하나요?

각 트랜잭션을 kibana_sample_data_ecommerce 인덱스에 저장하는 전자 상거래 고객이 있습니다. 이 고객은 비즈니스에 매우 중요한 수치인 주별 매출액 변화를 퍼센트로 보여주는 시각화를 원합니다. 이 요청에는 시간 구성 요소가 있으므로 TSVB를 사용하여 시각화를 구축해야 합니다. Timelion을 사용하여 주별 차트를 작성할 수도 있지만 여기에서는 다루지 않습니다.

위에서 보았듯이 TSVB는 동일한 집계를 사용하여 메트릭 시각화와 시계열 시각화를 모두 구축할 수 있습니다. Data timerange modeEntire time range로 설정한 이전 예제와는 달리, 이 시각화에서는 가장 최근의 데이터만 1주일 전의 같은 날과 비교하여 표시하도록 설정합니다. 보시는 바와 같이 이 두 개의 시각화는 데이터의 가장 최근 날짜에 매출이 5.2% 감소한 것을 보여줍니다.

매출 감소

매출 감소를 보여주는 시각화

이 시각화를 구축하려면 일별로 총 매출을 구한 후 이를 7일 전의 총 매출과 비교해야 합니다. 이 비교 작업을 가장 쉽게 수행하는 방법은 각 값을 가져온 후 특정 간격의 이전 값에서 그날의 값을 빼는 Serial Difference 집계를 사용하는 것입니다.

이전 예와 동일하게 TSVB를 설정하하여 kibana_sample_data_ecomerce 인덱스를 선택하고 시간 필드를 order_date로 설정합니다. 또한 간격을 정확히 1d로 설정합니다. TSVB의 기본 간격은 전체 시간 범위에 따라 변경되지만, 이 계산에서는 간격이 항상 동일할 것으로 가정합니다.

데이터 샘플 선택

[Data] 탭으로 돌아가서 taxful_total_price 필드에 대해 Sum 집계를 선택합니다.

Sum 집계

이미 시간 간격을 1일로 설정했으므로, 간격을 7 버킷으로 하여 Sum of taxful_total_priceSerial Difference 집계를 추가합니다. 이 ‘Serial Difference’는 일별로 7 버킷 이전의 값에서 그날의 값을 차감하여 주별 총 매출 차액을 제공합니다. 이 ‘Serial Difference’ 메트릭이 계산되는 방식 때문에 항상 7일의 공백이 생기므로 시간 범위를 길게 선택해야 합니다.

Serial Difference 집계

마지막으로 간단한 공식을 통해 주별 차액을 퍼센트로 변환합니다. 현재 매출과 매출 차액을 더한 다음 이를 현재 매출로 나누면 됩니다.

공식을 사용하여 퍼센트 계산

사용된 Painless script((params.total + params.diff) / params.total) - 1입니다.

그 결과 위에 표시된 시각화가 생성됩니다. 명확하게 하기 위해 고정 값 0으로 새로운 계열을 생성하여 차액 0의 기준선을 강조 표시할 수도 있습니다.

이제 Time Series 탭과 Metric 탭 간에 전환하여 사용 사례에 적합한 프레젠테이션을 결정할 수 있습니다.

결론

지금까지 설명한 것은 Kibana에서 어떻게 퍼센트를 효과적으로 계산하고 사용하는지 보여주는 몇 가지 예에 불과합니다. 이 게시물에서 간략하게 다룬 내용 외에, 퍼센트와 관련된 더 많은 계산 옵션을 알아보려면 Kibana의 Canvas와 데이터 쿼리 및 표시를 제어하는 기능을 직접 사용해 보시기 바랍니다.

추가 리소스