Мое приложение создает вращающиеся файлы журнала, содержащие несколько метрик приложения. Файл журнала чередуется один раз в минуту, но каждый файл все еще относительно велик (более 30 МБ и 100 тыс. Строк)
Я бы хотел передать журналы в PipelineDB (работающую на одной машине), которую Countiuous View может создать для меня именно те агрегаты, которые мне нужны по метрикам.
Я легко могу отправить журналы в PipelineDB, используя копию из stdin, которая прекрасно работает.
Однако во время копирования файла журнала машина может неожиданно выключиться (например, из-за нехватки электроэнергии). Это означает, что, как только вы вернетесь в онлайн, возникнет неопределенность, сколько файлов было вставлено в PipelineDB.
Как я могу гарантировать, что каждая строка в моих журналах вставляется ровно один раз в таких случаях? (Очень важно, чтобы я получил полное и точное агрегирование)
Обратите внимание, что каждая строка в файле журнала имеет уникальный идентификатор (серийный номер, созданный моим приложением), но я не могу найти в документации вариант определения уникального поля в потоке. Я предполагаю, что дизайн PipelineDB не предназначен для обработки уникальных полей в строках потока
Тем не менее, есть ли альтернативные решения этой проблемы?