Я рассматриваю возможность использования Apache Hive в качестве бэкенда для приложения, которое я создаю. Требования для этого приложения:
- Сохраните матрицу целых чисел шириной 50 000 столбцов и 3 миллионов строк.
- Для выбранной строки получите коэффициент корреляции Пирсона (функция corr в Hive) между выбранным столбцом и каждым другим столбцом в матрице (3 миллиона вычислений).
- Возвращает отсортированный список коэффициентов корреляции.
- Операция должна вернуть отсортированный список менее чем за 5 секунд.
В настоящее время я использую Hive на 4 узлах в AWS EMR. Экземпляр Hive читает из таблицы Apache Hbase. Однако даже вычисление корреляции только для двух столбцов является чрезвычайно медленным (более 20 секунд):
SELECT corr(col1, col2) FROM table
Это неправильный вариант использования Hive? Если да, есть ли лучшие варианты, которые хорошо работают с Hbase (Phoenix, Spark и т. Д.)