TDengine小知识-数据文件命名规则

TDengine 时序数据库对数据文件有自己的命名规则,文件名中包含了vnodeID、时间范围、版本、文件类型等多种信息。了解数据文件命名规则,可以让运维工作更简单。
废话不多说,直接上图:
在这里插入图片描述

  • v4:文件所属 Vgroup 组,该文件属于 Vgroup 4。
  • f1833:FileID,该ID使用时间命名,为时间分片的初始时间点,ID=UnixTime/Duration。
[root@c2-125 ~]# echo "1833*864000"|bc
1583712000
[root@c2-125 ~]# date -d @1583712000 +'%Y-%m-%d %H:%M:%S'
2020-03-09 08:00:00
##Otherway
[root@c2-125 ~]# echo "1833*864000"|bc|awk '{print strftime("%Y-%m-%d",$1)}'
2020-03-09

f1833 表示存储 2023-03-09 至 2023-03-19 时间范围的数据(以上示例数据库 Duration 是10天[864000秒])。

TIPS:TDengine 是按照零时区进行的时间分片和本地时区设置无关。

  • ver151:版本号,随文件更新而递增。
  • data:文件类型。

TDengine 3.0 版本有如下文件类型:

  1. data 数据文件,存储时序数据
  2. head 头文件(索引文件):存储data文件中的数据分布信息。
  3. stt 临时文件:临时存储不满足落盘条件(minRows)的数据。
  4. sma 预计算文件:存储时序数据的预计算结果。

案例演示

下面我们对上述说法进行验证,验证步骤如下:

  1. 创建数据库
  2. 写入指定时间数据
  3. 让数据落盘
  4. 检查文件名称

1. 创建数据库

taos> show databases;name              |
=================================information_schema             |performance_schema             |
Query OK, 2 row(s) in set (0.001396s)taos> create database db01 vgroups 1 duration 1d wal_retention_period 0;
Create OK, 0 row(s) affected (0.090438s)taos> show databases;name              |
=================================information_schema             |performance_schema             |db01                           |
Query OK, 3 row(s) in set (0.001374s)

为方便展示将 vgroups 数量设置为 1,文件分片粒度 duration 设置为 1天,wal 保存时间设置为 0。

2. 写入指定时间数据

taos> use db01;
Database changed.taos> create table t1(ts timestamp,v1 int);
Create OK, 0 row(s) affected (0.001026s)taos> insert into t1 values('2023-05-01T00:00:00Z',1);
Insert OK, 1 row(s) affected (0.000884s)taos> insert into t1 values('2023-05-01T00:00:01Z',2);
Insert OK, 1 row(s) affected (0.000697s)taos> insert into t1 values('2023-05-01T00:00:03Z',3);
Insert OK, 1 row(s) affected (0.000729s)taos> select * from t1;ts            |     v1      |
========================================2023-05-01 08:00:00.000 |           1 |2023-05-01 08:00:01.000 |           2 |2023-05-01 08:00:03.000 |           3 |
Query OK, 3 row(s) in set (0.016896s)

TIPS: 我在写入数据时采用的是 ISO8601 时间格式,指定时区为零时区。而我本地客户端设置的是东八区,因此显示的时间和我写入的时间相差 8 小时。
为保证写入数据时间的准确性,TDengine 建议采用 ISO8601 和 Epoch (Unix Time) 两种格式。

3. 数据落盘

taos> flush database db01;
Query OK, 0 row(s) affected (0.003168s)

4. 检查文件名称

检查文件名称前,我们先查看以下文件所属Vgroup

taos> show vgroups;vgroup_id  |            db_name             |   tables    | v1_dnode |  v1_status  | v2_dnode |  v2_status  | v3_dnode |  v3_status  | v4_dnode |  v4_status  |  cacheload  | cacheelements | tsma |
======================================================================================================================================================================================================6 | db01                           |           1 |        1 | leader      | NULL     | NULL        | NULL     | NULL        | NULL     | NULL        |           0 |             0 |    0 |
Query OK, 1 row(s) in set (0.002075s)
[root@c2-125 ~]# cd /var/lib/taos/vnode/vnode6/tsdb/
[root@c2-125 tsdb]# ll
total 8
drwxr-xr-x 2 root root  123 Oct 20 08:51 cache.rdb
-rwxrwxrwx 1 root root  135 Oct 20 08:57 current.json
-rwxrwxrwx 1 root root 4096 Oct 20 08:57 v6f19478ver1.stt

