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

news2024/11/9 3:54:51

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.coloradmin.cn/o/1114338.html

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

相关文章

基于epoll封装非阻塞的reactor框架(附源码)

C++常用功能源码系列 文章目录 C++常用功能源码系列前言一、reactor架构二、client端reactor代码三、server端reactor代码四、单reactor架构可以实现百万并发总结前言 本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项…

【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS拉丁超立方抽样、Halton、正交/均匀设计、随机rand函数)

【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS拉丁超立方抽样、Halton、正交/均匀设计、随机rand函数) 一、传统函数 1.指定区间随机生成数据(小数) [a b]区间随机数生成: Aa(b-a)rand(m,n) m:待生成矩阵A…

C语言实现用递归方法求 () = ∑ (^2)

完整代码&#xff1a; // 用递归方法求 ??(??) ∑ (??^2) #include<stdio.h>int func(int n){if (n1){return 1;}else{return n*nfunc(n-1);} }int main() {int n;printf("请输入一个整数");scanf("%d",&n);printf("%d",func(…

【C++】-还在玩普通的类吗,这里面有好几种特殊的类的设计,快进来看看

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

【代码随想录】算法训练营 第八天 第四章 字符串 Part 1

344. 反转字符串 题目 思路 我的思路是&#xff0c;用双指针&#xff0c;一个指左&#xff0c;一个指右&#xff0c;循环互换即可。 代码随想录的更简单精妙&#xff0c;直接用一个for循环搞定&#xff0c;里面用swap来互换。 代码 我的解法 class Solution { public:voi…

【IEEE】1区TOP仅1个月见刊(附IEEE旗下SCI实时影响因子汇总)

IEEE出版的SCI期刊有近200本&#xff0c;本期我们主要关注IEEE旗下被SCIE收录期刊的实时IF2023&#xff0c;所有期刊按照字母顺序排列。为方便对比&#xff0c;我们还给出了IF2022&#xff08;即今年6月公布的最新影响因子&#xff09;&#xff0c;供大家参考。 备注&#xff…

达索智能制造解决方案,敏捷电芯制造如何赋能企业竞争力 | 百世慧®

敏捷电芯制造赋能企业竞争力 全球电池市场正在快速扩大&#xff0c;为制造商带来巨大商机。 锂电行业的智能制造如何应用&#xff1f; 电池制造业的市场趋势是什么&#xff1f; 电池制造商面临哪些挑战&#xff1f; 特别是电池电芯制造方面&#xff0c;如何克服挑战获得竞…

阿里巴巴店铺所有商品数据接口及店铺商品数据分析

获取阿里巴巴店铺所有商品数据的接口是阿里巴巴开放平台提供的接口&#xff0c;通过该接口可以获取店铺所有商品数据。 通过阿里巴巴开放平台接口获取店铺所有商品数据的方法如下&#xff1a; 在开放平台注册成为开发者并创建一个应用&#xff0c;获取到所需的 App Key 和 Ap…

【华为认证超全科普帖】

华为认证是由华为基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技术架构&#xff0c;打造的业界覆盖ICT领域蕞广的认证体系。在信息和通信技术行业具有较高的含金量。 华为认证分为3个等级: HCIA (初级)&#xff1a;华为认证ICT工程师 HCIP (中级)&#xff1…

Pyside6 QMessageBox

Pyside6 QMessageBox QMessageBox使用5种基本消息自定义消息框QMessageBox标准按钮程序界面程序主程序 QMessageBox是一种通用的弹出式对话框&#xff0c;用于显示提示消息&#xff0c;允许用户点击不同的消息框按钮做出不同的判断。Pyside6提供了QMessageBox的操作函数&#x…

如何把Elasticsearch中的数据导出为CSV格式的文件

前言| 本文结合用户实际需求用按照数据量从小到大的提供三种方式从ES中将数据导出成CSV形式。本文将重点介Kibana/Elasticsearch高效导出的插件、工具集&#xff0c;通过本文你可以了解如下信息&#xff1a; 1&#xff0c;从kibana导出数据到csv文件 2&#xff0c;logstash导…

【EI会议征稿】第七届智能制造与自动化国际学术会议(IMA 2024)

第七届智能制造与自动化国际学术会议&#xff08;IMA 2024&#xff09; 2024 7th International Conference on Intelligent Manufacturing and Automation 第七届智能制造与自动化国际学术会议&#xff08;IMA 2024&#xff09;定于2024年1月12-14日在长沙隆重举行。会议主要…

自动注入@RequiredArgsConstructor

Autowired有波浪线&#xff0c;显示推荐使用构造器注入的方式。 但是以后需要自动注入的对象很多&#xff0c;写这么多构造函数代码会很长&#xff0c;可以在类上面加lombok中的RequiredArgsConstructor&#xff0c;表示必备参数的构造函数&#xff0c;给加final的成员变量生成…

使用Docker快速搭建Redis主从复制

目录 一、前言二、拉取Redis镜像三、创建挂载目录和添加配置文件3.1、主节点(6379)3.2、从节点(6380)3.3、从节点(6381) 四、启动Redis容器4.1、主节点(6379)4.2、从节点(6380)4.3、从节点(6381)4.4、启动命令参数介绍 五、查看各节点主从信息5.1、主节点(6379)5.2、从节点(638…

淘宝API访问入口未授权怎么解决?

没有授权应该是读取数据失败或是网络传输不稳定。 API的主要功能是提供应用程序与开发人员以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口&#xff0c;故而是一种抽象。 …

火山引擎实时、低延时拥塞控制算法的优化实践

摘要 火山引擎智能拥塞控制算法 VICC&#xff08;Volcano Intelligent Congestion Control&#xff09;是一种自适应的拥塞控制算法&#xff0c;旨在解决全球不同网络环境下&#xff0c;不同音视频应用对带宽利用率和延时的差异化要求。它结合了传统拥塞控制算法&#xff08;如…

YCSB and TPC-C on MySQL(避免重复load)

一、编译安装MySQL 下载mysql5.7.28源码 https://downloads.mysql.com/archives/community/ Select Operating System 选择 Source Code Select OS version 选择 All Operating Systems 选择带有boost的版本 安装系统包 apt -y install make cmake gcc g perl bison libai…

网站批量替换关键词方法

注意替换操作之前先对文件做好备份 1.下载http://downinfo.myhostadmin.net/ultrareplace5.02.rar 解压出来,运行UltraReplace.exe 2.点击菜单栏中的配置&#xff0c;全选所有文件类型,或者根据自己的需求选择部分,如htm、html、php、asp等 3.若替换单个文件,点击文件,若是要…