TDengine是一款开源、高性能、云原生的时序数据库,且针对物联网、车联网、工业互联网、金融、IT运维等场景进行了优化。TDengine的代码,包括集群功能,都在GNUAGPLv0下开源。除核心的时序数据库功能外,TDengine还提供缓存、数据订阅、流式计算等其它功能以降低系统复杂度及研发和运维成本。
2主要功能
数据写入,支持标准sql
查询支持,支持标准sql
缓存,将每张表的最后一条记录缓存起来,这样无需Redis就能对时序数据进行高效处理
流式计算,支持对实时写入的数据进行预处理
数据订阅,应用程序可以订阅一张表或一组表的数据,提供与Kafka相同的API,而且可以指定过滤条件
可视化,支持与Grafana的无缝集成形成监控报警系统
集群,可以通过增加节点进行水平扩展以提升处理能力,通过多副本提供高可用能力
编程
提供各种语言的连接器:C/C++、Java、Go、Node.js、Rust、Python、C#等
支持REST接口
基本概念
下面用一组证券code来举例说明
codetimestamp开盘价最高价最低价最新价市场种类11363SZ2023-02-2715:35:00.0001012911深市股票11363SZ2023-02-2715:35:0000101285深市股票00000SH2023-02-2715:35:00.0006756沪市指数00000SH2023-02-2715:35:00006755沪市指数
上面是两只code的几笔快照数据,可以说是按照时间存储在一张表里,其中一些字段是变化的,比如开盘,最高,最低,最新,而市场和种类确实不变的,如果我们把每只code看成一个采集点,每条记录都是该采集点的数据,那么开盘,最新等字段可以看成采集量,种类和市场则是标签静态属性。下面看一些概念:
1采集点
采集点顾名思义采集数据的点,可以按照一定时间周期进行数据采集,并进行存储,一个采集点对应的就是一张表,该表数据只存储该采集点的数据,其中存储的就是采集量
2采集量
采集量就是采集点采集的数据,采集量对应的就是表中的字段
3标签
标签则是描述采集点的静态属性,在初始创建表时指出,后续可以进行增删改查
4表
类似mysql数据库表一样,也是由字段组成,存储一条条记录,每条记录都含有时间戳
5超级表
上述所示,比如把每一个code都看成一个采集点,那么一只code对应的就是一张表,该表所储存的就是code对应的每条快照数据,超级表就是同一种类型的表的集合,用来存储同一类型的表的,由采集量和标签组成。
6子表
子表是通过超级表的模板进行创建的,在创建时指出静态标签属性,其存储的数据就是超级表的采集量字段。
一张子表属于一个超级表,一个超级表包含多个子表
同一个超级表的子表具有相同的模式结构,也就是采集量和标签结构一致
无法通过修改子表的结构来更改超级表,对超级表的结构该表会影响多有的子表
子表其实也是普通表,同样可以进行sql操作,不过多了一些静态标签,二者无法相互转化
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点
大余2023-03-26
我只知道一旦遇到如此重大负面消息则尽快跑路保命要紧,股神反复强调股票第一要诀“保住本金”;第二要诀“保住本金”;第三要诀“保住本金”。