проитерировать key-value database
От: Antei США  
Дата: 16.06.19 07:01
Оценка:
Добрый день, форум!

Есть сервис: key-value база данных спрятанная за rest интерфейсом.
Объёмы данных небольшие: всего несколько М записей, прирост незначительный.
И тут понадобилось сделать внешнюю batch job, которая итерирует все данные сервиса и что-то делает.

Стрим интерфейс к сервису делать не планирую по отдельным причинам, хочу ограничиться restful.
А job обязательно будет внешний, тоже внутрь сервиса вносить не планируется, т.к. это отдельный севрис сам по себе.
То есть клиенту 'batch job' нужно выгрести все ключи из сервиса, а затем по ключам запросить все данные.

Я планирую ввести понятие bucket# (номер корзинки) и capacity (максимальное количество bucket в сервисе, скажем 1000 корзинок).
Каждая запись будет ассоциирована с bucket# (считается как хэшкод-записи % capacity)
В сервисе будет endpoint, который сможет отдавать ключи по bucket#.

То есть клиент запросит сначала capacity и затем в цикле от 0 до 999 (если для примера, capacity=1000) запросит ключи для bucket#0, затем для №1 и пр.
И сделает свой batch job.

Ну или же можно отдавать клиенту сразу данные по bucket#, минуя выгребание ключей

Какие подводные камни?
Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.