Мы имеем простую таблицу, например следующим образом:Какое лучшее решение для больших данных для интерактивных запросов строк до 200 столбцов?
------------------------------------------------------------------------
| Name | Attribute1 | Attribute2 | Attribute3 | ... | Attribute200 |
------------------------------------------------------------------------
| Name1 | Value1 | Value2 | null | ... | Value3 |
| Name2 | null | Value4 | null | ... | Value5 |
| Name3 | Value6 | null | Value7 | ... | null |
| ... |
------------------------------------------------------------------------
Но может быть до сотни миллионов строк/имен. Данные будут заполняться каждый час или около того.
Цель состоит в том, чтобы получить результаты для интерактивных запросов по данным за пару секунд.
Большинство запросов выглядит следующим образом:
select count(*) from table
where Attribute1 = Value1 and Attribute3 = Value3 and Attribute113 = Value113;
где положение содержит произвольное количество пар имя-значение атрибута.
Я новичок в больших данных и задаюсь вопросом, что лучший вариант с точки зрения хранилища данных (MySQL, HBase, Cassandra и т. Д.) И механизма обработки (Hadoop, Drill, Storm и т. Д.) Для интерактивных запросов, как описано выше.
Ваше описание того, какие типы запросов вы хотите выполнить, состоит в том, что вы хотите иметь возможность экспоненциально выполнять множество разных запросов (2^200 в вашем примере). Если это так, я считаю, что я не думаю, что вы найдете решение дешевле, чем сканирование таблицы и подсчет количества строк, соответствующих вашему предикату. Если вы можете каким-то образом ограничить возможные запросы или предоставить больше контекста, возможно, у меня есть лучшее решение для вас. –
Я считаю, что количество возможных запросов будет намного меньше, чем в худшем случае. Но пользователи могут их составлять, поэтому я не могу контролировать, сколько предикатов они собираются включить. В случае сканирования всей таблицы, какое наилучшее решение? – user2284274
Я менее знаком с Кассандрой, поэтому буду говорить в терминах HBase. Если вы попытаетесь просто сканировать все строки, вы можете выполнить простую проверку HBase с фильтром (http://hbase.apache.org/book/thrift.html), чтобы потоковое обращение к клиенту HBase (скажем, бережливость client) набор строк, который соответствует вашему предикату, а затем подсчитайте их. На каком языке вы будете взаимодействовать с базой данных (HBase?)? Опять же, я могу дать «реальный» ответ с более подробной информацией об окружающей среде. –