问题一:什么是流计算中的正确性?为什么流计算中不容易实现正确性?
什么是流计算中的正确性?为什么流计算中不容易实现正确性?
参考回答:
流计算中的正确性指的是通过流计算引擎计算得到的结果能够准确地反映真实物理世界中的对象。例如,在用户支付行为完成后,流计算系统应能准确地计算并反映出用户的总支付金额。
由于流元素具有无界无序的特性,使得在流计算中实现逻辑上的推导变得困难。这可能导致计算结果不正确,如指标值小于实际值或存在多个指标值等。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654036
问题二:什么是数据的一致性和正确性,它们有何区别?一致性和正确性在流计算中是如何关联的?
什么是数据的一致性和正确性,它们有何区别?一致性和正确性在流计算中是如何关联的?
参考回答:
数据的一致性指的是跨越所有流计算上下游系统的数据反映了相同的信息,而数据的正确性则是指流计算的结果能够准确地反映真实物理世界中的对象。一致性是数据正确性的必要非充分条件,即如果数据是一致的,但不一定正确;但如果数据是正确的,则必定是一致的。
在流计算中,一致性通常与“exactly-once”这个术语相关,表示流计算引擎可以从故障中恢复到一致的状态,并且输出结果不包含重复或丢失的数据。然而,即使引擎实现了一致性,也可能由于源头数据无序、延迟等问题导致最终结果不正确。因此,正确性的要求比一致性更为严格。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654037
问题三:如何保证流计算的正确性?
如何保证流计算的正确性?
参考回答:
流计算的正确性由数据完整性和引擎一致性共同保证。数据完整性确保了对无界、无序数据集的约束,即明确了输入;而引擎一致性则明确了数据处理过程(包括输出)。当这两个条件都满足时,流计算的输出就是确定的,从而保证了计算的正确性。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654038
问题四:什么是流计算中的数据完整性?为什么流计算需要数据完整性?
什么是流计算中的数据完整性?为什么流计算需要数据完整性?
参考回答:
流计算中的数据完整性指的是将无界且无序的流数据转化为逻辑上的“当前分区”,以便对分区内确定性的数据片段进行分析。这种“当前分区”可以是过去的一段时间,如滑动窗口,也可以是过去的若干条记录。
流计算需要数据完整性是因为无论是流计算还是批计算,要想得到正确的计算结果,最终都需要有确定性的输入数据集。流计算引擎被外界诟病“不够准”的原因,很大程度上是因为对无界无序流数据分区能力不够好。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654039
问题五:完整性推理在流计算中有什么作用?在哪些流计算场景中完整性推理至关重要?
完整性推理在流计算中有什么作用?在哪些流计算场景中完整性推理至关重要?
参考回答:
完整性推理在流计算中是一种表征数据就绪的手段,即使输入流可能无序到达,流计算引擎也不会用不完整的输入计算作为最终的输出结果。它要求计算引擎能够及时追踪当前计算进度,并估算发出的输出结果与其输入流对应的完成程度。
完整性推理在基于流的告警系统和流式CEP进行业务缺失值检测的场景中至关重要。在告警系统中,引擎必须生成单个且正确的告警指标,这就要求引擎具备推断“告警指标所需的数据已全部就绪”的能力。在缺失值检测场景中,完整性推理用于区分真实的数据缺失和数据滞后抵达之间的差异。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654040