创建数据库
使用influxctl database create命令在您的InfluxDB集群中创建数据库。
如果您还没有,下载并安装
influxctlCLI。运行
influxctl database create命令并提供以下内容:- 可选: 数据库 保留期 (默认是无限的)
- 可选: 数据库表(测量)限制 (默认是 500)
- 可选: 数据库列限制 (默认值为 250)
- 可选: InfluxDB 标签 用于分区模板
- 可选: InfluxDB 标签桶 用于分区模板
- 可选: 一个 Rust strftime 日期和时间字符串
指定分区模板中的时间格式,并确定按时间间隔进行分区 (默认为
%Y-%m-%d) - 数据库名称 (请参见 数据库命名限制)
InfluxDB 集群支持在分区模板中最多使用 7 个标签或标签桶。
influxctl database create \
--retention-period 30d \
--max-tables 500 \
--max-columns 250 \
--template-tag tag1 \
--template-tag tag2 \
--template-tag-bucket tag3,100 \
--template-tag-bucket tag4,300 \
--template-timeformat '%Y-%m-%d' \
DATABASE_NAME
保留期语法
使用 --retention-period 标志来定义数据库的特定
保留期限。
保留期限值是由数字值加上时间单位组成的时间持续值。
例如, 30d 意味着 30 天。
零持续时间 (0d) 的保留期限是无限的,数据不会过期。
保留期限值不能为负数或包含空格。
有效的持续时间单位包括
- m: 分钟
- h: 小时
- d: 天
- w: 周
- mo: 月份
- y: 年
示例保留期值
0d: 无限/无3d: 3天6w: 6 周1mo: 1个月(30天)1y: 1 年30d30d: 60天2.5d: 60小时
数据库命名限制
数据库名称必须遵循以下命名限制:
- 不能包含空格、标点符号或特殊字符。只有字母数字、下划线 (
_)、破折号 (-) 和斜杠 (/) 字符是允许的。 - 不应以下划线 (
_) 开头。 - 最大长度为64个字符。
InfluxQL DBRP 命名约定
在 InfluxDB 1.x 中,数据存储在 databases 和 retention policies 中。 在 InfluxDB Clustered 中,数据库和保留策略已合并为 databases,其中数据库有保留期限,但保留策略不再是数据模型的一部分。 因为 InfluxQL 使用 1.x 数据模型,所以数据库必须映射到 v1 数据库和保留策略 (DBRP),才能被 InfluxQL 查询。
当你要使用InfluxQL查询一个数据库时,请使用以下命名约定将v1 DBRP组合自动映射到InfluxDB集群数据库:
database_name/retention_policy_name
数据库命名示例
| v1 数据库名称 | v1 保留策略名称 | 新数据库名称 |
|---|---|---|
| 数据库 | 重复 | 数据库/重复 |
| telegraf | 自动生成 | telegraf/自动生成 |
| 网络指标 | 1万降采样 | 网络指标/1万降采样 |
表和列的限制
在InfluxDB集群中,可以使用 --max-tables 和 --max-columns 标志来配置表(测量)和列的限制。
表限制
默认最大表数量: 500
每个测量在数据库中由一个表表示。 您数据库的表限制可以提高到超过默认限制500。 InfluxData 有 20,000 个以上活跃表的集群生产示例,跨多个数据库。
增加您的表限制会影响您的 InfluxDB 集群,具体如下:
列限制
默认最大列数: 250
时间、字段和标签在表中分别由一列表示。增加您的列限制会以以下方式影响您的 InfluxDB 集群:
自定义分区
InfluxDB集群允许您为每个数据库定义自定义分区策略。 分区是在InfluxDB 3存储引擎中以Apache Parquet格式存储的数据的逻辑分组。 默认情况下,数据按天进行分区,但根据您的模式和工作负载,自定义分区策略可以提高查询性能。
使用 --template-tag、--template-tag-bucket 和 –template-timeformat 标志来定义用于生成数据库分区键的分区模板部分。有关更多信息,请参阅 管理数据分区。
分区模板只能在创建时应用
在创建数据库时,您只能应用分区模板。
您不能更新现有数据库上的分区模板。