Скажем, у меня около 10-20 ГБ данных в HDFS в виде таблицы Hive. Это было получено после нескольких работ по сокращению Map-Уменьшения и JOIN через два отдельных набора данных. Мне нужно сделать это Queryable для пользователя. Какие у меня варианты?Запрос большого количества данных, обработанных Hive
- Используйте Sqoop для передачи данных с HDFS на RDS, например Postgresql. Но я хочу избежать траты времени на передачу данных. Я просто тестировал HDFS-> RDS в том же регионе AWS, используя Sqoop, а 800 МБ данных занимает 4-8 минут. Таким образом, вы можете себе представить, что ~ 60 гб данных будет довольно неуправляемым. Это было бы моим последним средством.
- Query Hive непосредственно с моего веб-сервера в соответствии с запросом пользователя. У меня никогда не было головы улья, используемого таким образом, поэтому я скептически отношусь к этому. Это поразило меня, потому что я только что узнал, что вы можете запросить таблицы улей удаленно после некоторой переадресации портов в кластере EMR. Но, будучи новым для больших (иш) данных, я не совсем уверен в связанных с этим рисках. Это обычное дело?
- Другое решение. Как люди обычно делают такие вещи? Кажется, это довольно обычная задача.
Просто для полноты, мои данные выглядит следующим образом:
id time cat1 cat2 cat3 metrics[200]
A123 1234212133 12 ABC 24 4,55,231,34,556,123....(~200)
.
.
.
(время эпохи)
И мои запросы выглядеть следующим образом:
select cat1, corr(metrics[2],metrics[3]),corr(metrics[2],metrics[4]),corr(metrics[2],metrics[5]),corr(metrics[2],metrics[6]) from tablename group by cat1;
I нужна корреляционная функция, поэтому у меня есть чо sen postgresql над MySQL.
Да, я знаю об этом, но я в основном хотел знать, является ли использование Hive подобным, это хорошая практика или нет ... – user1265125