Apache IoTDB(17):IoTDB数据保留时间管理从TTL设置到智能数据控制

Apache IoTDB(17):IoTDB数据保留时间管理从TTL设置到智能数据控制

引言

IoTDB 支持在设备(device)级别设置数据保留时间(TTL),系统会根据设定的TTL自动清理过期数据,从而有效管理存储空间并确保查询性能。TTL默认采用毫秒计时,数据过期后将不可查询且禁止写入,但实际物理删除会在数据压缩时完成。需要注意:修改TTL设置可能导致数据可见性短暂波动,若缩短或取消TTL设置,原先因TTL限制而不可见的数据可能会重新显示。

需要注意的是:

TTL 设置为毫秒,不受配置文件时间精度影响
TTL 变更可能影响数据的可查询性
系统最终会移除过期数据,但存在延迟
TTL 判断数据是否过期依据的是数据点时间,非写入时间
系统最多支持设置 1000 条 TTL 规则,达到上限需先删除部分规则才能设置新规则
在这里插入图片描述

Apache IoTDB 时序数据库【系列篇章】

No.文章地址(点击进入)
1Apache IoTDB(1):时序数据库介绍与单机版安装部署指南
2Apache IoTDB(2):时序数据库 IoTDB 集群安装部署的技术优势与适用场景分析
3Apache IoTDB(3):时序数据库 IoTDB Docker部署从单机到集群的全场景部署与实践指南
4Apache IoTDB(4):深度解析时序数据库 IoTDB 在Kubernetes 集群中的部署与实践指南
5Apache IoTDB(5):深度解析时序数据库 IoTDB 中 AINode 工具的部署与实践
6Apache IoTDB(6):深入解析数据库管理操作——增删改查与异构数据库实战指南
7Apache IoTDB(7):设备模板管理——工业物联网元数据标准化的破局之道
8Apache IoTDB(8):时间序列管理——从创建到分析的实战指南
9Apache IoTDB(9):数据库操作——数据写入从CLI到集群部署的六种实战
10Apache IoTDB(10):数据库操作——从查询到优化的全链路实践指南
11Apache IoTDB(11):分段聚合深度解析——从原理到实战的完整指南
12Apache IoTDB(12):深度解析时序数据聚合的GROUP BY与HAVING子句
13Apache IoTDB(13):数据处理的双刃剑——FILL空值填充与LIMIT/SLIMIT分页查询实战指南
14Apache IoTDB(14):IoTDB结果集排序与查询对齐模式——ORDER BY与ALIGN BY DEVICE使用
15Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
16Apache IoTDB(16):数据删除从单点精准清除到企业级数据生命周期管理

本文将讲解IoTDB的TTL机制,从路径规则、适用规则到操作实践,结合生产环境真实案例,为友友们呈现一套完整的数据保留时间管理方案。

一、设置TTL

1.1 TTL Path 规则

设置的路径 path 只支持前缀路径(即路径中间不能带 * , 且必须以 ** 结尾),该路径会匹配到设备,也允许用户指定不带星的 path 为具体的 database 或 device,当 path 不带 * 时,会检查是否匹配到 database,若匹配到 database,则会同时设置 path 和 path.**。
注意:设备 TTL 设置不会对元数据的存在性进行校验,即允许对一条不存在的设备设置 TTL。

合格的 path: root.** root.db.** root.db.group1.** root.db root.db.group1.d1 不合格的 path: root.*.db root.**.db.* root.db.* 

1.2 特殊路径处理

当一个设备适用多条TTL规则时,优先适用较精确和较长的规则。例如对于设备“root.bj.hd.dist001.turbine001”来说,规则“root.bj.hd.dist001.turbine001”比“root.bj.hd.dist001.”优先,而规则“root.bj.hd.dist001.”比“root.bj.hd.**”优先;

为兼容历史版本,IoTDB实现智能路径扩展机制。当用户输入SET TTL TO root.sg 360000时,系统自动转换。

SET TTL TO root.sg.**360000;

系统对路径合法性进行严格校验,以下为合法路径示例:

root.** root.db.** root.db.group1.** root.db.group1.d1 

非法路径示例:

root.*.db -路径中间包含非法星号 root.**.db -路径结尾前存在星号 root.db.*-路径结尾星号前无字符 

1.3 TTL 适用规则

