前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在树莓派上运行TDengine

如何在树莓派上运行TDengine

原创
作者头像
IT蜗壳-Tango
修改2024-01-03 13:09:48
1990
修改2024-01-03 13:09:48
举报
文章被收录于专栏:Pandas基础实践Pandas基础实践

什么是 TDengine

早在 TDengine 还在开发阶段,就知道了它是主要运用在物联网领域的数据库。它的创始人是一位充满热情的资深程序员--陶建辉老师。很早以前在极客时间的一个直播上认识了这位老师,他对编程以及创业的热情深深的感染了我,也打破了那个“程序员只能干到 35 岁”的谬论。TDengine,便是陶老师创办的涛思数据的一个产品。

去年在上海 QCon 大会的还遇见了他们团队的部分成员,感觉每个人都是非常有活力,有激情的。我相信从这样的团队中创造出来的项目也必将是一个充满活力的产品。

以上简单的介绍了一下,我是如何得知 TDengine 的,下面便和还不是很了解它的小伙伴们介绍一下这个非常棒的产品。

TDengine 是涛思数据专为物联网、车联网、工业互联网、IT 运维等设计和优化的大数据平台。除核心的快 10 倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源(开源协议,AGPL v3.0)。

  • 10 倍以上性能提升。定义了创新的数据存储结构,单核每秒就能处理至少 2 万次请求,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快了十倍以上。
  • 硬件或云服务成本降至 1/5。由于超强性能,计算资源不到通用大数据方案的 1/5;通过列式存储和先进的压缩算法,存储空间不到通用数据库的 1/10。
  • 全栈时序数据处理引擎。将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成 Kafka/Redis/HBase/Spark 等软件,大幅降低应用开发和维护成本。
  • 强大的分析功能。无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴上或多个设备上进行聚合。即席查询可通过 Shell/Python/R/Matlab 随时进行。
  • 与第三方工具无缝连接。不用一行代码,即可与 Telegraf, Grafana, EMQ X, Prometheus, Matlab, R 集成。后续还将支持 MQTT, OPC, Hadoop,Spark 等, BI 工具也将无缝连接。
  • 零运维成本、零学习成本。安装、集群一秒搞定,无需分库分表,实时备份。标准 SQL,支持 JDBC,RESTful,支持 Python/Java/C/C++/Go/Node.JS, 与 MySQL 相似,零学习成本。

上面的内容来源于官方 GitHub:TDengine/README-CN.md at develop · taosdata/TDengine · GitHub ,感兴趣的小伙伴可以去看一下。

为什么选择树莓派作为开发部署平台

本身 TDengine 就是一个主要面向物联网领域的,而树莓派也是在物联网领域中有一定地位的存在。因此想看看它们两个在一起会碰撞出什么样的火花。如果你对树莓派还不是很熟悉,没有关系,和我一起通过本篇文章看看从安装系统到完成部署是多么的简单。

1. 树莓派安装系统

  • 系统:Ubuntu Server 20.04.3 LTS ,64 位
  • 树莓派:Raspberry Pi 4B,64 位
  • SD 卡:金士顿 64GB
  • 其他必要的配件:鼠标,键盘,HDMI 数据线,读卡器等

准备好上述工具后,我们从 Ubuntu 的官网(Install Ubuntu on a Raspberry Pi | Ubuntu)下载树莓派使用的镜像文件。

利用 Raspberry Pi Imager 工具将刚刚下载好的镜像文件写入到 SD 卡中。

默认会清空 SD 卡的内容,大家注意备份好数据。

将写入好的 SD 卡插入到树莓派中。

启动后需要外接显示器,然后用默认的账号密码登录。

默认账号密码:ubuntu

最先需要设置的是 WiFi

代码语言:javascript
复制
sudo vim /etc/netplan/50-cloud-init.yaml

复制代码

然后将自己的 WiFi 信息添加进去,例如以下代码是我的配置,tango 是我的 WiFi 名。

