物联网数据采集,需写入大量数据,这时就用到时序数据库来存储和快速读取
我个人使用感觉国产的开源项目TDengine,比InfluxDB操作方便很多,容易上手,支持使用SqlSugar进行数据操作,跟操作mysql数据库一样的体验
跟mysql最有特别之处,就是TDengine有个超级表=表结构模板 的概念,可以基于这个超级表的结构,建N个数量的子表,查询的时候,可以查单个子表,也可以查超级表所有子表的数据集合
超级表概念如:
建超级表A
基于超级表A的结构 建子表 : A1、A2、A3、N
然后查询的时候,可以单查A1表数据,也可以通过超级表A查所有A1、A2...集合的数据出来
用在传感器数据采集日志,一个设备一个表,最适合不过
TDengine官网技术文档 :https://docs.taosdata.com/connector/csharp/
一、window下安装TDengine
https://docs.taosdata.com/releases/tdengine/
找到同时有server和client 的版本
TDengine-server-xxx-Windows 数据库主安装文件
TDengine-client-xxx-Windows 数据库连接工具
二、服务端安装:
1、双击TDengine-server-3.0.7.1-Windows-x64.exe 安装,一直回车即可
2、配置数据库变量
打开C:\TDengine\cfg下的taos.cfg
3、在E盘创建文件夹
创建TDengine文件夹,在TDengine文件夹下创建log文件夹和data文件夹
4、启动数据库服务
进入C:\TDengine,双击taosd.exe,等待启动。
5、测试下
双击桌面的Taos Shell,输入 taos 运行
查看用户
taos> show users;
服务端安装完毕
6、开放服务器端口6030
三、客户端window为例
1、安装客户端安装包
TDengine-client-xxx-Windows 数据库连接工具
安装好后,打开目录C:\TDengine\cfg
修改配置文件taos.cfg
firstEp 值修改为服务端的IP和端口
3、测试连接
打开taos.exe,看到这样为连接成功
创建用户
create user admin pass '123456';
查看用户
show users;
创建数据库
CREATE DATABASE iot_devicedatacenter;
四、C#程序调用
NET 操作 TDengine官方教程:
代码例子:
using TDengineDriver;
using SqlSugar;
using Newtonsoft.Json;
public void SqlSugarTest()
{
var db = new SqlSugarClient(new ConnectionConfig()
{
DbType =SqlSugar.DbType.TDengine,
ConnectionString = "Host=localhost(服务器IP);Port=6030;Username=root;Password=taosdata;Database=power",
IsAutoCloseConnection = true
});
//建超级表
db.Ado.ExecuteCommand("CREATE STABLE IF NOT EXISTS stable_device_valuelog (ts TIMESTAMP, dkey NCHAR(20), dvalue NCHAR(20)) TAGS (did INT,cid INT)");
//建数据表并写入数据
db.Ado.ExecuteCommand(@" INSERT INTO tb_device_valuelog01 USING stable_device_valuelog TAGS(1, 2) VALUES(NOW,'status','no');");
//读数据
DataTable dt = db.Ado.GetDataTable("select * from tb_device_valuelog01 ");
}