创建influxctl数据库
该 influxctl database create 命令在 InfluxDB Cloud Dedicated 集群中创建一个具有指定保留期的新数据库。
保留期限定义了根据数据的时间戳在数据库中保留的数据的最大年龄。
保留期限值由一个数值加上一个持续时间单位组成的时间持续值。例如,30d 意味着 30 天。
零持续时间的保留期限是无限的,数据将不会过期。
保留期限值不能为负值或包含空格。
有效的持续时间单位包括
- m: 分钟
- h: 小时
- d: 天
- w: 周
- mo: 月份
- y: 年
示例保留期值
0d: 无限/无3d: 3天6w: 6 周1mo: 1个月(30天)1y: 1 年30d30d: 60天2.5d: 60小时
自定义分区
您可以在创建数据库时使用 --template-tag, --template-tag-bucket 和 --template-timeformat 标志覆盖数据库的默认分区模板 (%Y-%m-%d)。使用 Rust strftime 提供时间格式,按特定标签分区,或将标签值分区到指定数量的“桶”中。每个选项都可以作为分区模板的一部分。请确保遵循 分区最佳实践。
使用自定义分区时始终提供时间格式
如果使用任何--template-*标志为您的数据库定义自定义分区模板,请始终包括--template-timeformat标志以及用于您的分区模板的时间格式。否则,InfluxDB将从分区模板中省略时间,并且不会压缩分区。
无法重用已删除的数据库名称
在创建新数据库时,您不能重复使用已删除数据库的名称。如果您尝试重复使用该名称,API响应状态代码是 400,而 message 字段包含以下内容:
'iox_proxy.app.CreateDatabase failed to create database: \
rpc error: code = AlreadyExists desc = A namespace with the
name `<DATABASE_NAME>` already exists'
用法
influxctl database create [flags] <DATABASE_NAME>
参数
| 参数 | 描述 |
|---|---|
| DATABASE_NAME | InfluxDB 数据库名称 |
标志
| 标志 | 描述 | |
|---|---|---|
--retention-period | 数据库保留期限 (默认为 0s, 无限) | |
--max-tables | 每个数据库的最大表数 (默认是 500, 0 使用默认值) | |
--max-columns | 每个表的最大列数 (默认是 250, 0 使用默认值) | |
--template-tag | 添加到分区模板的标签(可以包含多个此标志) | |
--template-tag-bucket | 标签和将标签值划分到的桶的数量,以逗号分隔–例如: tag1,100 (可以包含多个此标志) | |
--template-timeformat | 分区模板的时间戳格式(默认为 %Y-%m-%d) | |
-h | --help | 输出命令帮助 |
另见 influxctl 全局标志.
示例
创建一个无限保留期的数据库
influxctl database create mydb
创建一个保留期为30天的数据库
influxctl database create \
--retention-period 30d \
mydb
创建一个具有非默认表和列限制的数据库
influxctl database create \
--max-tables 200 \
--max-columns 150 \
mydb
使用自定义分区模板创建数据库
以下示例创建一个新的 mydb 数据库,并应用一个通过两个标签(room 和 sensor-type)以及按天使用时间格式 %Y-%m-%d 进行分区的分区模板:
influxctl database create \
--template-tag room \
--template-tag sensor-type \
--template-tag-bucket customerID,1000 \
--template-timeformat '%Y-%m-%d' \
mydb
有关自定义分区的更多信息,请参见 管理数据分区.