部分聚合如何处理溢出?

问题描述

Blog Post提到部分聚合

在avg()的情况下,此部分聚合状态将由一个总和和一个计数组成,可用于产生最终平均值。

,该timescaledb(版本2.x)可以做到:_timescaledb_internal.partialize_agg(avg(cpu))

因此,这意味着每个数据节点将构建sum的{​​{1}}和count并将这些值发送到数据节点,该数据节点将合并所有部分聚合并计算全部平均值;即

  • cpu:数据节点总和
  • full-sum:数据节点计数之和
  • 然后full-count

我想知道此过程如何处理可能的溢出问题吗?
例如我们要取平均值的列可以是full-avg = full-sum / full-count甚至是bigint类型的
那么如何处理溢出?

  • 也许总和总是使用十进制?
    • 但是即使那样,理论上总和还是会溢出
  • 也许值固定在数据范围内?
    • 那么我们可能会得到错误的数据
  • 还是系统会出错?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...