평균 집계

평균 집계 (Average aggregation)

avg 메트릭은 필드의 평균값을 반환하는 단일 값(single-value) 메트릭 집계예요. 집계가 적용되는 필드의 산술 평균을 구하고 싶을 때 사용해요.

출처: 문서

본문

파라미터

avg 집계는 다음과 같은 파라미터를 받아요.

파라미터 필수/선택 데이터 타입 설명
field 필수 String 평균을 계산할 필드예요.
missing 선택 Float 필드의 값이 없는 문서에 할당할 값이에요. 기본적으로 avg는 계산에서 누락된 값을 생략해요.

예제

다음 예제 요청은 OpenSearch Dashboards e-커머스 샘플 데이터에서 taxful_total_price 필드의 평균을 계산해요:

GET opensearch_dashboards_sample_data_ecommerce/_search
{
  "size": 0,
  "aggs": {
    "avg_taxful_total_price": {
      "avg": {
        "field": "taxful_total_price"
      }
    }
  }
}

예제 응답

응답에는 taxful_total_price의 평균값이 담겨 있어요:

{
  "took": 85,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 4675,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "avg_taxful_total_price": {
      "value": 75.05542864304813
    }
  }
}

집계 이름(avg_taxful_total_price)을 키로 사용해 응답에서 해당 집계 결과를 꺼내 올 수 있어요.

누락 값 처리 (Missing values)

집계 대상 필드의 값이 없는 문서에 특정 값을 할당해 줄 수 있어요. 자세한 내용은 누락 값 집계(Missing aggregations) 문서를 참고하세요.

다음 문서들을 인덱스에 넣어 예제 인덱스를 준비해 봐요. 두 번째 문서에는 gpa 값이 없다는 점에 주목하세요:

POST _bulk
{ "create": { "_index": "students", "_id": "1" } }
{ "name": "John Doe", "gpa": 3.89, "grad_year": 2022}
{ "create": { "_index": "students", "_id": "2" } }
{ "name": "Jonathan Powers", "grad_year": 2025 }
{ "create": { "_index": "students", "_id": "3" } }
{ "name": "Jane Doe", "gpa": 3.52, "grad_year": 2024 }

예제: 누락 값을 대체하기

누락된 gpa 필드를 0으로 대체하면서 평균을 계산해 봐요:

GET students/_search
{
  "size": 0,
  "aggs": {
    "avg_gpa": {
      "avg": {
        "field": "gpa",
        "missing": 0
      }
    }
  }
}

응답은 다음과 같아요. 누락 값을 무시하는 다음 예제와 비교해 보세요:

{
  "took": 12,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 3,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "avg_gpa": {
      "value": 2.4700000286102295
    }
  }
}

예제: 누락 값 무시하기

missing 파라미터를 지정하지 않고 평균을 계산해 봐요:

GET students/_search
{
  "size": 0,
  "aggs": {
    "avg_gpa": {
      "avg": {
        "field": "gpa"
      }
    }
  }
}

집계자는 해당 필드 값이 없는 문서를 생략하고 평균을 계산해요(기본 동작):

{
  "took": 255,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 3,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "avg_gpa": {
      "value": 3.7050000429153442
    }
  }
}

더 알아보기 (Learn more)