我与tdengine的故事

weixin_45123535 weixin_45123535     2023-03-03     777

关键词:

作者:蒋京辉

故事从这里开始

一、故事的开始

其实本人实际从事java开发也只有三年左右的时间,在这三年的工作时间里,应该说本人完全没有接触过时序型数据库,仅仅是听说过而已,也从来也没有去了解过。但从目前我对时序型的了解,之前我所涉及的业务场景和行业也是用不到时序型数据库,在今年5月份的时候换了一个行业,接触公司第一个项目,才开始认识了时序型数据库——influxdb,我们这边最开始项目选型的数据库是这个,本人也是后续才参与这个项目的,后面我想着去了解为啥要选用这个数据库的原因时,参与项目的同事他们给我的回复是:他们之前也是没有接触过这个时序型的数据库,这个其实也是其他同事之前涉及的业务用到了这个,所以就用了influxdb,算是别人的经验推荐,至于更深层次的选型原因也没有了解到。

紧接着,又来了一个项目,这个项目算是我全程参与的,项目类型跟之前的这个是类似的,但是技术选型发生了一些变化,最大的变化就是在选型阶段我们对时序型数据库做了更换,这个更换的建议也是项目经理提出来的,说我们这次项目用TDengine来吧,当然了这也不是说最终一定会用,说到这里就给我布置了一个任务,让我去调研了解一下看看是否能贴合我们的业务场景和使用需求。在接到这个任务之后,自己心里还是有一些紧张和纠结的,感觉压力大,因为我最终调研的结果会直接影响是否选用此数据库,选用的好坏,也决定了后续代码编程是否会遇到一些不可预知的问题,故事从这里就拉开了序幕,接到任务之后的一段时间里,每天基本上都会与涛思或多或少的打着交道。

二、了解涛思

就个人习惯而言,想要去了解一个全新的东西,第一件事就是去进入他的官网,在官网中找一下官方文档,按照官网文档的指引进行学习和了解,并进行使用。

说到一开始,当然是安装和启动涛思了,但是在最开始,自己就遇到了一个大麻烦,真是记忆犹新,印象深刻(如下图),这个问题我甚至在写笔记的时候都记录了下来,给自己留个底,有个印象。

事情的经过是这样的,自己也是按照文档一步步操作,下载涛思的安装包,当时也是在linux环境下进行安装测试的,下载好了就进行解压安装了,然后就启动涛思,输入taos命令,一切都是那么的顺利,但是在这之后,现在也想不起为啥我会重新启动,但是重新启动,就会提示启动频繁无法启动,这个问题甚至是后面我仅仅是重启了一次,都开始有这样的提示了,重点是提示了之后,这个就一直没法用了,自己当时实在是不知道该如何解决,就是官方找了哪里可以咨询问题的,就找了相关的联系方式,见下图(按顺序说明:第一个是当时遇到启动报的提示,第二个是咨询技术人员的对话,第三个是自己记录问题当时的解决办法),自己也是把自己遇到的问题以及自己有疑问的点告知了技术人员,看看技术人员有没有办法,但是实事求是的说这个问题当时并没有很好的解决,也不知道是触发了什么样的策略,导致我重新启动涛思会有这样的提示,所以当时自己对自己狠了一点,也是实在没有办法,直接重置了我自己办公电脑的虚拟机,重新安装了一下涛思,然后安装启动了之后,让虚拟机拍了个快照,防止我后面又遇到这个问题,又需要重置,花费不少的时间。

