Граждане, дайте совет. Задача такая.
Есть таблица X. Живет в HBase, rowkey некий guid, всего ~16 млрд. Переливается инкрементно в КХ.
Есть вторая таблица X_HIST - история событий, произошедших в жизни X. Живёт в HBase, rowkey (guid X; тип события - 0,1,2,N ; ts события). Тоже переливается инкрементно в КХ. Всего ~40 млрд событий. В месяц где-то по 1,5 млрд подвозят новых.
Из множества X_HIST довольно недорого выделяется инкремент ~3 млн. и отклыдвается в сторону. После этого из него отбираются события с типом 6 (1,5 млн). Задача-по каждому такому событию слазить в полную историю X_HIST и посмотреть, что было раньше события 6. Ну, например, посчитать количество событий типа 2 и найти дату самого раннего события с типом 0.
На КХ пакетно это не поехало, не лезет в память.
Вопрос-как и на каких компонентах более лутше все это запилить? В голову приходят HBase MR, мультитредовый самопис на HBase API, spark-вычитать инкремент и потом map/forEach.