当一个设备适用多条TTL规则时,优先适用较精确和较长的规则。例如对于设备“root.bj.hd.dist001.turbine001”来说,规则“root.bj.hd.dist001.turbine001”比“root.bj.hd.dist001.”优先,而规则“root.bj.hd.dist001.”比“root.bj.hd.**”优先;

优先级的机制,当设备匹配多条TTL规则时,IoTDB采用"最精确最长"优先原则。以设备root.bj.hd.dist001.turbine001为例:

  1. 精确设备规则:root.bj.hd.dist001.turbine001(优先级最高)
  2. 分组规则:root.bj.hd.dist001.**
  3. 区域规则:root.bj.hd.**
  4. 全国规则:root.bj.**

规则数量也有限制,IoTDB系统最多支持1000条TTL规则。当达到数量上限的时候,需要先删除部分规则才能设置新规则。需要限制确保系统性能不受过量规则影响。

二、TTL设置操作

set ttl 操作可以理解为设置一条 TTL规则,比如 set ttl to root.sg.group1.** 就相当于对所有可以匹配到该路径模式的设备挂载 ttl。 unset ttl 操作表示对相应路径模式卸载 TTL,若不存在对应 TTL,则不做任何事。若想把 TTL 调成无限大,则可以使用 INF 关键字。

语法

设置TTL的标准语法:

SET TTL TO<pathPattern><ttlValue>;

示例:

set ttl to pathPattern 360000;

pathPattern 是前缀路径,即路径中间不能带 * 且必须以 ** 结尾。
pathPattern 匹配对应的设备。为了兼容老版本 SQL 语法,允许用户输入的 pathPattern 匹配到 db,则自动将前缀路径扩展为 path.
例如,写set ttl to root.sg 360000 则会自动转化为set ttl to root.sg.
360000,转化后的语句对所有 root.sg 下的 device 设置TTL。
但若写的 pathPattern 无法匹配到 db,则上述逻辑不会生效。
如写set ttl to root.sg.group 360000 ,由于root.sg.group未匹配到 db,则不会被扩充为root.sg.group.**。 也允许指定具体 device,不带 *

三、取消TTL操作

3.1 语法

取消TTL的标准语法:

IoTDB> unset ttl from root.**

示例:

IoTDB> unset ttl from root.ln 

取消设置 TTL 后, root.ln 路径下所有的数据都会被保存

IoTDB> unset ttl from root.sgcc.**

取消设置root.sgcc路径下的所有的 TTL

IoTDB> unset ttl from root.**

3.2 批量取消

IoTDB是支持批量取消TTL

取消整个存储组

UNSET TTL FROM root.bj.**;

取消多级分组TTL

UNSET TTL FROM root.sg.group1.**;

四、显示TTL信息

显示 TTL 的 SQL 语句如下

显示所有的TTL

SHOWALL TTL;

示例:

+--------------+--------+ | path | TTL | +--------------+--------+ | root.** | 55555555 | | root.sg2.a.**| 44440000 | +--------------+--------+ 

显示指定路径TTL

SHOW TTL ON root.db.**;

示例:

+--------------+--------+ | path | TTL | +--------------+--------+ | root.db.** | 55555555 | | root.db.a.** | 44440000 | +--------------+--------+ 

显示设备的 TTL

show devices 

示例:

+---------------+---------+---------+ | Device | IsAligned| TTL | +---------------+---------+---------+ | root.sg.device1| false | 36000000| | root.sg.device2| true | INF | +---------------+---------+---------+ 

显示表级TTL

SHOWTABLES DETAILS;

示例:

+---------+-------+----------+ | TableName| TTL(ms)| Status | +---------+-------+----------+ | bean | 300 | PRE_CREATE| | grass | 1000 | USING | | bamboo | 300 | USING | | flower | INF | USING | +---------+-------+----------+ 

IoTDB数据库TTL显示结果包含路径、TTL值和状态信息。INF表示无限TTL,数字表示具体毫秒数。状态信息等。

总结

Apache IoTDB的TTL机制通过智能化的数据生命周期管理,帮助企业实现存储成本与查询性能的完美平衡。本文从路径规则、适用规则到操作实践,全面解析了IoTDB的TTL管理机制。可以快速的构建高效可靠的数据保留时间管理体系。随着物联网技术的不断发展,IoTDB的TTL机制将持续更新迭代,为企业和个人提供更加智能、高效的数据管理方案。

