window:golang滑动或翻滚窗口流处理

时间:2024-05-12 08:53:07
【文件属性】:

文件名称:window:golang滑动或翻滚窗口流处理

文件大小:21KB

文件格式:ZIP

更新时间:2024-05-12 08:53:07

golang stream-processing window sliding tumbling

window 背景 在我们业务开发中,经常遇到类似"用户当天累计消费金额"、"用户最近三天消费金额"等统计的需求。 本质上来说,这都是窗口统计(第一种是窗口大小为一天的滚动窗口,第二种是窗口大小为3天,滑动大小为一天的滑动窗口)。 通常,我们可以保存所有的消费记录到MySQL,然后通过MySQL的查询,来统计出来。 但是,如果数据量非常大,且访问量非常高,MySQL无法支撑起线上业务如此庞大的实时查询,我们该如何实时的统计出用户时间窗口内的值呢? Flink提供了非常丰富的窗口算子,利用Flink提供的API,就可以非常简单的完成窗口计算。 但是,很多业务都是非Java业务。另外为了一个简单的统计功能,引入非常复杂的Flink,实现过于重。 那么,有没有简洁的方法实现,类似Flink的窗口计算功能呢。 提供了Golang的解决方案。 特点 提供了滑动窗口和滚动窗口算子,让Golang很容


【文件预览】:
window-master
----state.go(245B)
----constant.go(143B)
----sliding_window_operator.go(3KB)
----time_window.go(3KB)
----state_backend.go(1KB)
----example.go(2KB)
----tumbling_window_assigner.go(667B)
----tumbling_window_operator_test.go(4KB)
----tumbling_window_operator.go(2KB)
----window_assigner.go(150B)
----sliding_window_assigner_test.go(8KB)
----sliding_window_assigner.go(856B)
----window_state.go(857B)
----window_state_test.go(747B)
----.gitignore(5B)
----go.sum(7KB)
----windows.go(931B)
----README.md(12KB)
----window_operator.go(636B)
----tumbling_window_assigner_test.go(6KB)
----windows_test.go(1KB)
----sliding_window_operator_test.go(4KB)
----go.mod(127B)

网友评论