上述是当时在启动涛思时遇到的问题,第二个就是在使用涛思过程中,想通过可视化工具对数据库进行相应的操作,自己本身也是通过IDEA工具进行编程的,官网文档也提供如何利用IDEA进行可视化操作,不过我按照要求操作,很遗憾的是通过IDEA有报错信息,无法进行可视化操作这个问题怎么说呢,起码不会影响我对数据库的操作,只不过如果可视化弄好了,是可以更高效的去操作数据库,给开发人员带来了一定的便利,当然了遇到了这个问题之后,自己也是通过github平台进行了咨询,后面也是通过邮件沟通的方式对这个问题进行咨询与操作(见下图),经过一系列的沟通,最终这个问题还是比较好的解决了,第一个就是官方这边人员给了我他们的一个可视化工具,现在我们开发也是经常使用这个工具,当然了当时发的是1。0版本,也不知道现在可视化工具有没有更新,哈哈,如果更新了还请官方给我一下最新版的可视化工具,起码能更加便捷的操作数据库了,其次就是我这边后面换了一个版本的涛思(2.1.0.0),通过IDEA是没有报错了,也可以通过IDEA进行可视化操作,但是两者比较的话,还是感觉官方提供的那个工具比较好。

后面就是对涛思的一些sql语法的了解,这块遇到的问题倒不是特别的大,部分的sql语法跟我这边经常使用的mysql类似,主要是超级表和普通表的概念,需要我这边仔细的看看,最终这块的概念非常好的运用在了我们这边工业的业务场景。当然了,在了解涛思的过程中,自己也不是每一个sql我都去尝试,sql的部分都是在后面我们根据实际业务场景编写的,遇到问题的话也是及时去官网看看语法,实在不知道哪里出问题的再去找相应的技术人员去问一问。

第四个方面就是我这边本身的java和涛思相结合去使用,因为最终我们是要通过java编程和涛思数据库进行交互的,当然涛思也很完美的解决了这个问题,官网也是有springboot+mybatis结合涛思数据库和JDBC实现的demo,当然了我这边参与的项目也是通过此方式与涛思建立连接和操作的。

第五个就是性能方面的考量,这边官网也是给了我们一个创建超多数据的sql,让我们按照官网给的sql体验一下查询速度,当然了体验确实是很完美的,速度很快,其次在这么多数据之下占用的磁盘空间并不是非常的大,有利于存储更多的数据,这块的体验后面我说项目的时候再说一些实际案例。

三、 我选你

做了这么多了解之后,最终就决定是你(涛思)啦,当然是跟influxdb做一个对比之后,综合考量下来,选择了涛思!

1.超级表普通表的概念,非常的契合此次项目的业务场景,大致说一下场景,就是之前项目只有一个站点一个单元对应多个测点,现在是多站点多单元下面对面多个测点,利用超级表普通表可以做到超级表对应某个站点某个单元,下面跟着n个普通表,普通表就是此站点此单元下对应的测点,让我们业务上创建表非常的容易。

2.可以跟java很好的结合,通过JDBC连接,跟之前的操作其他类型的数据库类似,不需要学习太多就可以上手,让没有很深去了解涛思的人上手比较快,学习成本降低。

3.搭建集群的成本,首先influxdb搭建集群不是开源的,是需要收费的,对于后续实际可能用到集群带来了极大的不便,然而我们涛思搭建集群是开源的,免费的,可以降低使用集群的成本,从大的说,减少项目上的使用成本。

4.从更大的角度说,influxdb是国外的,TDengine是国内的,在整个国际开放背景下,在中国日益强大,经常可能会遇到要被国外进行技术封锁的情境,这种时候我们选用国外的数据库,就会让我们非常的被动,但是选择国内的就不一样,国人开发和维护的,遇到问题也可以实际的去通过微信/邮箱等工具去交流,不会出现刚才所述的情况,让自己处于过于被动的局面。

5.性能表现方便,从之前项目和现在项目对比来看,部分使用能感受到明显差异,此处表现放在后面的项目上来说,整体上性能是良好的。

四、 项目使用的感受

