Есть ли способ установить метку времени в неограниченной коллекции источника? - PullRequest
0 голосов
/ 22 апреля 2019

я хочу установить метку времени для неограниченного набора строк

в моем решении каждая строка коллекции представляет собой строку csv

, в одном поле этой строки есть метка времени, а в другихполя, такие как количество кликов и т. д.

я хочу обработать коллекцию с базой на своей собственной отметке времени (времени события), а не на отметке времени по умолчанию, устанавливающей луч Apache

, главная угроза этого потока данныхсгруппировать количество кликов в минуту

у меня есть служба ftp, которая отправляет файлы в одну папку, которую моя работа прослушивает 1 минуту, и обрабатывает в окне исправлений в течение 1 минуты. Проблема в том, что возможно опоздание данных

я делаю KV pcolection, а ключ - это временная метка без секунд и значение num кликов и применяю группу по

, я получаю "клики в минуту" и отправляю эту коллекцию в базу данных

Пример пакета создания элемента данных до 12:05 вечера (10 файлов) время получения данных 12:06 вечера

Данные о создании задания 12:05 вечера 120 кликов

пакет элементов данных генерируется до 12:05 и 12:06 (файлы с поздним 12:05)

время получения данных 12:07

Данные о генерации заданий 12:0510 щелчков 12:06 вечера 135 щелчков

Я хочу отменить процесс опоздавших данных, основанных на данных о событиях, возможно так, как я ищу

другими словами, не помещать в дб поздниеданные -> 12:05 - 10 кликов

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете использовать преобразование WithTimestamps , чтобы назначать временные метки из данных.Например, если предположить, что ваш ключ является строкой, которую можно проанализировать по Joda Time :

records.apply(
 WithTimestamps.of((KV<String, String> rec) -> Instant.parse(rec.getKey()));
...