本文主要是介绍11、Flink 流上的确定性之批处理详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
a)什么是确定性
引用 SQL 标准中对确定性的描述:如果一个操作在重复相同的输入值时能保证计算出相同的结果,那么该操作就是确定性的。
b)批处理都是确定性的吗?
在经典的批处理场景,对于给定的有界数据集,重复执行同一查询会得到一致的结果,这是对确定性最直观的理解;但实际上,同一个查询在批处理上也并不总是能得到一致的结果,来看两个查询示例:
两个非确定性结果的批查询示例
比如有一张新建的网站点击日志表:
CREATE TABLE clicks (uid VARCHAR(128),cTime TIMESTAMP(3),url VARCHAR(256)
)
新写入了一些数据:
+------+---------------------+------------+
| uid | cTime | url |
+------+---------------------+------------+
| Mary | 2022-08-22 12:00:01 | /home |
| Bob | 2022-08-22 12:00:01 | /home |
这篇关于11、Flink 流上的确定性之批处理详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!