定义自定义分区
使用 influxctl
CLI 在创建数据库或表时定义自定义分区策略。默认情况下,InfluxDB 集群通过天来分区数据。
数据库或表的分区策略由一个 分区模板 决定,该模板定义了 分区键 的命名模式。分区键唯一标识每个分区。当分区模板应用于数据库时,它成为该数据库中所有表的默认模板,但在创建表时可以覆盖。
分区模板只能在创建时应用
您只能在创建数据库或表时应用分区模板。您不能更新现有资源的分区模板。
使用以下命令标志来识别 分区模板部分
--template-tag
:用于分区模板的 InfluxDB 标签。--template-tag-bucket
:一个 InfluxDB 标签 和将标签值分组到“桶”中的数量。提供标签键和将标签值分组到桶中的数量,通过逗号分隔:tagKey,N
。--template-timeformat
:指定分区模板中时间格式的 Rust strftime 日期和时间字符串,并确定分区的时间间隔。
分区模板可以包含最多7个总标签和标签桶部分,以及1个时间部分。
查看分区模板部分限制。
使用自定义分区时始终提供时间格式
当使用任何 influxctl
--template-*
标志为您数据库或表定义自定义分区模板时,始终包含 --template-timeformat
标志以及用于分区模板的时间格式。否则,InfluxDB 将省略分区模板中的时间,并且不会压缩分区。
使用自定义分区模板创建数据库
以下示例创建一个新的 example-db
数据库,并应用一个通过两个标签(room
和 sensor-type
)的唯一值、customerID
标签的桶值以及使用时间格式 %Y-%m-%d
的每日值进行分区的分区模板。
influxctl database create \
--template-tag room \
--template-tag sensor-type \
--template-tag-bucket customerID,500 \
--template-timeformat '%Y-%m-%d' \
example-db
使用自定义分区模板创建表
以下示例在指定的数据库中创建一个新的 example-table
表,并应用一个通过两个标签(room
和 sensor-type
)的唯一值、customerID
标签的桶值以及使用时间格式 %Y-%m
的月值进行分区的分区模板。
influxctl table create \
--template-tag room \
--template-tag sensor-type \
--template-tag-bucket customerID,500 \
--template-timeformat '%Y-%m' \
DATABASE_NAME \
example-table
在您的命令中替换以下内容
DATABASE_NAME
:您的 InfluxDB 集群 数据库
示例分区模板
以下是一个具有 2024-01-01T00:00:00Z
时间戳的 行协议 示例
prod,line=A,station=weld1 temp=81.9,qty=36i 1704067200000000000
通过唯一标签值进行分区
描述 | 标签部分 | 时间部分 | 结果分区键 |
---|---|---|---|
按日(默认) | %Y-%m-%d | 2024-01-01 | |
按月 | %Y-%m | 2024-01 | |
按年 | %Y | 2024 | |
单个标签,按日 | 行 | %Y-%m-%d | A | 2024-01-01 |
单个标签,按月 | 行 | %Y-%m | A | 2024-01 |
单个标签,按年 | 行 | %Y | A | 2024 |
多个标签,按日 | line ,station | %Y-%m-%d | A | weld1 | 2024-01-01 |
多个标签,按月 | line ,station | %Y-%m | A | weld1 | 2024-01 |
多个标签,按年 | line ,station | %Y | A | weld1 | 2024 |
通过标签桶进行分区
描述 | 标签部分 | 标签桶部分 | 时间部分 | 结果分区键 |
---|---|---|---|---|
唯一标签,标签桶,按日 | 行 | station,100 | %Y-%m-%d | A | 3 | 2024-01-01 |
唯一标签,标签桶,按月 | 行 | station,500 | %Y-%m | A | 303 | 2024-01 |
这个页面有用吗?
感谢您的反馈!