简介

作者:最甜甜的小草莓

本文面向什么样的读者

TDengine是一个新兴的时序型数据库,可以参见GitHub项目。学习一个开源项目,最直接的方式就是先成为一个用户,先把项目运行一下试试看。

数据库现在的行业趋势好的让人羡慕,涛思数据完成4,700万美元B轮融资 经纬中国领投。要是去年毕业还想投个简历呢(可惜不小心读了个研究生)。受此影响,现在开始看DDIA这本书了,不知道研究生毕业是不是来得及

简单粗暴tensorflow是我个人很喜欢的一个教程。很多代码,可以暂时先不详细了解原理,先 run 一下或许有的问题就不存在了。本文面向:

  • 没有数据库经验,想要简单体验一下TDengine的读者
  • 想要快速在Windows上运行一下TDengine
  • 没有参与过开源,想要成为 TDengine 的 contributor (直接最后一章)

TDengine软件简介


TDengine软件分为服务器、客户端和报警模块三部分,目前2.0版服务器仅能在Linux系统上安装和运行,后续会支持Windows、Mac OS等系统。客户端可以在Windows或Linux上安装和运行。任何OS的应用也可以选择RESTful接口连接服务器taosd。CPU支持X64/ARM64/MIPS64/Alpha64,后续会支持ARM32、RISC-V等CPU架构。 您可根据需求选择通过源码或者安装包来安装。


阅读项目相关文档,在Windows系统,服务端是不能支持直接安装的,因此我们使用 Docker 来在虚拟机中安装服务端;

之后,我们在直接安装客户端并连接虚拟机中Docker虚拟机

最后,分享一个我个人的经历,如何为 TDengine 在Github上的开源项目贡献代码

服务端安装(Docker)

下载并安装Docker

关于 Docker 安装可以参考这篇文章,里面有更为详细的教程。

首先在 Docker 官网下载

点击小鲸鱼图标,在弹出菜单里选择“Preferences”,点击Docker Engine,在右侧json配置文件处添加registry-mirrors配置项,添加时注意标点符号是英文以及不要输多或输少了,(输错了底部会有红色报错提示):

"registry-mirrors": [
  "https://mirror.ccs.tencentyun.com/"
],

或者你可以自行百度清华的镜像源

安装并配置TDengine

接下来的部分参考了官方这篇文档

先运行

docker run -d -p 6030-6041:6030-6041 -p 6030-6041:6030-6041/udp tdengine/tdengine

如果你的docker没有下载TDengine,会下载后安装

之后配置TDengine

docker run -d --name tdengine --hostname="tdengine-server" -v ~/work/taos/log:/var/log/taos -v ~/work/taos/data:/var/lib/taos  -p 6030-6041:6030-6041 -p 6030-6041:6030-6041/udp tdengine/tdengine

运行TDengine

输入 docker ps查看当前运行的的docker列表。上一步的配置名称可能不生效,所以请记下你的 CONTAINER ID

之后输入 docker exec -it <上面的CONTAINER ID> /bin/bash 就可以进入容器开发了

在容器里输入 taos就可以执行命令了

输入下面这段代码尝试数据库的使用

create database db;
use db;
create table t (ts timestamp, a int);
insert into t values ('2019-07-15 00:00:00', 1);
insert into t values ('2019-07-15 01:00:00', 2);
select * from t;
drop database db;

至此,通过docker的服务端安装就完成了。

客户端安装(Windows)

安装Windows版本的客户端

直接去官网下载并安装即可

修改本地Host

如果你发现先命令行中存在有一些数据库操作可以,但是另一些数据库操作不可以。类似下图: 在这里插入图片描述

参考了这篇文章 原理与FQDN有关,详细了解这里,下面我们直接给出解决办法。

在服务端输入 hostname -f ,得到下面的结果并复制得到的结果 在这里插入图片描述

由于我们在本机运行,所以直接用 127.0.0.1 就可以了,修改 C:\Windows\System32\drivers\etc 这个目录下面的 host.ics 文件,在最下面添加

127.0.0.1 <前面得到的hostname>

这样服务端所有数据库命令就都可以正常执行了

在客户端中操作数据库

现在,在taos shell中,就可以正常的执行数据库命令了 还是尝试前面的代码来测试数据库

create database db;
use db;
create table t (ts timestamp, a int);
insert into t values ('2019-07-15 00:00:00', 1);
insert into t values ('2019-07-15 01:00:00', 2);
select * from t;
drop database db;

从 good first issue 开始成为TDengine的Contributor

首先,没有接触过开源的同学请不要对这个部分有畏惧心理,代码的难度大概只有leetcode上“简单”的水平。在北邮校园内有幸听过 TDengine 创始人和boss的一场讲座,他非常鼓励同学们参与开源项目。而 TDengine 里面的 good first issue 难度也并不高,非常适合大家尝试一下。

首先在GitHub上的打开 good first issue 的 issue 页面

在这里插入图片描述

选择一个你觉得简单的 issue,需要一定的C语言基础。不过 good first issue 都比较友好。每一条 Issue 都不一样,具体如何解决可以参考官方微信公众号上的这篇文章

具体在GitHub提交修改后的代码,以下面这个issue为例: 在这里插入图片描述

进入需要修改文件,点击edit 在这里插入图片描述

修改代码后,点击 在这里插入图片描述 在GitHub上完成一个 good first issue 不算很难,不过已经是一次很好的开源实践了。真的很轻松,强烈建议每个朋友亲自动手试一试~

后记

最近实习和学校实在事情太多了,早就想写这么一篇结果一拖再拖,十分羞愧。 我也只是一个数据库刚刚入门的小菜鸟,两端长的实习分别是前端和NLP相关的,后端知识也是走一步学一步。说实话,这个过程其实也很快乐啊。

期间被催了好多次,还好不拿工资也就无所谓了233

还记得一年前最开始实习的一家小厂,和那里的老板关系很好,就是中科大出来的。跟他闲聊的过程中,感觉科大好多企业家,听他讲在中科大创业群里的见闻。加上现在实习的科大讯飞,今天TDengine的创始人陶总,真的自己到处都在接触中科大的企业家。有时候不禁感慨,北邮人在互联网明明贡献了最多最优秀的程序员,企业家却并不多。吾辈仍需要自强不息啊!