[spoiler]Удивительно, но несмотря на активное развитие NoSQL, вновь возрождается интерес к классическому SQL, хотя он, понятно, не слишком хорошо подходит для нереляционных БД. Связано это конечно с огромными инвестициями в SQL-движки и SQL-обучение, с одной стороны, и высоким порогом вхождения в мир Hadoop, с другой. Надо хорошо понимать принципы построения эффективных распределенных систем, изучить технологию MapReduce и на её основе строить правильные запросы к БД в духе NoSQL.
Созданное в фейсбуке хранилище Hive для Hadoop поддерживает сильно урезанную версию SQL, однако в ней реализована лишь трансляция SQL-кода в пакетные запросы MapReduce, и такая связка работает медленно. В текущем году вышло довольно много продуктов, которые предлагают развитый движок SQL-запросов к Hadoop либо вообще форк Hadoop, оптимизированный под SQL.
Facebook кстати уже анонсировал СУБД Presto - замена Hive, способная в реальном времени обрабатывать сотни петабайтов. Если Hive требуется для просмотра всей БД много минут, то Presto SQL вернет ответ менее чем за секунду, хотя сложные запросы конечно все равно будут выполняться единичные минуты. Особенность Presto - она всегда работает в ОЗУ и никогда не пишет на диск! К концу года обещана опенсорсной.
Впрочем, скоро этим мучениям придет конец: на саммите была анонсирована версия Hadoop 2.0 (обещана уже в этом году), в которой код MapReduce будет полностью заменен на модульную архитектуру YARN (Yet Another Resource Negotiator), которая позволит подключать аналитические системы любых конструкций, а MapReduce станет рядовой подсистемой в их перечне.
С архитектурой YARN можно познакомиться тут:
http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
А кому не терпится, уже сейчас можно порекомендовать следующие продукты «SQL-for-Big Data»:
- Amazon Redshift;
- Stinger - стократно ускоренная Hive с SQL-интерфейсом;
IBM Big SQL - солидный SQL для солидных людей Работает напрямую с Hadoop Distributed File System в обход MapReduce;
EMC Pivotal - SQL-движок запросов к Hadoop-дистрибутиву Pivotal HD;
Ну и конечно свободная Cloudera Impala.
http://blog.cloudera.com/blog/2012/10/cloudera-impala-real-time-queries-in-apache-hadoop-for-real/