Войти Регистрация
Data base

173. Последние 20 звонков абонента одним сканом

Средняя

HBase · Apache HBase 2.6

Детализация звонков хранится в HBase: около 2 млрд записей в месяц по Москве и Нижнему Новгороду. Приложение показывает 20 последних звонков номера.

Сейчас rowkey = msisdn + timestamp. Чтобы найти последние 20, сервис сканирует все звонки номера за 6 месяцев (у таксопарков — до 90 тыс. строк) и берёт хвост.

В работе: Ленты «последние N событий» в HBase и Bigtable.

Как проверяем Движка HBase в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
rowkeyобратная метка времениscan

Источник: на данных оператора связи: детализация звонков. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Как изменить rowkey?

  • msisdn + (Long.MAX_VALUE − timestamp)
  • (Long.MAX_VALUE − timestamp) + msisdn
  • Оставить ключ и сканировать с флагом reversed
  • msisdn в rowkey, время звонка — в версиях одной ячейки