TDengine不同数据模型下的存储对比验证

    1、概念与数据模型      

在制造业数字原生的OT数仓建设的补充章节,提到一个多值的模型,即把IoT数据归集为int,float,bool,string,由4个超级表分开存改为1个超级表统一存。

多超表模式:

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE IF NOT EXISTS ot_int(ts timestamp, wts timestamp,v int, counter int,vquality int) TAGS (item binary(128));
CREATE TABLE IF NOT EXISTS ot_float(ts timestamp, wts timestamp,v float, counter int,vquality int) TAGS (item binary(128));
CREATE TABLE IF NOT EXISTS ot_string(ts timestamp, wts timestamp,v binary(128), counter int,vquality int) TAGS (item binary(128));
CREATE TABLE IF NOT EXISTS ot_bool(ts timestamp, wts timestamp,v bool, counter int,vquality int) TAGS  (item binary(128));

单超级表模式:

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE IF NOT EXISTS ot(ts timestamp, wts timestamp, vint int, vfloat float,vbool bool,vstring binary(128),counter int,vquality int) TAGS (item binary(128),vtype  binary(16));

 2、测试环境

这里给出基于C#的测试的过程:

测试环境:

CentOS Linux release 8.4.2105

TDengine-server-2.4.0.14-Linux-x64

Visual Studio 2022

dotnet-sdk-5.0(CentOS Linux 8 不支持 .NET 6,安装指令:sudo dnf install dotnet-sdk-5.0)

默认参数安装

TDengine不同数据模型下的存储对比验证_第1张图片

3、多超级表模式测试

TDengine不同数据模型下的存储对比验证_第2张图片

写入160千万数据(16亿),完成后验证写入情况。

TDengine不同数据模型下的存储对比验证_第3张图片

TDengine不同数据模型下的存储对比验证_第4张图片

 存储占用情况

 

 4、单超级表模式验证

 首先清空Taos

systemctl stop taosd
rm -rf /var/log/taos/*
rm -rf /var/lib/taos/*
systemctl start taosd

创建超级表,写入数据并验证。

 TDengine不同数据模型下的存储对比验证_第5张图片

  5、结论 

   通过结果可以看到,在新版的TDengine下,数据字段允许NULL(较早的版本不支持),多几个空的值字段对存储影响可以忽略不计。

代码托管地址:GitHub - PascalMing/PascalMingTaosStorageTest: TDengine存储验证

你可能感兴趣的:(IoT,物联网,iot,时序数据库)