代码语言:javascript
复制
network:    ethernets:        eth0:            dhcp4: true            optional: true    version: 2    wifis:         wlan0:             dhcp4: true             optional: true             access-points:                     "tango":                            password: "88888888"

复制代码

添加好之后输入:

代码语言:javascript
复制
sudo netplan apply

复制代码

再次输入 ip a,就可以看到你的树莓派的内网地址了,然后就可以在 windows 上进行 ssh 连接。

上图就是我的 windows 连接的效果。

完成以上操作后,我通常还行进行一些设置:

  • 系统时间
代码语言:javascript
复制
timedatectl set-timezone Asia/Shanghai

复制代码

2. 安装工具

代码语言:javascript
复制
sudo apt-get install -y gcc cmake build-essential git

复制代码

3. 获取源码

代码语言:javascript
复制
git clone https://github.com/taosdata/TDengine.git

复制代码

4. 构建 TDengine

代码语言:javascript
复制
cd TDenginemkdir debug && cd debugcmake .. && cmake --build .

复制代码

冲杯“Java”,稍等片刻。

在 X86-64、X86、arm64、arm32 和 mips64 平台上,TDengine 生成脚本可以自动检测机器架构。由于我们树莓派的 CPU 属于 arm64 的,所以只要让他默认生成就好。当然也可以手动修改,具体大家可以参考上文中提到的开源地址的内容。

看到上图则表示构建完成。

5. 开始安装

代码语言:javascript
复制
sudo make install

复制代码

看到后面的警告不要慌,我们这里没有使用它,所以无视就好了。

6. 启动服务

完成了上述安装,我们来尝试启动一下服务,看看是否可以正常运行。

代码语言:javascript
复制
sudo systemctl start taosd

复制代码

没有消息就是最好的消息。

我们尝试用 taos 命令来启动 TDengine Shell 看看效果:

代码语言:javascript
复制
taos

复制代码

看到上图。恭喜你完成了树莓派上的环境搭建。

7. 体验 TDengine

我们输入几条 SQL 语句来看看运行效果。

代码语言:javascript
复制
show databases;

复制代码

代码语言:javascript
复制
create database demo_tango;

复制代码

细心的小伙伴会发现我有一条失败了,因为数据库名字中间不可以有减号(-)。

代码语言:javascript
复制
use demo_tango;

复制代码

代码语言:javascript
复制
create table t (ts timestamp, speed int);show tables;

复制代码

代码语言:javascript
复制
insert into t values ('2022-01-11 20:51:00', 10);insert into t values ('2022-01-11 20:52:00', 30);

复制代码

代码语言:javascript
复制
select * from t;

复制代码

在 Python 项目中使用

首先确认一下你的树莓派中有没有 Python,我们安装的这个版本里面是默认安装 Python3.8 的,因此我们不需要额外安装 Python 了。

为了和其他环境隔离,我们创建一个用于测试的虚拟环境,并安装 taospy 库。

在开始前需要安装一个 python 工具库"python3.8-venv"

代码语言:javascript
复制
mkdir taospy_democd taospy_demo/sudo apt install python3.8-venv

复制代码

创建虚拟环境,并安装:

代码语言:javascript
复制
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”会报如下错误。

验证是否安装成功

代码语言:javascript
复制
python -c "import taos"

复制代码

没有看到任何报错信息,那么恭喜你 python 的库也安装好了。

简单写两行代码验证一下效果。

代码语言:javascript
复制
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 提交自己的想法,同时也欢迎大家将文章转发给有同样需求的朋友。

----

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 TDengine
  • 为什么选择树莓派作为开发部署平台
    • 1. 树莓派安装系统
      • 2. 安装工具
        • 3. 获取源码
          • 4. 构建 TDengine
            • 5. 开始安装
              • 6. 启动服务
                • 7. 体验 TDengine
                • 在 Python 项目中使用
                • 总结
                相关产品与服务
                云数据库 MySQL
                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档