数据摄取生命周期最佳实践进入InfluxDB的数据必须符合其存储的数据库的保留期。超出保留期的数据点将无法查询,但可能仍保留在对象存储或目录中的引用,从而导致运营成本和开销增加。为了减少这些因素,管理摄取数据的生命周期非常重要。
使用以下最佳实践来管理InfluxDB集群中数据的生命周期
使用适当的保留期调整垃圾回收使用适当的保留期在创建或更新数据库时,使用适合您需求的保留期。存储超出所需的数据会增加InfluxDB集群的不必要运营成本。
调整垃圾回收一旦数据超出数据库的保留期,垃圾收集服务可以删除与该数据相关的所有目录和对象存储中的条目。调整垃圾收集器的截止时间以确保数据及时删除。
使用以下环境变量来调整垃圾收集器
INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF:Parquet文件未被目录引用时的年龄,使其有资格从对象存储中删除。默认为30d。INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF:保留标记为删除的Parquet文件引用的目录中的行的时间。默认为30d。这些值调整垃圾收集器可以有多激进。较短的持续时间值意味着文件可以更快地被删除。
为了确保在删除文件和引用之前有一个宽限期,垃圾收集器(GC)对象存储和Parquet文件的最小截止时间是三小时(3h)。
我们建议将这些选项设置为与您的组织备份和恢复策略一致的价值。例如,6h(6小时)对于仅维护最近数据的精简目录且不需要备份的情况是合适的。
用例示例以下场景可作为不同使用案例的指南
无备份的领先边缘数据
当只有最近的数据重要且不需要备份时,为垃圾收集器使用非常低的截止点。使用低值意味着垃圾收集服务将及时从对象存储中删除文件并从目录中删除相关行。这导致目录变得精简,运营成本降低,对象存储中的文件更少。
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
package:
# ...
spec:
components:
garbage-collector:
template:
containers:
iox:
env:
INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '6h'
INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '6h'
具有对象存储版本化的自定义备份窗口
当需要备份并且您正在利用对象存储(由您的对象存储提供商提供)的版本化功能时,为垃圾收集器服务使用低截止点。您的对象版本化策略确保过期的文件在指定的备份窗口时间内保持。
对象版本化在数据过期后保持对象存储中的Parquet文件,但允许目录删除对Parquet文件的引用。非当前对象应配置为尽快过期,但保留足够长以满足您组织的备份策略。
以下示例说明了AWS S3生命周期规则,该规则在90天后使非当前对象过期
{
"Rules": [
{
"ID": "my-lifecycle-rule",
"Filter": {
"Prefix": ""
},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 90
}
}
]
}
将garbage-collector设置为使用低截止点。以下示例使用6h
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
package:
# ...
spec:
components:
garbage-collector:
template:
containers:
iox:
env:
INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '6h'
INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '6h'
无对象存储版本化的自定义备份窗口
如果您无法利用对象版本化策略但仍需要备份窗口,请配置垃圾收集器保留Parquet文件的时间与您的备份周期所需的时间一样长。
这可能导致运营成本更高,因为目录维护了更多相关Parquet文件的引用,并且Parquet文件在对象存储中保留的时间更长。
如果可能,我们建议使用对象版本化。
以下示例将垃圾收集器截止点设置为100d
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
package:
# ...
spec:
components:
garbage-collector:
template:
containers:
iox:
env:
INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '100d'
INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '100d'
这个页面有帮助吗?
是
否感谢您的反馈!
支持和反馈感谢您成为我们社区的一员!我们欢迎并鼓励您对InfluxDB和此文档的反馈和错误报告。要查找支持,请使用以下资源
InfluxData社区InfluxDB社区Slack有年度或支持合同的客户可以通过联系InfluxData支持。
编辑此页面 提交文档问题 提交InfluxDB问题