查看数据文件目录,可以看到里面只有 1 个 v6f19478ver1.stt 文件,因为刚才只写了 3 条数据,达不到落盘条件。

[root@c2-125 tsdb]# echo "19478*86400"|bc
1682899200
[root@c2-125 tsdb]# date -d @1682899200 +'%Y-%m-%d %H:%M:%S'
2023-05-01 08:00:00

做一下时间转换,显示该文件时间起始范围是 2023-05-01。

扩展

知道数据文件的命名规则可以帮助我们做哪些事情呢?

  1. 了解数据文件在硬盘上的分布。
  2. 了解进程在对哪些数据进行操作(lsof -p pidof taosd|grep REG)
  3. 了解不同时间范围数据特征(如果stt文件较大,可能需要compact)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode:2347. 最好的扑克手牌(python3解法)

难度:简单 给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌,第 i 张牌大小为 ranks[i] ,花色为 suits[i] 。 下述是从好到坏你可能持有的 手牌类型 : "Flush":同花,五张相同花色的…

奶萨看到你那看到教大家

从前阿萨姆调换四大家各不卡速卡大家

华为企业AP开启IPV6包转发

现象&#xff1a; 华为企业AP默认关闭IPV6转发&#xff0c;影响是即便是桥接模式下客户端无法与IPV6网关等设备通信。 web页面无任何相关配置项。 解决&#xff1a; ssh或串口登录&#xff0c;wlan视图下执行sta-ipv6-service enable 开启即可。 <HUAWEI> system-vi…

Flask四种配置方式

Flask是一个轻量级的Python Web框架&#xff0c;被广泛应用于Web开发中。Flask提供了多种配置方式&#xff0c;可以根据不同的需求和场景进行选择。本篇博客将介绍Flask的几种配置方式&#xff0c;并提供相关代码示例。 Flask应用程序的配置对象 在Flask中&#xff0c;应用程序…

安装visual studio报错“无法安装msodbcsql“

在安装visual studio2022时安装完成后提示无法安装msodbcsql, 查看日志文件详细信息提示&#xff1a;指定账户已存在。 未能安装包“msodbcsql,version17.2.30929.1,chipx64,languagezh-CN”。 搜索 URL https://aka.ms/VSSetupErrorReports?qPackageIdmsodbcsql;PackageActi…

用matlab求解线性规划

文章目录 1、用单纯形表求解线性规划绘制单纯形表求解&#xff1a; 2、用matlab求解线性规划——linprog()函数问题&#xff1a;补充代码&#xff1a;显示出完整的影子价格向量 1、用单纯形表求解线性规划 求解线性规划 m i n − 3 x 1 − 4 x 2 x 3 min -3x_1-4x_2x_3 min−…

【ArcGIS模型构建器】04:根据矢量范围批量裁剪影像栅格数据

本文以中国2000-2010-2020年3期GLC30土地覆盖数据为例,演示用模型构建器批量裁剪出四川省3年的数据。 文章目录 一、结果预览二、模型构建三、运行模型四、注意事项一、结果预览 用四川省行政区数据裁剪出的3年Globeland30(配套实验数据data04.rar中有三年中国区域成品数据)…

Centos 7 配置阿里云yum源

查版本号的命令 [rootlocalhost yum.repos.d]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) https://www.cnblogs.com/lfxx/p/17287253.html 1 备份现有的yum源cd /etc/yum.repos.d/ mkdir bak mv *.repo /etc/yum.repos.d/bak 2 创建阿里云yum源 方式2&a…

Java编写图片转base64

