美文网首页
TDengine一些概念记录(gold_axe)

TDengine一些概念记录(gold_axe)

作者: 胖达_4b7e | 来源:发表于2019-08-29 14:49 被阅读0次

    超级表:

    先定义超级表
    不同的采集点, 实际表结构是一样的
    就是超级表的表结构
    按超级表来统计, 用不同的标签区分不同的表
    标签列的值 属于表的原数据 不保存在表的数据节点中, 而是通过超级表 保存在元数据里
    只在聚合统计时用到,从表里面查不到标签

    表:

    一个采集点,一张表
    除非有多组采集量多种采集频次
    每个采集点单独建表,存储上是一块连续的空间, 减少随机读, 只有一个写入者, 不用锁
    没有自定义索引, 只有对时间戳的自动建立的索引

    虚拟节点vnode

    存储、资源分配以及数据备份的单元,
    物理节点dnode分割的结果
    有专属的缓存, 硬盘上有自己的专门的文件夹

    创建库时, 库会被自动分配1一个vnode,
    添加一个表时,库拥有的vnode如果都没有空位了,管理节点将分配一个新的虚拟节点给该库
    这些vnode就专属于这个数据库

    每个vnode 会存有完整的多个表

    默认数据存储目录在/var/lib/taos/目录下,可以通过配置文件(默认是/etc/taos/taos.cfg)dataDir来配

    如果是集群, 每个vnode在其他物理节点里面会有一样的拷贝

    数据文件

    每个vnode在硬盘上有对应的文件夹 里面是这样, 就是数据文件


    数据文件总共有三类文件,

    • data文件,真实的数据块
    • head文件, 对应的data文件中数据块的索引信息;
    • last文件,专门存储最后写入的数据,每次落盘操作时,这部分数据会与内存里的数据合并,并决定是否写入data文件还是last文件。

    数据块

    一个vnode里面的数据的存储 是按时间,而不是按表,
    一个虚拟节点内的所有表,在同一时间段的 数据 存储在同一个数据文件

    数据文件 里面 划分成 数据块,数据在数据块中按列存储:同列的数据存放在一起
    这样,对于不同的数据类型采用不同的压缩方法,提高压缩的比例

    每个表的数据分散在各个数据文件的数据块里面,所以,每张表有一索引,保存每个数据块在文件中的偏移量,起始时间、数据点数、压缩算法等信息,
    查询时,根据给定的时间段, 将计算出查找的数据会在哪个数据文件,然后读取。

    内存块


    图中的4 写入内存块, 就可以回复客户端完成了
    内存块一般就是一页16k , 时间到或者满了就会刷到硬盘
    一个表会分到多个内存块
    但块与块是不连续的,在内存里面, 会有块的索引

    期限

    在默认配置下,硬盘上的每个数据文件存放10天数据。。

    表中的数据都有保存时间,一旦超过保存时间(缺省是365天),数据将被系统自动删除。

    # number of days per DB file
    # days                  10
    
    # number of days to keep DB file
    # keep                  3650
    

    相关文章

      网友评论

          本文标题:TDengine一些概念记录(gold_axe)

          本文链接:https://www.haomeiwen.com/subject/zlpbectx.html