Impala 查询结果中的数值发生变化
Numeric values changing in Impala query results
我们有一个 Impala table 约 10 亿行和一个 Double 类型的值列。当我们 运行 相同的 'select {dimensions}, sum(value) from table group by {dimensions}' 连续多次查询相同的 table 时,我们每次得到的总和略有不同。当我们对四舍五入的值求和时也会发生这种情况。这种可变性的原因可能是什么?有什么办法可以解决这个问题吗?
由于 Impala 查询的执行是分布式的,因此某些计算发生的顺序可能会因网络可变性或其他进程而有所不同,并且因为浮点运算不是关联的 [1], this can result in the behavior you're seeing. This is exactly why the DECIMAL datatype 存在。
我们有一个 Impala table 约 10 亿行和一个 Double 类型的值列。当我们 运行 相同的 'select {dimensions}, sum(value) from table group by {dimensions}' 连续多次查询相同的 table 时,我们每次得到的总和略有不同。当我们对四舍五入的值求和时也会发生这种情况。这种可变性的原因可能是什么?有什么办法可以解决这个问题吗?
由于 Impala 查询的执行是分布式的,因此某些计算发生的顺序可能会因网络可变性或其他进程而有所不同,并且因为浮点运算不是关联的 [1], this can result in the behavior you're seeing. This is exactly why the DECIMAL datatype 存在。