Read more

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 作者:高瑞冬 本文目录 * AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 * 一、MCP协议简介 * 二、创建MCP工具集 * 1. 获取MCP服务地址 * 2. 在FastGPT中创建MCP工具集 * 三、测试MCP工具 * 四、AI模型调用MCP工具 * 1. 调用单个工具 * 2. 调用整个工具集 * 五、私有化部署支持 * 1. 环境准备 * 2. 修改docker-compose.yml文件 * 3. 修改FastGPT配置 * 4. 重启服务 * 六、使用MCP-Proxy集成多个MCP服务 * 1. MCP-Proxy简介 * 2. 安装MCP-Proxy * 3. 配置MCP-Proxy * 4. 将MCP-Proxy与FastGPT集成 * 5. 高级配置

By Ne0inhk
【大模型实战篇】基于Claude MCP协议的智能体落地示例

【大模型实战篇】基于Claude MCP协议的智能体落地示例

1. 背景         之前我们在《MCP(Model Context Protocol) 大模型智能体第一个开源标准协议》一文中,介绍了MCP的概念,虽然了解了其概念、架构、解决的问题,但还缺少具体的示例,来帮助进一步理解整套MCP框架如何落地。         今天我们基于claude的官方例子--获取天气预报【1】,来理解MCP落地的整条链路。 2. MCP示例         该案例是构建一个简单的MCP天气预报服务器,并将其连接到主机,即Claude for Desktop。从基本设置开始,然后逐步发展到更复杂的使用场景。         大模型虽然能力非常强,但其弊端就是内容是过时的,这里的过时不是说内容很旧,只是表达内容具有非实时性。比如没有获取天气预报和严重天气警报的能力。因此我们将使用MCP来解决这一问题。         构建一个服务器,该服务器提供两个工具:获取警报(get-alerts)和获取预报(get-forecast)。然后,将该服务器连接到MCP主机(在本例中为Claude for Desktop)。         首先我们配置下环

By Ne0inhk
基于腾讯云HAI + DeepSeek快速设计自己的个人网页

基于腾讯云HAI + DeepSeek快速设计自己的个人网页

前言:通过结合腾讯云HAI 强大的云端运算能力与DeepSeek先进的 AI技术,本文介绍高效、便捷且低成本的设计一个自己的个人网页。你将了解到如何轻松绕过常见的技术阻碍,在腾讯云HAI平台上快速部署DeepSeek模型,仅需简单几步,就能获取一个包含个人简介、技能特长、项目经历及联系方式等核心板块的响应式网页。 目录 一、DeepSeek模型部署在腾讯云HAI 二、设计个人网页 一、DeepSeek模型部署在腾讯云HAI 把 DeepSeek 模型部署于腾讯云 HAI,用户便能避开官网访问限制,直接依托腾讯云 HAI 的超强算力运行 DeepSeek-R1 等模型。这一举措不仅降低了技术门槛,还缩短了部署时间,削减了成本。尤为关键的是,凭借 HAI 平台灵活且可扩展的特性,用户能够依据自身特定需求定制专属解决方案,进而更出色地适配特定业务场景,满足各类技术要求 。 点击访问腾讯云HAI控制台地址: 算力管理 - 高性能应用服务 - 控制台 腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力,只需简单的几步就能调用DeepSeek - R1

By Ne0inhk
AI革命先锋:DeepSeek与蓝耘通义万相2.1的无缝融合引领行业智能化变革

AI革命先锋:DeepSeek与蓝耘通义万相2.1的无缝融合引领行业智能化变革

云边有个稻草人-ZEEKLOG博客 目录 引言 一、什么是DeepSeek? 1.1 DeepSeek平台概述 1.2 DeepSeek的核心功能与技术 二、蓝耘通义万相2.1概述 2.1 蓝耘科技简介 2.2 蓝耘通义万相2.1的功能与优势 1. 全链条智能化解决方案 2. 强大的数据处理能力 3. 高效的模型训练与优化 4. 自动化推理与部署 5. 行业专用解决方案 三、蓝耘通义万相2.1与DeepSeek的对比分析 3.1 核心区别 3.2 结合使用的优势 四、蓝耘注册流程 五、DeepSeek与蓝耘通义万相2.1的集成应用 5.1 集成应用场景 1. 智能医疗诊断

By Ne0inhk