Как отправить заказ по предложению в presto elasticsearch
Я выполняю SQL-запрос в режиме starburst-presto. Он подключается к elasticsearch с помощью соответствующего разъема.
В SQL есть предложение "порядок по". Этот пункт не ограничивает эластичный поиск. По сути, я хочу отсортировать данные в elasticsearch на основе определенного поля и вернуть результат. Запрос с "упорядочить по" занимает много времени с использованием presto. Можно ли как-то добиться оптимальной производительности?
SQL: select e.employee_id from elasticsearch.es."employee:id:""2390571"" && (doj_timestamp:(>=15965454 && <=15972366)) sort=employee_id:desc" e offset 0 limit 5;
Вышеупомянутый запрос возвращает случайные результаты.
Может ли кто-нибудь помочь здесь?
1 ответ
В вашем запросе есть ORDER BY и LIMIT, поэтому в Presto он называется запросом Top N. В настоящее время Presto не поддерживает развертывание Top N, но эта функция находится в разработке.
- Проблема зонтика для раскрывающегося разъема: https://github.com/prestosql/presto/issues/18
- Черновик PR для Top N pushdown (поддержка движка и SPI): https://github.com/prestosql/presto/pull/4784
Сообщите о проблеме с раскрывающимся списком TopN соединителя Elasticsearch. Мы все равно реализуем это, но прямая обратная связь с пользователями помогает понять приоритеты проблем.
Вы можете узнать больше на #pushdown
канал в сообществе Presto Slack.