TDTips
TDTips
TDengine engine 分服务端,客户端
服务端
服务端安装的时候没法设置用户名密码。靠?
客户端
客户端两种连接方式
两 种连接方 式
用 rest 的方式效果好一点,
用 res t 的方式需要服务端启动一个适配 器,adapter,wind ow 是 下点击才能运行,L inux 下 可能没有这个问题,因为 Linux 下都是服务会自动启动。
rest 下可能不 支持参数绑定,Java 中,除非用他专门的接口,如果用 jdbc 接口,会很慢,如果实际要用它自己写的接口,那就得重新写元数据加载器了(我感觉很有可能要这样)
tdengine 的图形 化客户端
db viewer,我用 DataGrip 应该也没事儿
具体操作
建库
create dbname
建表
建表的第一个字段必须是时间戳,名字可以随便起。
默认生成唯一键。
如何判断两个时间属于用一个时间,判断粒度默认就是毫秒,也就是说两个时间,一直到毫秒都是一样,即使毫秒后面不一样,也算一条数据
数据算不算重复数据,只看只看时间字段,不看其他字段
因此,只能一个坦克一张表
为了能够对所有的坦克进行查询,我们需要超级表
超级表概念
类似于视图,只能查。
所以还是得一个坦克一张表,然后绑定到超级表
类似于分区。
生产上都得用超级表了。
需要在客户端,根据有多少个坦克自动创建子表。
在插入数据的时候,没有数据对应的子表就自动去建表,这个就得通过自定义加载器来实现了。
传时间
tdengine 不提供更新。但是你可以插入重复的时间来覆盖,默认不建议插入时间,用服务器的时间
但是业务上最好是我们传时间,这样记录的就是数据产生的时间,因为如果用服务器时间,数据的处理和传输会产生时间差
春哥做的适配不支持超级表。
并发
用通用的顺便装载结点插入时序数据库的时候
改大并发数能快点
因为通用的数据 装载节点用的是通 用的 jdbc,通用的 SQL,不是按照官方文档里面写的那种方式,可能是因为这个,所以才慢
问题
在多线程读取的情况下,tde ngineCPU 会飙高,但是过了一会儿又恢复了正常,不知道为什么
时序数据库不适合多线程同时插入,而是适合单线程的批量插入。TODO
其他
t dengine 删除数字开头的主题的时候,需要加上`,而不是引号