English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظيفة التجميع هي مهمة دورية تقوم بتجميع بيانات المؤشرات المحددة في نمط المؤشرات، وتجمعها في مؤشر جديد. في المثال التالي، أنشأنا مؤشرًا يُدعى sensor يحتوي على توقيتات زمنية مختلفة. ثم أنشأنا وظيفة تجميع باستخدام job schedule periodic لجمع البيانات من هذه المؤشرات.
PUT /sensor/_doc/1 { "timestamp": 1516729294000, "temperature": 200, "voltage": 5.2, "node": "a" }
عند تشغيل الشيفرة أعلاه، نحصل على النتيجة التالية-
{ "_index" : "sensor", "_type" : "_doc", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
الآن، أضف مستندًا ثانيًا آخر للوثائق، وهكذا.
PUT /sensor-2018-01-01/_doc/2 { "timestamp": 1413729294000, "temperature": 201, "voltage": 5.9, "node": "a" }
PUT _rollup/job/sensor { "index_pattern": "sensor-*", "rollup_index": "sensor_rollup", "cron": "*/30 * * * * ?", "page_size" :1000, "groups" : { "date_histogram": { "field": "timestamp", "interval": "60m" }, "terms": { "fields": ["node"] } }, "metrics": [ { "field": "temperature", "metrics": ["min", "max", "sum"] }, { "field": "voltage", "metrics": ["avg"] } ] }
يستخدم معامل cron التحكم في وقت وتردد تنشيط الجدول. عند تنشيط خطة cron للجدول التجميعي، ستبدأ التجميع من حيث توقفها في المرة السابقة.
بعد تشغيل الجدول والمعالجة بعض البيانات، يمكننا استخدام استعلام DSL للبحث في بعض الأشياء.
GET /sensor_rollup/_rollup_search { "size": 0, "aggregations": { "max_temperature": { "max": { "field": "temperature" } } } }