Пунктуальные и периодические водяные знаки во Флинке? - PullRequest
0 голосов
/ 20 февраля 2019

Я немного сбит с толку акцентом на периодические водяные знаки в Apache Flink.

Предположим, у меня есть DataStream с входящими данными и поле отметки времени POJO, для которого тип потока данных всегда находится в порядке возрастания.

Так что это будет что-то вроде [{id: 1, ts: 12}, {id: 2, ts: 13}, ... , {id: 5, ts: 233445}]

Мне интересно, какой тип присваивания водяных знаков использовать в этом случае.Должен ли я использовать AscendingTimestampExtractor.. или создать собственный punctuated один?

1 Ответ

0 голосов
/ 20 февраля 2019

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

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

...