文档文档

分区模板

使用分区模板定义用于生成分区键的模式。分区键唯一标识一个分区,并用于在 对象存储 中命名分区 Parquet 文件。

一个分区模板由 1-8 个模板部分组成——用于分区数据的维度。存在三种类型的模板部分

  • tag:用于分区的 InfluxDB 标签
  • tag bucket:一个 InfluxDB 标签 和用于将标签值分组到其中的“bucket”数量。数据按标签 bucket 而不是每个不同的标签值进行分区。
  • * 必需 time:一个 Rust strftime 日期和时间字符串,用于指定分区数据的时间间隔。时间部分模板中包含的最小时间单位是用于分区数据的时间间隔。

一个分区模板必须包含 1 个 时间部分,并且最多可以包含 7 个 标签标签 bucket 部分。

限制

模板部分大小限制

每个模板部分的长度限制为 200 字节。任何更长的内容都将在 200 字节处被截断,并附加 #

分区键大小限制

由于模板部分被截断,分区键的最大长度为 1,607 字节(1.57 KiB)。

保留关键字

以下保留关键字不能在分区模板中使用

  • time

保留字符

如果在模板部分中使用,则非 ASCII 字符和以下保留字符必须进行 百分比编码

  • |:分区键部分分隔符
  • !:空值或缺少分区键部分
  • ^:空字符串分区键部分
  • #:键部分截断标记
  • %:明确反转百分比编码所必需

标签部分模板

标签部分模板由要分区的标签键组成。生成的分区键包含每个分区特有的唯一标签值

一个分区模板在一个操作标签(标签值和标签 bucket)的模板部分中,给定的标签键只能包含一次——例如

如果模板基于 tag_A 的唯一值进行分区,则不能将 tag_A 用作标签 bucket 部分。

标签 bucket 部分模板

标签 bucket 部分模板由要分区的标签键要将标签值分区到的“bucket”数量组成——例如

customerID,500

customerID 标签的值被分到 500 个不同的“bucket”中。每个 bucket 由标签值哈希成 32 位整数,然后除以指定的 bucket 数量后的余数来标识

hash(tagValue) % N

生成的分区键包含每个分区特有的唯一标签 bucket 标识符

支持的标签 bucket 数量: 1-1,000

标签 bucket 应用于按高基数标签或具有未知数量的不同值的标签进行分区。

一个分区模板在一个操作标签(标签值和标签 bucket)的模板部分中,给定的标签键只能包含一次——例如

如果模板基于 tag_A 的唯一值进行分区,则不能将 tag_A 用作标签 bucket 部分。

时间部分模板

时间部分模板使用 Rust strftime 日期和时间格式语法 的有限子集来指定分区键中的时间格式。时间部分模板可以是每日(%Y-%m-%d)、每月(%Y-%m)或每年(%Y)。InfluxDB 按时间部分模板中包含的最小时间单位分区数据。

InfluxDB 仅支持时间部分模板中的 日期说明符

日期说明符

时间部分模板仅允许以下日期说明符

变量示例描述
%Y2001完整的普罗勒普提格里高利年,零填充为 4 位数字。chrono 支持 -262144 到 262143 年的年份。注意:公元前 1 年之前或公元 9999 年之后的年份,需要初始符号 (+/-)。
%m07月份数字(01–12),零填充为 2 位数字。
%d08天数(01–31),零填充为 2 位数字。

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源现已公开发布 Alpha 版本

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布作为 Alpha 版本一部分的两个产品。

InfluxDB 3 Core 是我们的新开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看