Мой проект использует protobufs для наших типов данных. Мы должны иметь возможность записывать наши данные, чтобы их можно было воспроизвести позже. Наш вариант использования - воссоздать событие или повторно обработать те же данные, но с новыми алгоритмами, и проверить на улучшения.
Поскольку данные проходят через нашу систему, это все протобуфы. Они легко сериализуются в байтовый массив, который может быть записан в файлы или, возможно, в виде двоичных объектов в базе данных. Воспроизведение будет просто означать чтение байтового массива и преобразование обратно в protobuf, а затем снова отправить его в наше программное обеспечение.
Существуют ли какие-либо технологии, используемые для записи протобуфов?
Несмотря на то, что первоначальный вариант использования очень прост, в конечном итоге решение станет более сложным. Вероятно, потребуется:
- Фарм записи на несколько хостов, чтобы не отставать от скорости ввода данных
- Разрешить запросы, чтобы узнать, сколько данных существует за определенный период времени
- Воспроизведение только тех записей данных, где какое-либо поле имеет определенное значение
- Сохранить данные для длительного хранения, например, никогда не удаляйте запись, а вместо этого перемещайте ее на резервную копию на ленте
Я думаю, что вышесказанное лучше всего выполнить с использованием базы данных, в которой хранится некоторое подмножество метаданных вместе с самим байтовым массивом protobuf. Прежде чем я заново изобрету колесо, я хотел бы узнать мнение о том, что уже существует, что может сделать эту работу.