В настоящее время я использую функцию подавления потоковой передачи DSL kafka для дневного окна. у нас может возникнуть ситуация, когда некоторые события могут наступить очень поздно, за пределами льготного периода.
В соответствии с потоковой документацией kafka такие события будут отбрасываться, что не вписывается в окно. [...]
1) Возможно ли получить такие отброшенные события в одном потоке?
Вам нужно увеличить льготный период. Смысл льготного периода заключается в том, чтобы вы могли определить, как долго вы можете принимать (очень) поздние события, чтобы прибыть. Льготный период на самом деле может быть больше, чем размер окна - я упоминал об этом, потому что вы упомянули «что не вписывается в окно».
Мне кажется, что вы принимаете поздние события, но вы не хотите увеличивать льготный период. Почему?
Apache flink обеспечивает удержание таких очень поздних событий и хотел бы знать, доступна ли такая функция в потоковой передаче.
Если вы имеете в виду: есть ли что-то вроде обратного вызова для таких очень поздних событий в потоках Кафки, тогда ответ - Нет, нет.
2) Насколько возможно хранить прерывистые агрегированные данные в памяти с DSL-подавлением для дневного окна, учитывая миллионы событий, проходящих через систему?
Любое сообщество по потоковой передаче временной шкалы kafka вскоре предоставит поддержку rockDB, чтобы избежать сбоя приложения из-за нехватки памяти.
Для других читателей: RocksDB уже поддерживается и является механизмом хранения состояний по умолчанию для всех операций с состоянием в потоках Kafka. Единственным исключением является текущая реализация функциональности Supress (), где буфер подавления еще не поддерживается через RocksDB.
По поводу вашего вопроса: Работа над KAFKA-7224: добавление разлива на диск для подавления находится в процессе, но точная ETA пока не ясна.