事件时间/处理时间/摄入时间
Flink支持流程序中的不同的时间通知。
处理时间:处理时间是指执行操作的机器系统时间。
当流程序运行在处理时间上时,所有的和时间相关的操作(比如时间窗口)都会使用运行各个操作运算的机器系统时钟。举个例子,一个小时单位的处理时间窗口会包含到达指定操作的所有记录在系统时钟是整个小时数之间。
处理时间时最简单的时间通知,它需要流和机器之间的协作。它提供了最好的算法表现和最低的延迟。然而在分布式和异步环境中处理时间不提供可检测机制,因为这样会影响记录到达系统的速度(比如从消息队列中过来的),还有在系统中的算子之间的记录流动速度。
事件时间:事件时间是每个发生在生产装置中的独立事件的时间。这个时间是在它们进入Flink和从记录中抽取的事件时间戳之前就包含在记录中的。一个小时单位的事件时间窗口包含拿到落地到那个小时内的事件时间戳,不管记录何时到达,不管他们的顺序如何。