SQL 数据类型
InfluxDB 3 Core 处于公开 Alpha 阶段
InfluxDB 3 Core 处于公开 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 数据类型 | 描述 |
---|---|---|
STRING | UTF8 | 字符字符串,可变长度 |
CHAR | UTF8 | 字符字符串,固定长度 |
VARCHAR | UTF8 | 字符字符串,可变长度 |
TEXT | UTF8 | 可变无限长度 |
字符串文字示例
'abcdefghijk'
'time'
'h2o_temperature'
数值类型
支持以下数值类型
SQL 数据类型 | Arrow 数据类型 | 描述 |
---|---|---|
BIGINT | INT64 | 64 位有符号整数 |
BIGINT UNSIGNED | UINT64 | 64 位无符号整数 |
DOUBLE | FLOAT64 | 64 位浮点数 |
整数
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 数据类型 | 描述 |
---|---|---|
TIMESTAMP | Timestamp(Nanosecond, None) | 纳秒时间戳,无时区偏移 |
INTERVAL | Interval(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 数据类型 | 描述 |
---|---|---|
BOOLEAN | Boolean | 真或假值 |
布尔文字示例
true
TRUE
false
FALSE
不支持的 SQL 类型
当前不支持以下 SQL 类型
- UUID
- BLOB
- CLOB
- BINARY
- VARBINARY
- REGCLASS
- NVARCHAR
- CUSTOM
- ARRAY
- ENUM
- SET
- DATETIME
- BYTEA
与参数兼容的数据类型
有关可以由参数替换的数据类型的信息,请参阅如何将参数化查询与 SQL 结合使用。
此页内容是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 3 Core 和本文档的反馈和错误报告。如需获得支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。