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

本文探讨了在制造业数字原生OT数仓建设中使用TDengine进行IoT数据存储的方法。对比多超级表与单超级表模式,通过实验验证了在新版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)

默认参数安装

3、多超级表模式测试

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

 存储占用情况

 

 4、单超级表模式验证

 首先清空Taos

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

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

 

  5、结论 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值