연습 - count 함수를 사용하여 이벤트 개수 계산

완료됨

Kusto 쿼리를 사용하여 데이터 세트를 살펴보고 인사이트를 얻을 수 있습니다. 기상 데이터 세트가 있으며 이 데이터에서 인사이트를 얻기 위해 이벤트를 비교하려고 합니다. 여기서는 특정 영역에서 발생한 특정 유형의 이벤트 수를 확인할 수 있습니다.

count 함수 사용

사용 중인 샘플 데이터베이스에는 2007년 미국의 각 폭풍 이벤트에 대한 항목이 있으며 대략 총 60,000개의 레코드가 있습니다.

이러한 이벤트를 정보 청크로 그룹화하기 위해 summarize 연산자를 사용합니다. summarize은 여러 행의 값 그룹을 집계하여 단일 요약 값을 형성하는 모든 함수에 사용됩니다. 예를 들어, 다음 쿼리를 사용하여 결과 수를 계산하면 전체 테이블을 요약할 수 있습니다.

쿼리 실행

Count 연산자 일반 쿼리 및 결과의 스크린샷.

집계를 그룹화할 방법을 지정하여 유사한 유형에 속한 이벤트의 그룹으로 데이터를 요약할 수도 있습니다. 예를 들어 상태별로 이벤트를 계산하려면 state에 따라 summarize count에 쿼리를 작성할 수 있습니다. 사실 이전 문장은 실제 쿼리와 매우 유사합니다. 그룹별 행 수를 계산하는 count()라는 집계 함수를 사용합니다. 이 함수는 count_에서 EventCount로 기본 이름이 바뀐 쿼리 내에서 그룹화된 이벤트의 수를 상태별로 제공하는 새 열을 생성합니다. 새 열의 이름을 바꾸는 것은 쿼리 및 결과를 더 읽기 쉽게 만들기 위해 권장되는 방법입니다.

  1. 쿼리를 복사하여 쿼리 편집기에 붙여넣습니다.

    쿼리 실행

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. 쿼리 창 위에 있는 실행 단추를 선택하거나 Shift+Enter를 눌러 쿼리를 실행합니다.

    다음 이미지와 같은 결과가 표시됩니다.

    Count 연산자 사용 및 결과의 스크린샷.

dcount()countif() 함수 사용

이전 쿼리는 상태당 이벤트 수를 반환했습니다. 그러나 이벤트를 계산하는 더 정교한 방법이 있습니다.

  • 예를 들어, 특정 유형의 이벤트만 계산할 수 있습니다. countif() 함수는 조건자가 true인 레코드를 계산합니다. countif(DamageCrops > 0)를 사용하는 쿼리는 작물 피해가 0보다 큰 경우에 해당되는 레코드의 수를 계산합니다.
  • dcount() 함수를 사용하여 고유한 유형의 이벤트 수를 계산할 수도 있습니다.

이러한 count 함수와 함께 summarize 연산자를 사용하여 다음 질문에 대답하는 하나의 쿼리를 구성했습니다.

  • 각 상태에서 발생한 폭풍 이벤트는 몇 개인가요?
  • 각 상태에서 피해를 야기한 이벤트는 몇 개인가요?
  • 각 상태에서 발생한 이벤트의 유형은 몇 가지인가요?

요약 연산자 내의 모든 요소는 쉼표로 구분되며 동일한 열(이 경우 상태)로 그룹화됩니다. summarize 연산자에 이름이 지정되지 않은 열은 삭제됩니다. 다른 열을 포함하려면 데이터가 요약된 열의 이름을 따라 그 이름을 지정합니다.

  1. 다음 쿼리를 실행합니다.

    쿼리 실행

    StormEvents
    | summarize count(),
        EventsWithDamageToCrops = countif(DamageCrops > 0),
        Count = dcount(EventType) by State
    | sort by Count
    

    다음 이미지와 같은 결과가 표시됩니다.

    상태별로 이벤트를 계산하는 Kusto 쿼리 스크린샷.

  2. 결과의 열 이름을 확인합니다. 쿼리의 어떤 부분이 각 열에 해당하나요? dcount() 함수가 새 열을 만들고 그 이름을 Count로 지정한 것을 볼 수 있습니다. 또한 쿼리에서 이 이름을 sort 연산자의 열로 사용했습니다. 텍사스에서 얼마나 많은 종류의 폭풍이 발생했나요?

distinct 연산자 사용

이전 쿼리는 이 데이터에서 다룬 기간 동안 텍사스에서 27가지 유형에 속한 폭풍의 고유 개수를 반환했습니다. 더 드릴다운하여 이 모든 유형에 속한 폭풍의 이름을 확인하는 것은 흥미로울 것입니다. 텍사스에서 각기 다른 유형에 속한 이벤트의 목록을 보려면 특정 열의 고유 값을 나열하는 distinct() 연산자를 사용합니다.

  1. 다음 쿼리를 실행합니다.

    쿼리 실행

    StormEvents
    | where State == "TEXAS"
    | distinct EventType
    | sort by EventType asc
    

    다음 이미지와 같은 결과가 표시됩니다.

    Distinct 연산자를 사용하는 Kusto 쿼리 스크린샷.

  2. 결과 목록을 살펴보세요. 폭풍 유형 중 의외의 이벤트가 있었나요?