Запрос агрегации Es медленный.Как улучшить? - PullRequest
0 голосов
/ 05 февраля 2019

У нас есть 7552642 документов с общим размером 94,290219647 гигабайт данных в производственном кластере эластичного поиска.

XMS и XMX:

/ usr / bin / java-Xms20g -Xmx20g

Информация о кластере:

{
"cluster_name": "production",
"status": "green",
"timed_out": false,
"number_of_nodes": 2,
"number_of_data_nodes": 2,
"active_primary_shards": 10,
"active_shards": 20,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100
}

Отображение

"posts": {
    "mappings": {
        "information": {
            "_all": {
                "enabled": true
            },
            "properties":{
                "post_created_time": {
                    "type": "date"
                },
                "post_impressions": {
                    "type": "double"
                },
                "post_interactions": {
                    "type": "long"
                },
                "post_media_value": {
                    "type": "float"
                },
                "post_message": {
                    "type": "text"
                },
                "post_reach": {
                    "type": "double"
                },
                "post_type": {
                    "type": "keyword"
                },
                "profile_id": {
                    "type": "long"
                },
                "profile_name": {
                    "type": "text"
                },
                "platform_followed_by" :{
                     "type: "long"
                 }
            }
        }
    }
}

Запрос агрегации:

{  
"size":0,
"aggs":{  
    "total_influencers":{  
        "cardinality":{  
            "field":"profile_id"
        }
    },
    "profiles_reach_bucket":{  
        "terms":{  
            "size":2147483639,
            "field":"profile_id"
        },
        "aggs":{  
            "media_reach_bucket":{  
                "terms":{  
                    "field":"_type",
                    "size":2147483639
                },
                "aggs":{  
                    "media_reach":{  
                        "avg":{  
                            "field":"post_reach"
                        }
                    }
                }
            },
            "total_media_reach":{  
                "sum_bucket":{  
                    "buckets_path":"media_reach_bucket>media_reach"
                }
            }
        }
    },
    "total_reach":{  
        "sum_bucket":{  
            "buckets_path":"profiles_reach_bucket>total_media_reach"
        }
    },
    "total_impressions":{  
        "sum":{  
            "field":"post_impressions"
        }
    },
    "total_interactions":{  
        "sum":{  
            "field":"post_interactions"
        }
    },
    "total_followers":{  
        "sum":{  
            "field":"platform_followed_by"
        }
    },
    "interactions_for_media_value":{  
        "terms":{  
            "size":2147483639,
            "field":"_type"
        },
        "aggs":{  
            "interaction":{  
                "sum":{  
                    "field":"post_interactions"
                }
            }
        }
    },
    "impressions_for_media_value":{  
        "terms":{  
            "size":2147483639,
            "field":"_type"
        },
        "aggs":{  
            "impression":{  
                "sum":{  
                    "field":"post_impressions"
                }
            }
        }
    }
},
"query":{  
    "bool":{  
        "must":[  
            {  
                "query_string":{  
                    "query":"post_message:*food* post_description:*food* post_title:*food* "
                }
            }
        ],
        "filter":[  
            {  
                "range":{  
                    "post_created_time":{  
                        "gte":1533427200,
                        "lte":1549324800
                    }
                }
            }
        ]
      }
   }
}

Результат:

Приведенный выше запрос занял

"took": 6685,
"timed_out": false,
"_shards": {
    "total": 10,
    "successful": 10,
    "skipped": 0,
    "failed": 0
}

Любые предложения по оптимизации будут благодарны.

...