文档文档

SQL 数据类型

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

SQL 和 Arrow 数据类型

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

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

执行类型转换操作时,转换为 SQL 数据类型,除非您使用 arrow_cast() 转换为特定的 Arrow 类型。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 支持以下 DATE/TIME 数据类型

SQL 数据类型Arrow 数据类型描述
TIMESTAMPTimestamp(纳秒, 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 数据类型描述
BOOLEANBooleanTrue 或 false 值
布尔文字示例
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 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

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