Aggregations و کاربردش برای تحلیل داده‌ها

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/06/26
  • تعداد بازدید: 1

 

یکی از ویژگی‌های قدرتمند Elasticsearch قابلیت Aggregation است که به شما امکان می‌دهد داده‌ها را به شکل‌های مختلف گروه‌بندی و تحلیل کنید. این قابلیت مشابه عملیات GROUP BY و توابع تجمیعی (مثل COUNT، SUM، AVG) در SQL عمل می‌کند، اما بسیار انعطاف‌پذیرتر و سریع‌تر است.

انواع اصلی Aggregations

Metric Aggregations

برای محاسبه مقادیر عددی روی داده‌ها استفاده می‌شود. مانند:

  • avg → میانگین
  • sum → مجموع
  • min → کمترین مقدار
  • max → بیشترین مقدار
  • value_count → شمارش مقادیر

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "avg_price": {
      "avg": { "field": "price" }
    }
  }
}

در این مثال میانگین قیمت فروش‌ها محاسبه می‌شود.

Bucket Aggregations

داده‌ها را بر اساس دسته‌بندی یا محدوده مشخص گروه‌بندی می‌کند. نمونه‌ها:

  • terms → گروه‌بندی بر اساس مقادیر یکتا
  • range → تقسیم‌بندی بر اساس بازه‌های عددی
  • date_histogram → گروه‌بندی بر اساس بازه‌های زمانی

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_by_brand": {
      "terms": { "field": "brand.keyword" }
    }
  }
}

در این مثال تعداد فروش‌ها بر اساس برند گروه‌بندی می‌شود.

Pipeline Aggregations

روی نتایج Aggregationهای دیگر اعمال می‌شود، مثل محاسبه میانگین روی چندین bucket یا محاسبه درصد تغییر.

مثال ترکیبی

می‌توان چندین Aggregation را با هم ترکیب کرد. برای مثال محاسبه میانگین قیمت محصولات به تفکیک برند:


GET /products/_search
{
  "size": 0,
  "aggs": {
    "brands": {
      "terms": { "field": "brand.keyword" },
      "aggs": {
        "avg_price": {
          "avg": { "field": "price" }
        }
      }
    }
  }
}

مقایسه Aggregations با SQL

Elasticsearch SQL کاربرد
terms aggregation GROUP BY گروه‌بندی داده‌ها بر اساس یک فیلد
avg aggregation AVG() محاسبه میانگین یک ستون
sum aggregation SUM() محاسبه مجموع یک ستون
date_histogram GROUP BY DATE() گروه‌بندی داده‌ها بر اساس تاریخ

با استفاده از Aggregations، می‌توان داشبوردهای تحلیلی قدرتمندی ساخت و در زمان واقعی (Real-time) به تحلیل داده‌ها پرداخت.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.