Flink 中的时间一共有哪几类?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Flink 中的时间类型主要分为以下三类:
事件时间(Event Time):这是事件实际发生的时间,一旦事件生成,该时间戳就不会改变。它是处理无界流数据时最精准的时间概念,能够处理乱序事件,但需要 watermark 机制来处理延迟或乱序事件。
处理时间(Processing Time):指的是数据被 Flink 处理时的系统当前时间。它是最简单的时间概念,直接使用系统时钟,但不考虑数据到达的延迟,因此不适合对时间顺序有严格要求的场景。
摄取时间(Ingestion Time):数据进入流处理系统的时间戳。当数据记录中没有时间信息,且希望以接近事件时间的方式处理数据时,可以使用摄取时间。相比事件时间,它更简单但牺牲了部分准确性,因为它依赖于数据进入系统的实际时间而非事件发生的时间。
这些时间概念为 Flink 提供了在不同场景下处理时间敏感数据的能力。