1.我们这边有一个历史数据的查看的功能然后页面展示一个历史曲线,之前使用influxdb的时候,如果你的时间段和时间间隔选择很庞大或者间隔非常细腻的时候,查询数据会非常的缓慢,其次更直接的表象就是会直接造成页面的卡死,无响应,需要重新打开相应的浏览器,但是用了涛思之后,目前使用过程暂时没有发生过这样的现象,并且查询所需要花费的时间非常非常的短,很好保证了接口的响应速度。

2.很好的与mybatis相结合,开发结合起来非常方便,我们这边也是写了非常多的工具类的方法方便去通过涛思创建表啊,获取数据等等,通过超级表和普通表让我们在创建表这块有了非常简单的设计,也能让测点之间更好的做出区分。

3.我们这边的业务场景,会涉及到对测点数据,每秒的数据新增和插入,应该说只要通讯在,这边数据是每秒都会很多条数据的新增的,当然了目前的表象看性能是OK的,但是呢毕竟项目没有在实际的工作站运行,后续这块还要看一看是否能撑得住这样的情况。

五、 故事的最后

我们这边项目已经接近尾声,项目也是会在后面的实际工地进行部署使用,实际的效果需要实践去证明.未来可能还有许多事情要做,比如是否需要搭建集群,因为目前的环境是非集群模式,后面是否要搭建集群要看后面实际的数据量等来综合考量一下.总的来说,因为选择了涛思,让我们目前项目测试很平稳的运行,在使用涛思上没有遇到特别大的瓶颈(也有可能后面会遇到),我相信在后面的使用中,能对使用上会更加深入,了解也会更加深刻,涛思与我们同在,欧耶!

六、 感谢

整个过程是酸甜苦辣的,在这里非常感谢"罗格涛思"和"小T"的技术帮助和耐心解答,也是让我在此次过程中,遇到问题不慌不忙,能够较好地去解决问题,衷心的感谢!

聊聊我与流式计算的故事

聊聊流式计算吧,那一段经历于我而言很精彩,很有趣,想把这段经历分享给大家。1背景介绍2014年,我在艺龙旅行网促销团队负责红包系统。彼时,促销大战如火如荼,优惠券计算服务也成为艺龙促销业务中最重要的服务之一。... 查看详情

我与软件工程的故事

第一部分:结缘软件工程 你为什么选择软件工程专业?你认为你的条件如何?(必答)软工是你喜欢的领域吗?是你擅长的领域吗?你热爱这一专业吗?你对软工的热爱是怎样的? 在选择专业的时候,第一目标是老师。... 查看详情

我与软件工程的故事

软件工程,直到报考之前我才第一次了解到这个专业的名字,而且就在那么一瞬间,就决定下来要学习这个专业,甚至没有了解到究竟什么是软件工程,学习的内容又是什么。可能是“软件”这个词汇,在那么一瞬间吸引到了我... 查看详情

我与时间管理的故事

这是上家公司,在团队做的分享,还是挺有意思的,特此分享。初识树状文档记得刚来团队那会,每天早上有个站会,站会的任务就是把今天要做的事情写到树状文档里面,刚开始这样做我是不太认同的,因为在以前的公司并没有这... 查看详情

我与软工的故事

结缘软件工程Q1:你为什么选择软件工程专业?你认为你的条件如何?(必答)软工是你喜欢的领域吗?是你擅长的领域吗?你热爱这一专业吗?你对软工的热爱是怎样的?  高中毕业前软件工程于我是陌生得不能再陌生的词... 查看详情

我与rt-thread的故事挚爱与热爱

...们彼此共同向前走的见证者。*本文源自开发者大会之【我与RT-Thread的故事】有奖征文活动,你有故 查看详情

#51cto学院四周年#我与学院的故事

写在前面的话:650)this.width=650;"src="https://img.baidu.com/hi/jx2/j_0002.gif"alt="j_0002.gif"/>1、到现在都没有太搞明白51CTO和51CTO学院之间的关系,我认为的是先有的51CTO,这是一个类似技术论坛的东东,然后才出的51CTO学院,这是一个汇聚全... 查看详情

