HBase · Apache HBase 2.6
DMP Directual сегментирует около 600 млн пользователей и принимает 5 млрд событий в сутки через Kafka. В HBase rowkey — внутренний id пользователя, атрибуты пользователя — column qualifiers.
Требования к хранению разные. Сырые события храним год. Обогащённые атрибуты — 60 дней, но с историей: до 1000 последних значений каждого атрибута, чтобы сегменты могли смотреть на изменения.
В работе: Схема таблицы HBase: сроки хранения и число версий для разных групп данных.
Как проверяем
Движка HBase в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
Источник: доклад Directual на SmartData 2017 о DMP на Kafka и HBase, расшифровка JUG Ru Group на Хабре. Условие пересказано своими словами.
Давали на собеседовании?
Как задать эти требования в схеме?
- Две column family: data с VERSIONS => 1000 и TTL => 5184000, raw с TTL => 31536000
- Одно семейство и TTL на каждый column qualifier: для атрибутов 60 дней, для событий год
- Одно семейство без TTL и ночная задача, которая удаляет старые ячейки через Delete
- Задать TTL на всю таблицу, а VERSIONS => 1000 — на семейство raw