Impala查询结果中的数值发生变化

问题描述:

我们有一个包含约10亿行和值类型为Double的值列的Impala表。当我们运行相同的'选择{维度},表格组中的总和(值){维度}'在同一张表上连续查询多次时,每次我们得到的总和会略有不同。当我们对四舍五入的值进行求和时也会发生这种情况造成这种差异的原因是什么?有什么办法可以解决这个问题吗?Impala查询结果中的数值发生变化

由于Impala查询的执行是分布式的,发生某种计算的顺序可能会因网络变化或其他过程而变化,并且由于浮点运算不是关联的 [1],这会导致您的行为看到了。这正是为什么DECIMAL datatype存在。

+0

这对一个测试数据集起作用。在我们现有的表中改变模式以从DOUBLE切换到DECIMAL的最佳方式是什么? – Vishakh