文档文档

SQL 数据类型

InfluxDB 3 Core 处于公开 Alpha 阶段

InfluxDB 3 Core 处于公开 alpha 阶段,可用于测试和反馈,但不适用于生产环境。产品和本文档都在不断完善中。我们欢迎并鼓励您提供关于 alpha 体验的反馈,并邀请您加入我们的公共频道以获取更新和分享反馈。

Alpha 预期和建议

InfluxDB 3 Core 使用 Apache Arrow DataFusion 的 SQL 实现。数据类型定义了可以存储在表列中的值的类型。在 InfluxDB 的 SQL 实现中,一个measurement(测量)被构建为表,而 tags(标签)fields(字段)timestamps(时间戳)则作为列公开。

SQL 和 Arrow 数据类型

在 SQL 中,每个列、表达式和参数都有一个数据类型。数据类型是一个属性,用于指定对象可以容纳的数据类型。DataFusion 使用 Arrow 类型系统进行查询执行。所有 SQL 类型都映射到 Arrow 数据类型

SQL 和 Arrow 数据类型在查询执行期间如何操作数据以及如何在查询结果中返回数据方面都起着重要作用。

当执行类型转换操作时,除非您使用 arrow_cast() 转换为特定的 Arrow 类型,否则请转换为 SQL 数据类型。SQL 中的名称和标识符默认不区分大小写。例如

SELECT
  '99'::BIGINT,
  '2019-09-18T00:00:00Z'::timestamp

字符串类型

SQL 数据类型Arrow 数据类型描述
STRINGUTF8字符字符串,可变长度
CHARUTF8字符字符串,固定长度
VARCHARUTF8字符字符串,可变长度
TEXTUTF8可变无限长度
字符串文字示例
'abcdefghijk'
'time'
'h2o_temperature'

数值类型

支持以下数值类型

SQL 数据类型Arrow 数据类型描述
BIGINTINT6464 位有符号整数
BIGINT UNSIGNEDUINT6464 位无符号整数
DOUBLEFLOAT6464 位浮点数

整数

InfluxDB SQL 支持 64 位有符号整数

最小有符号整数: -9223372036854775808 最大有符号整数: 9223372036854775807

整数文字示例
234
-446
5

无符号整数

InfluxDB SQL 支持 64 位无符号整数

最小无符号整数: 0 最大无符号整数: 18446744073709551615

无符号整数文字示例

无符号整数文字由转换为 BIGINT UNSIGNED 类型的整数组成

234::BIGINT UNSIGNED
458374893::BIGINT UNSIGNED
5::BIGINT UNSIGNED

浮点数

InfluxDB SQL 支持 64 位双精度浮点值。浮点数可以是小数点、十进制整数或十进制小数。

浮点文字示例
23.8
-446.89
5.00
0.033

日期和时间数据类型

InfluxDB SQL 支持以下日期/时间数据类型

SQL 数据类型Arrow 数据类型描述
TIMESTAMPTimestamp(Nanosecond, None)纳秒时间戳,无时区偏移
INTERVALInterval(IntervalMonthDayNano)具有指定持续时间的时间间隔

时间戳

时间类型是使用纳秒精度的时间点。

支持以下日期和时间格式

YYYY-MM-DDT00:00:00.000Z
YYYY-MM-DDT00:00:00.000-00:00
YYYY-MM-DD 00:00:00.000-00:00
YYYY-MM-DDT00:00:00Z
YYYY-MM-DD 00:00:00.000
YYYY-MM-DD 00:00:00
时间戳文字示例
'2023-01-02T03:04:06.000Z'
'2023-01-02T03:04:06.000-00:00'
'2023-01-02 03:04:06.000-00:00'
'2023-01-02T03:04:06Z'
'2023-01-02 03:04:06.000'
'2023-01-02 03:04:06'

间隔

INTERVAL 数据类型可以与以下精度一起使用

  • 纳秒
  • 微秒
  • 毫秒
  • 分钟
  • 小时
  • 世纪
间隔文字示例
INTERVAL '10 minutes'
INTERVAL '1 year'
INTERVAL '2 days 1 hour 31 minutes'

布尔类型

布尔值存储 TRUE 或 FALSE 值。

SQL 数据类型Arrow 数据类型描述
BOOLEANBoolean真或假值
布尔文字示例
true
TRUE
false
FALSE

不支持的 SQL 类型

当前不支持以下 SQL 类型

  • UUID
  • BLOB
  • CLOB
  • BINARY
  • VARBINARY
  • REGCLASS
  • NVARCHAR
  • CUSTOM
  • ARRAY
  • ENUM
  • SET
  • DATETIME
  • BYTEA

与参数兼容的数据类型

有关可以由参数替换的数据类型的信息,请参阅如何将参数化查询与 SQL 结合使用


此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已发布公开 Alpha 版

InfluxDB 3 开源版本现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个作为 alpha 版本一部分的产品。

InfluxDB 3 Core 是我们新的开源产品。它是一个用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看