Синхронизировать данные из Hbase в улей - PullRequest
1 голос
/ 10 июля 2019

Мы работаем над проектом, в котором мы используем HBase в качестве хранилища оперативных данных; все данные поступают на базу в режиме реального времени. И каждые 2 часа данные в Hbase необходимо синхронизировать с Hive. Это сделано для того, чтобы аналитические запросы выполнялись поверх последних данных.

Для синхронизации данных из Hbase в Hive:

Для сценариев только вставка / обновление , я могу использовать столбец отметки времени, предоставленный hbase, чтобы узнать вставленные / обновленные записи. Для сценариев "УДАЛИТЬ" я изо всех сил пытаюсь найти правильный подход.

Предоставляет ли HBase Scan API какую-либо опцию для этого?

Или я должен пойти с какими-либо опциями SQL, такими как Apache Phoenix, для того же?

1 Ответ

1 голос
/ 11 июля 2019

Вот ответ из Справочного руководства по HBase, раздел Сохранить удаленные ячейки :

Новые «необработанные» параметры сканирования возвращают все удаленные строки и маркеры удаления ...

.,. [пример]

hbase (основной): 017: 0> сканирование 'test', { RAW => true , VERSIONS => 1000}

ROW COLUMN +CELL
r1 столбец = e: c1, отметка времени = 14, значение = значение
r1 столбец = e: c1, отметка времени = 12, значение = значение
r1 столбец = e: c1, отметка времени = 11, type = DeleteColumn
r1 column = e: c1, отметка времени = 10, значение = значение

1 ряд (ы) в 0,0120 секунд

.,.

Обратите внимание, что могут быть различные типы маркеров - DeleteColumn или DeleteFamily - в зависимости от типа DELETEпроизошло.

...