2016-03-09 9 views
1

В настоящее время я сталкиваюсь с проблемой во время синхронизации данных с mysql с hbase, мне нужна синхронизация данных в реальном времени от mysql до hbase, и мне нужно объединить несколько таблиц mysql в одну hbase таблицы во время синхронизации данных.Синхронизация в реальном времени от mysql до Hbase

Я попробовал sqoop выглядит так, как будто он не может соответствовать нашим требованиям.

Итак, существуют ли какие-либо существующие инструменты/библиотеки для моего случая или любые другие решения, которые я могу испробовать.

+0

Можете ли вы предоставить некоторые сведения о том, почему sqoop не соответствует вашим требованиям? – Rachel

+0

Спасибо за ваше время, например: First: У меня есть таблица A и таблица B, которая имеет отношение от одного до многих, и я хочу объединить их в одну таблицу C в таблице hbase (Должны быть объединенные записи). Во-вторых: Sqoop является пакетным, что не является решением почти в реальном времени. Нам нужны новые записи в таблицах A и B, мы хотим, чтобы эта запись синхронизировалась с таблицей Hbase C сразу. – user1330526

ответ

2

Рассмотрите возможность использования Apache Phoenix на HBase. Он предоставит вам низкозатратные SQL-запросы (поэтому он подходит для OLTP и прост в использовании для OLAP) для данных, хранящихся в HBase, поэтому вам не нужно беспокоиться о синхронизации. Он также имеет функции NoSQL, такие как возможность динамического добавления столбцов во время запроса.

Чтобы удовлетворить ваш прецедент, вы можете запустить Phoenix для OLTP и второй экземпляр Phoenix на чтение реплики для запуска табличных соединений для OLAP.

http://www.cloudera.com/documentation/enterprise/5-4-x/topics/admin_hbase_read_replicas.html

Secondary replicas are refreshed at intervals controlled by a timer (hbase.regionserver.storefile.refresh.period), and so are guaranteed to be at most that interval of milliseconds behind the primary RegionServer.

Это решение удовлетворяет требованиям к OLTP, OLAP, и практически в режиме реального времени с синхронизацией, давая вашей транзакционной масштабируемость базы данных, которые вы не легко с MySQL. Apache Phoenix также предлагает полную интеграцию с экосистемой Hadoop, поэтому он будет хорошо интегрироваться с вашим текущим стеком аналитики.

+0

У вас есть опыт в соединении phoenix, похоже, что для множественного соединения в таблице феникс работает не хорошо? – user1330526

+0

По умолчанию Phoenix использует хэш-соединения, требуя, чтобы данные вписывались в память. Если вы столкнулись с проблемами (с очень большими таблицами), вы можете увеличить объем памяти, выделенный для Phoenix (настройка конфигурации), или задать «подсказку» запроса (например, «SELECT/* + USE_SORT_MERGE_JOIN */FROM ...») для использования соединений sort-merge, которые не имеют того же требования. Они планируют автоматически определять алгоритм идеального соединения в будущем. Кроме того, Phoenix поддерживает только подмножество операций объединения. – kliew

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