图片转成base64 url &#xff0c; 在我们的工作中也会经常用到&#xff0c;比如说导出 word,pdf 等功能&#xff0c;今天我们尝试写一下。 File file new File("");byte[] data null;InputStream in null;ByteArrayOutputStream out null;try{URL url new URL(&…

NAS搭建指南三——私人云盘

一、私人云盘选择 我选择的是可道云进行私人云盘的搭建可道云官网地址可道云下载地址&#xff0c;下载服务器端和 Windows 客户端可道云官方文档 二、环境配置 PHP 与 MySQL 环境安装&#xff1a;XAMPP 官网地址 下载最新的 windows 版本 安装时只勾选 MySQL 与 PHP相关即可…

信号继电器驱动芯片(led驱动芯片)

驱动继电器需要配合BAV99&#xff08;防止反向脉冲&#xff09;使用 具体应用参考开源项目 电阻箱 sbstnh/programmable_precision_resistor: A SCPI programmable precision resistor (github.com) 这个是芯片的输出电流设置 对应到上面的实际开源项目其设置电阻为1.5K&…

侯捷C++面向对象程序设计笔记(上)-Object Based(基于对象)部分

基于对象就是对于单一class的设计。 对于有指针的&#xff1a;complex.h complex-test.cpp 对于没有指针的&#xff1a; string.h string-test.cpp https://blog.csdn.net/ncepu_Chen/article/details/113843775?spm1001.2014.3001.5501#commentBox 没有指针成员——以复数co…

【Java】泛型类

泛型类定义的格式&#xff1a; 格式&#xff1a;修饰符 class 类名<类型>{} 范例&#xff1a;public class Mayikt<T>{} 此处T可以随便写为任意标识&#xff0c;T、E、K、V 等形式的参数常用于表示泛型 示例代码&#xff1a; package com.collection.Demo05;/*** …

力扣第55题 跳跃游戏 c++ 贪心 + 覆盖 加暴力超时参考

题目 55. 跳跃游戏 中等 相关标签 贪心 数组 动态规划 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &…

k8s calico 网络原理

一、cluster ip Cluster IP 是 Kubernetes 中 Service 的 IP 地址&#xff0c;它是一个虚拟 IP 地址&#xff0c;用于集群内的 Pod 相互通信。 例如&#xff1a; Cluster IP&#xff1a;2.2.2.2负载的真实Pod IP&#xff1a;1.1.1.1 场景&#xff1a; Pod A 的 IP 地址是 …

【RocketMQ系列十二】RocketMQ集群核心概念之主从复制生产者负载均衡策略消费者负载均衡策略

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

自动驾驶之—车道线感知

零、前言 &#xff1a; 最近在学习自动驾驶方向的东西&#xff0c;简单整理一些学习笔记&#xff0c;学习过程中发现宝藏up 手写AI 一、视觉系统坐标系 视觉系统一共有四个坐标系&#xff1a;像素平面坐标系&#xff08;u,v&#xff09;、图像坐标系&#xff08;x,y&#xff09…

开源WAF--Safeline(雷池)测试手册

长亭科技—雷池(SafeLine)社区版 官方网站:长亭雷池 WAF 社区版 (chaitin.cn) WAF 工作在应用层&#xff0c;对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果&#xff0c;使其免于受到黑客的攻击 1.1 雷池的搭建 1.1.1 配置需求 操作系统&#xff1a;Linux 指令架构&am…

【数据结构与算法】二叉树的运用要点

目录 一&#xff0c;二叉树的结构深入认识 二&#xff0c;二叉树的遍历 三&#xff0c;二叉树的基本运算 3-1&#xff0c;计算二叉树的大小 3-2&#xff0c;统计二叉树叶子结点个数 3-3&#xff0c;计算第k层的节点个数 3-4&#xff0c;查找指定值的结点 一&#xff0c;二叉…

Spring底层原理(二)

Spring底层原理(二) BeanFactory的实现 //创建BeanFactory对象 DefaultListableBeanFactory factory new DefaultListableBeanFactory(); //注册Bean定义对象 AbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition(SpringConfig.class).set…