Spark + чтение темы кафки из определенного смещения на основе отметки времени - PullRequest
0 голосов
/ 03 мая 2018

Как мне установить spark задание для получения kafka topic из specific offset на основе timestamp? Допустим, мне нужно получить все данные из темы кафки starting 6 hours ago.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Kafka - это хранилище журналов только для приложений. Вы можете начать потребление с определенного смещения в разделе, если вы знаете смещение. Потребление очень быстрое, вы можете создать схему, в которой вы начнете со смещения smallest и начнете выполнять некоторую логику только после того, как натолкнетесь на сообщение (которое, вероятно, может иметь поле timestamp для проверки).

0 голосов
/ 03 мая 2018

Кафка не работает таким образом. Вы видите Kafka как нечто, что вы можете запросить с другим параметром, отличным от смещения, кроме того, имейте в виду, что тема может иметь более одного раздела, поэтому каждый раздел имеет свой раздел. Возможно, вы можете использовать другое реляционное хранилище для отображения смещения / раздела с отметкой времени, что немного рискованно. Думая, например, о потребителе akka stream kafka, каждый ваш запрос по метке времени должен отправляться через другую тему, чтобы активировать ваших потребителей (каждому из которых назначается один или несколько разделов) и запрашивать конкретное смещение, результат и слияние. С Spark вы можете настроить свои потребительские стратегии для каждой работы, но процесс должен быть таким же.

Другое дело, если ваш Кафка восстанавливает, возможно, вам нужно прочитать всю тему, чтобы обновить свою пару (временная метка / смещение). Все это может звучать немного странно, и, может быть, лучше сохранить свою тему в Кассандре (например), и вы можете запросить ее позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...