2014-11-17 2 views
0

Я работаю над проектом, который представляет собой высокопроизводительную панель мониторинга, где результаты в основном объединены в смешанные с неагрегированными данными. Первая страница загружается 8 различными сложными запросами, получая смешанные данные. Панель мониторинга обслуживается централизованной базой данных (Oracle 11g), которая принимает данные из многих систем в режиме реального времени (используя инструмент репликации). Данные, которые показаны, реализуются с помощью очень сложных запросов (несколько join, count, group by и многие условия where).Нужна помощь: Использование столбчатой ​​базы данных

Проблема заключается в том, что с увеличением данных запросы БД занимают больше времени, чем определено/согласовано. Я собираюсь переместить агрегированную функциональность в базу данных Columnar, скажем, HBase (все подсчеты), а остальные линейные данные будут получены из Oracle. Обе данные будут объединены на основе ключа на уровне приложения. Нужно мнение экспертов, если это правильный подход.

Есть несколько вещей, которые мне не ясны:
1. Будет ли Sqoop иметь возможность загружать данные на основе запроса/представления или только таблиц? на постоянной основе или один раз?
2. Если запись изменена (например, статус изменен), как будет HBase узнать?

ответ

0

Мои два цента. HBase - это сборка базы данных NoSQL для быстрого поиска запросов, а не для создания агрегированных специальных запросов.

Если вы планируете использовать кластер hadoop, вы можете попробовать улей с форматом хранения паркета. Если вам нужны запросы в реальном времени, вы можете пойти с базой данных MPP. Коммерческим вариантом является Vertica или, возможно, Redshift от Amazon. Для решения с открытым исходным кодом вы можете использовать InfoBrigth.

Эти параметры столбца будут давать вам высокую производительность агрегатного запроса.

Смежные вопросы