Я попробовал использовать apache-drill для запуска простого запроса на объединение-агрегат, и скорость была не очень хорошей. мой тестовый запрос:
SELECT p.Product_Category, SUM(f.sales)
FROM facts f
JOIN Product p on f.pkey = p.pkey
GROUP BY p.Product_Category
Если факты имеют около 422 000 строк, а продукт имеет 600 строк. группировка возвращается с 4 строками.
Сначала я протестировал этот запрос на SqlServer и получил результат примерно в 150 мс.
С сверлом я сначала попытался напрямую подключиться к SqlServer и запустить запрос, но это было медленно (около 5 секунд).
Затем я попытался сохранить таблицы в json файлах и прочитать их, но это было еще медленнее, поэтому я попробовал паркетные файлы.
Я получил результат в первом прогоне за 3 секунды. следующий прогон был около 900 мс, а затем он был остановлен примерно на 500 мс.
От чтения вокруг это не имеет смысла, и сверло должно быть быстрее! Я попробовал "REFRESH TABLE METADATA", но скорость не изменилась.
Я запускал это в окнах через командную строку drill.
Любая идея, если мне нужна дополнительная настройка или что-то еще?
Спасибо!