SQL 数据类型
InfluxDB 3 企业版正在公开Alpha测试
InfluxDB 3 Enterprise 处于公开测试阶段,可供测试和反馈,但不适合生产环境使用。产品和该文档均处于不断完善中。我们欢迎并鼓励您分享您对Alpha版本的使用体验,并邀请您加入我们的公共频道以获取更新和分享反馈。
InfluxDB 3 Enterprise 使用 Apache Arrow DataFusion 的 SQL 实现。数据类型定义了可以存储在表列中的值类型。在 InfluxDB 的 SQL 实现中,测量 结构作为一个表,标签、字段 和 时间戳 被显示为列。
SQL 和 Arrow 数据类型
在SQL中,每个列、表达式和参数都有一个数据类型。 数据类型是一个属性,用于指定对象可以保存的数据类型。 DataFusion使用Arrow类型系统进行查询执行。 所有SQL类型都映射到Arrow数据类型。
SQL和Arrow数据类型在查询执行期间以及在查询结果中返回数据的方式中发挥着重要作用。
在执行转换操作时,除非使用
arrow_cast()
将数据转换为特定的箭头类型,否则转换为SQL数据类型。SQL中的名称和标识符默认情况下是不区分大小写的。例如:
SELECT
'99'::BIGINT,
'2019-09-18T00:00:00Z'::timestamp
字符串类型
| SQL 数据类型 | Arrow 数据类型 | 描述 |
|---|---|---|
| 字符串 | UTF8 | 字符字符串,变长 |
| CHAR | UTF8 | 字符字符串,固定长度 |
| VARCHAR | UTF8 | 可变长度字符字符串 |
| 文本 | UTF8 | 可变无限长度 |
示例字符串字面量
'abcdefghijk'
'time'
'h2o_temperature'
数字类型
支持以下数值类型:
| SQL 数据类型 | Arrow 数据类型 | 描述 |
|---|---|---|
| BIGINT | INT64 | 64位有符号整数 |
| 无符号大整数 | UINT64 | 64位无符号整数 |
| 双精度 | 浮点数64 | 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(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 | 布尔值 | 真或假值 |
布尔字面值示例
true
TRUE
false
FALSE
不支持的SQL类型
以下SQL类型当前不被支持:
- UUID
- 二进制大对象
- CLOB
- 二进制
- 变长二进制
- 注册类
- nvarchar
- 自定义
- 数组
- 枚举
- 设置
- 日期时间
- 字节数组
与参数兼容的数据类型
有关可以由参数替代的数据类型的信息,请参阅如何 使用带参数的SQL查询。