51cto学院四周年-我与学院的故事

    对于51CTO这个平台我是在两年前知道的,由于我从事的是网络安全所以对知识功底的扎实程度也是有着很高的要求,而就在我对于学习资料的匮乏而一筹莫展的时候我发现了51CTO这个学习平台,里面丰富的课程... 查看详情

我与刘强东的故事:他的1000亿和我的5000万

...f0c;二是这个标题也不完全是标题党。本来取另一名:我与5000万还有多远。去年在一个创业活动上我宣布了4年后的梦想:我创立的公司,估值5000万元(RMB)。上个月,超级表格(一款基于云端的数据协作软... 查看详情

从旁观者到committer,我与brpc的故事

Apache是知名的开源软件基金会,旗下管理着众多流行的开源项目。如果你有给开源项目贡献过代码,那么你就可以称得上是一名开源项目的contributor。而Apachecommitter则更进一步,这个是Apache基金会官方认可的头衔,... 查看详情

从旁观者到committer,我与brpc的故事

Apache是知名的开源软件基金会,旗下管理着众多流行的开源项目。如果你有给开源项目贡献过代码,那么你就可以称得上是一名开源项目的contributor。而Apachecommitter则更进一步,这个是Apache基金会官方认可的头衔,... 查看详情

从旁观者到committer,我与brpc的故事

Apache是知名的开源软件基金会,旗下管理着众多流行的开源项目。如果你有给开源项目贡献过代码,那么你就可以称得上是一名开源项目的contributor。而Apachecommitter则更进一步,这个是Apache基金会官方认可的头衔,... 查看详情

#51cto学院四周年#我与51cto不得不说多的故事

   时间飞逝,很快51CTO即将迎来四周年,首先忠心的祝愿51CTO能越办越好!!为广大的IT从业者带来更多的福礼。   与51cto结缘于那个阳光明媚的下午,在自己网上寻找各种视频资料,已经相关的信息的时候... 查看详情

我与思否的故事,转眼就过了三年。|思否9周年

封面图源:Pixabay.com前言回顾过去的3年里,一次又一次的成长变更,让我觉得我应该写的什么来回忆一下“这段过去”,至此借思否9周年之际,来回忆一下在思否的三年。从何时开始?当年,从学校走出,离开学校之后的那一... 查看详情

挨踢部落故事汇(17):我与永恒之蓝战斗的两天两夜

redhat9i是个80后网络工程师,跟大多数IT男一样,喜欢倒腾,他的兴趣爱好非常广泛,无线电通信、应急救援、吹笛子、中医理疗、摄影等等。650)this.width=650;"src="http://s1.51cto.com/wyfs02/M01/97/71/wKiom1kudbzS-pW1AADF0Ka01vw681.jpg-wh_651x-s_7889706... 查看详情

openstack黄金十年:我与openstack的故事

导读:从2010年到2020年,OpenStack项目整整走过了十个春夏秋冬。不管是OpenStack基金会,还是积极参与OpenStack社区的厂商、企业乃至开发者,想必都有肺腑之言想对OpenStack倾诉。翻开记忆中OpenStack项目十年的故事,会不会别有一番... 查看详情

关于想写我与java的故事,满脑子却都是与javacv纠缠不清的那段日子

前言又是一年初夏,深夜宛如昨日。想象一下博主此刻激动的心,颤抖的腿,敲着手里熟悉的键盘,哇~,这该死又动听节奏,直让人欲罢不能。键盘上长期敲打出来的手指印,见证着博主的每一次的成... 查看详情

关于想写我与java的故事,满脑子却都是与javacv纠缠不清的那段日子

前言又是一年初夏,深夜宛如昨日。想象一下博主此刻激动的心,颤抖的腿,敲着手里熟悉的键盘,哇~,这该死又动听节奏,直让人欲罢不能。键盘上长期敲打出来的手指印,见证着博主的每一次的成... 查看详情