stream:时间上连续、有序的、无界的数据流
stream 独立的处理
stream 做聚合/join(一段时间或者两个stream之间)
时间上连续、无界的数据集映射为有界的数据集,这种情况就叫做window
stream可以做增量操作
存储中间状态 localstate / state store
几种时间类型
event time 消息创建时间,processing time 消息处理的时间, ingestion time 消息进入kafka的时间
可以选一种时间类型,作为window的计算标准
state
in-memory state store/persistent state store
change log 存放
windows
hopping time windows (advance interval 统计的间隔时间,一条消息可能会被多次处理,比如计算每个1秒,输出过去5秒的数据)
tumbling time windows 没有交集,一次都是统计完一个区间,下次再统计完整的区间,没法做到实时刷新
sliding windows 只用于join操作
KStream 数据流,每条数据映射为一条新的记录
KTable change log 流,将相同的key,更新到同一条记录中
Join
KStream-KStream Join结果为KStream
KStream-KTable Join结果为KStream,KStream变化会增加结果,KTable更新数据也会影响结果,但是不会增加记录
KTable-KTable Join 相当于关系型的Join,结果为KTable
Stream API
Join
KStream-KStream Join结果为KStream
KStream-KTable Join结果为KStream,KStream变化会增加结果,KTable更新数据也会影响结果,但是不会增加记录
KTable-KTable Join 相当于关系型的Join,结果为KTable
Stream API