早在 TDengine 还在开发阶段,就知道了它是主要运用在物联网领域的数据库。它的创始人是一位充满热情的资深程序员--陶建辉老师。很早以前在极客时间的一个直播上认识了这位老师,他对编程以及创业的热情深深的感染了我,也打破了那个“程序员只能干到 35 岁”的谬论。TDengine,便是陶老师创办的涛思数据的一个产品。
去年在上海 QCon 大会的还遇见了他们团队的部分成员,感觉每个人都是非常有活力,有激情的。我相信从这样的团队中创造出来的项目也必将是一个充满活力的产品。
以上简单的介绍了一下,我是如何得知 TDengine 的,下面便和还不是很了解它的小伙伴们介绍一下这个非常棒的产品。
TDengine 是涛思数据专为物联网、车联网、工业互联网、IT 运维等设计和优化的大数据平台。除核心的快 10 倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源(开源协议,AGPL v3.0)。
上面的内容来源于官方 GitHub:TDengine/README-CN.md at develop · taosdata/TDengine · GitHub ,感兴趣的小伙伴可以去看一下。
本身 TDengine 就是一个主要面向物联网领域的,而树莓派也是在物联网领域中有一定地位的存在。因此想看看它们两个在一起会碰撞出什么样的火花。如果你对树莓派还不是很熟悉,没有关系,和我一起通过本篇文章看看从安装系统到完成部署是多么的简单。
准备好上述工具后,我们从 Ubuntu 的官网(Install Ubuntu on a Raspberry Pi | Ubuntu)下载树莓派使用的镜像文件。
利用 Raspberry Pi Imager 工具将刚刚下载好的镜像文件写入到 SD 卡中。
默认会清空 SD 卡的内容,大家注意备份好数据。
将写入好的 SD 卡插入到树莓派中。
启动后需要外接显示器,然后用默认的账号密码登录。
默认账号密码:ubuntu
最先需要设置的是 WiFi
sudo vim /etc/netplan/50-cloud-init.yaml
复制代码
然后将自己的 WiFi 信息添加进去,例如以下代码是我的配置,tango 是我的 WiFi 名。
network: ethernets: eth0: dhcp4: true optional: true version: 2 wifis: wlan0: dhcp4: true optional: true access-points: "tango": password: "88888888"
复制代码
添加好之后输入:
sudo netplan apply
复制代码
再次输入 ip a,就可以看到你的树莓派的内网地址了,然后就可以在 windows 上进行 ssh 连接。
上图就是我的 windows 连接的效果。
完成以上操作后,我通常还行进行一些设置:
timedatectl set-timezone Asia/Shanghai
复制代码
sudo apt-get install -y gcc cmake build-essential git
复制代码
git clone https://github.com/taosdata/TDengine.git
复制代码
cd TDenginemkdir debug && cd debugcmake .. && cmake --build .
复制代码
冲杯“Java”,稍等片刻。
在 X86-64、X86、arm64、arm32 和 mips64 平台上,TDengine 生成脚本可以自动检测机器架构。由于我们树莓派的 CPU 属于 arm64 的,所以只要让他默认生成就好。当然也可以手动修改,具体大家可以参考上文中提到的开源地址的内容。
看到上图则表示构建完成。
sudo make install
复制代码
看到后面的警告不要慌,我们这里没有使用它,所以无视就好了。
完成了上述安装,我们来尝试启动一下服务,看看是否可以正常运行。
sudo systemctl start taosd
复制代码
没有消息就是最好的消息。
我们尝试用 taos 命令来启动 TDengine Shell 看看效果:
taos
复制代码
看到上图。恭喜你完成了树莓派上的环境搭建。
我们输入几条 SQL 语句来看看运行效果。
show databases;
复制代码
create database demo_tango;
复制代码
细心的小伙伴会发现我有一条失败了,因为数据库名字中间不可以有减号(-)。
use demo_tango;
复制代码
create table t (ts timestamp, speed int);show tables;
复制代码
insert into t values ('2022-01-11 20:51:00', 10);insert into t values ('2022-01-11 20:52:00', 30);
复制代码
select * from t;
复制代码
首先确认一下你的树莓派中有没有 Python,我们安装的这个版本里面是默认安装 Python3.8 的,因此我们不需要额外安装 Python 了。
为了和其他环境隔离,我们创建一个用于测试的虚拟环境,并安装 taospy 库。
在开始前需要安装一个 python 工具库"python3.8-venv"
mkdir taospy_democd taospy_demo/sudo apt install python3.8-venv
复制代码
创建虚拟环境,并安装:
python3 -m venv taos_envsource taos_env/bin/activatepython -m pip install taospy --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org
复制代码
我这边直接“pip install taospy”会报如下错误。
验证是否安装成功
python -c "import taos"
复制代码
没有看到任何报错信息,那么恭喜你 python 的库也安装好了。
简单写两行代码验证一下效果。
import taosconn = taos.connect()cursor = conn.cursor()cursor.execute("show databases")results = cursor.fetchall()for row in results: print(row)
复制代码
OK,一切都很完美,具体的其他操作大家可以参考官方文档:文档 | 涛思数据 (taosdata.com)
整体安装还是非常顺利的,如果你之前使用过 MySQL 这类的数据库,相信你几乎可以零成本转移到这个数据库上面来,至于为何选择这个数据库,这里就不在赘述了。毕竟在物联网领域我认为 TDengine 绝对可以算是顶流的产品了。
我们今天只是在树莓派上搭建好了环境,之后我们可以继续做一些有意思的事情,比如将它和 Django,Flask 等框架结合起来,做一个物联网的管理平台也是未尝不可的。
如果你对这个也感兴趣,欢迎大家来该项目的 Github 提交自己的想法,同时也欢迎大家将文章转发给有同样需求的朋友。
----
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。