存储 2e19 以上的数字

au2*_*001 1 influxdb

uint256我正在使用 InfluxDB,需要以全精度(无浮点)存储非常大的数字 ( )。

我目前正在使用字符串来实现此目的,但因此我失去了对这些数字执行算术运算的能力,这是我需要实现的。

前任。

{ _measurement=transfer, _field=amount, _value=90000000000000000000001 }
{ _measurement=transfer, _field=amount, _value=12000000000000000000000 }
Run Code Online (Sandbox Code Playgroud)
from(bucket: "xxx")
  |> range(start: 0)
  |> filter(fn: (r) => r._measurement == "transfer" and r._field == "amount")
  |> toUint()
  |> sum()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:runtime error @4:6-4:13: toInt: failed to evaluate map function: cannot convert string "90000000000000000000001" to int due to invalid syntax

是否有像ClickHouse 的 uint256这样的内置解决方案或第三方包来实现此目的?

小智 5

不幸的是,InfluxDB 还不支持大数字。它将所有整数存储为有符号 int64数据类型。int64 的最小和最大有效值为 -9223372036854775808 和 9223372036854775807。请在此处查看更多信息。