English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A tarefa de agregação é uma tarefa periódica que agrega dados dos índices especificados pelo padrão de índice e os agrega em um novo índice. No exemplo a seguir, criamos um índice chamado sensor, que possui diferentes marcas de tempo. Em seguida, criamos uma tarefa de agregação que usa job cron para agregar dados desses índices periodicamente.
PUT /sensor/_doc/1 { "timestamp": 1516729294000, "temperature": 200, "voltage": 5.2, "node": "a" }
Ao executar o código acima, obtemos o seguinte resultado-
{ "_index" : "sensor", "_type" : "_doc", "_id" : ""1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
Agora, adicione o segundo documento para outros documentos, e assim por diante.
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"] } ] }
Os parâmetros cron controlam o tempo de ativação e a frequência de ativação da tarefa. Quando o cron do job de agregação é acionado, ele começará a agregação a partir do ponto onde foi interrompido na última ativação
Após a execução e processamento de alguns dados da tarefa, podemos usar consultas DSL para algumas pesquisas.
GET /sensor_rollup/_rollup_search { "size": 0, "aggregations": { "max_temperature": { "max": { "field": "temperature" } } } }