InfluxDB 3 Core 中的数据保留
InfluxDB 3 Core 在查询时强制执行数据库保留期。任何时间戳超出保留期的数据点都将被从查询结果中过滤掉,尽管这些数据可能仍然存在于存储中。
数据库保留期
数据库保留期是指数据库保留数据的时长。保留期旨在自动删除过期数据并优化存储,无需用户干预。
默认情况下,数据不会过期。在您 创建数据库 时,您可以选择设置保留期。保留期最短可以是一个小时,也可以是无限长(none)。
在具有超出指定保留期(相对于当前时间)时间戳的数据库中,数据点无法被查询,但可能仍存在于存储中,直到被保留执行服务完全删除。
保留期格式
保留期指定为时长值,使用数字加上时长单位。保留期值不能为负数,也不能包含空格。
有效时长单位
| 单位 | 描述 |
|---|---|
h | 小时 |
d | 天 |
w | 周 |
mo | 月 (30 天) |
y | 年 (365 天) |
分钟 (m) 和秒 (s) 单位不支持用于保留期。
数据保留期限制
- 数据保留的最小值:实际最小数据保留期为 1 小时 (
1h)。 - 零持续时间周期:允许将数据保留期设置为
0<unit>(例如0d或0h),但这会将所有数据标记为在查询时立即删除。这与 InfluxDB 1.x 和 2.x 不同,在这些版本中0d表示无限期保留。 - 无限期保留:使用
none设置无限期保留。
保留期示例值
| Value | 描述 |
|---|---|
1h | 1 小时 |
24h | 24 小时(1 天) |
7d | 7 天 |
4w | 4 周(28 天) |
1mo | 1 个月(30 天) |
90d | 90 天 |
1y | 1 年(365 天) |
none | 无限 - 数据永不过期 |
您可以将多个时长单位组合在一个值中
| Value | 描述 |
|---|---|
30d12h | 30 天零 12 小时(30.5 天) |
2w3d | 2 周零 3 天(17 天) |
1y6mo | 1 年零 6 个月(545 天) |
设置数据库保留期
使用 influxdb3 create database 命令或 /api/v3/configure/database HTTP API 端点来创建带有保留期的数据库。
# Create a database with a 30-day retention period
influxdb3 create database --retention-period 30d DATABASE_NAME
# Create a database with infinite retention
influxdb3 create database --retention-period none DATABASE_NAME
# Create a database with a 90-day retention period using authentication
influxdb3 create database \
--retention-period 90d \
--token AUTH_TOKEN \
DATABASE_NAME# Create a database with a 30-day retention period
curl --request POST "localhost:8181/api/v3/configure/database" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer AUTH_TOKEN" \
--data '{
"db": "DATABASE_NAME",
"retention_period": "30d"
}'
# Create a database with infinite retention
curl --request POST "localhost:8181/api/v3/configure/database" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer AUTH_TOKEN" \
--data '{
"db": "DATABASE_NAME",
"retention_period": "none"
}'
# Create a database with a 90-day retention period
curl --request POST "localhost:8181/api/v3/configure/database" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer AUTH_TOKEN" \
--data '{
"db": "DATABASE_NAME",
"retention_period": "90d"
}'替换以下内容:
DATABASE_NAME:数据库的名称AUTH_TOKEN:您的 管理员令牌
Core 中的保留期是不可变的
在 InfluxDB 3 Core 中,保留期只能在 创建数据库 时设置,之后无法更改。如果您需要更改保留期,则必须创建一个具有所需保留期的新数据库并迁移您的数据。
升级到 InfluxDB 3 Enterprise 以获得更高级的保留功能
使用 InfluxDB 3 Enterprise,您可以设置表级别的保留策略并在创建后更新保留期。有关更多信息,请参阅 InfluxDB 3 Enterprise 数据保留。
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。