返回

云上TDengine3.0在物联网时序场景下的探索与实践

闲谈

服务器评估与现状

2023年初, 我们拟在云上进行TDengine3.0的测试评估, 目的是在现有的软件服务中寻找一款合适的替换现有数据库的时序数据库, 作为日志、指标等数据的存储工具。

在评估阶段, 我们主要考虑了以下几点:

  • 性能与容量: 时序数据库需要能够支持大规模的数据写入和查询, 且具有较高的查询性能。
  • 高可用性: 时序数据库需要提供高可用性, 以保证数据的可靠性和可访问性。
  • 易用性: 时序数据库需要易于安装、配置和使用, 以减少运维成本。

综合考虑以上几点, 我们最终选择了TDengine3.0作为评估对象。

详细测评项目

数据写入性能测试

TDengine3.0的写入性能测试是在阿里云ECS服务器上进行的, 服务器配置为8核16GB内存, 使用阿里云盘作为存储介质。 测试使用了一张表, 表中包含10个字段, 其中包括时间戳、设备ID、传感器类型、传感器值等。

测试过程如下:

  1. 向表中插入1000万条数据, 每条数据的大小为1KB。
  2. 测量插入数据的时间。

测试结果如下:

  • TDengine3.0的平均写入速度为10万条/秒。
  • TDengine3.0的最大写入速度为12万条/秒。

数据查询性能测试

TDengine3.0的查询性能测试是在阿里云ECS服务器上进行的, 服务器配置与写入性能测试相同。 测试使用了一张表, 表中包含10个字段, 其中包括时间戳、设备ID、传感器类型、传感器值等。

测试过程如下:

  1. 向表中插入1000万条数据, 每条数据的大小为1KB。
  2. 使用TDengine3.0的查询功能查询表中的数据。
  3. 测量查询数据的时间。

测试结果如下:

  • TDengine3.0的平均查询速度为10万条/秒。
  • TDengine3.0的最大查询速度为12万条/秒。

高可用性测试

TDengine3.0的高可用性测试是在阿里云ECS服务器上进行的, 服务器配置与写入性能测试相同。 测试使用了两台服务器, 其中一台作为主服务器, 另一台作为从服务器。

测试过程如下:

  1. 在主服务器上向表中插入1000万条数据, 每条数据的大小为1KB。
  2. 停止主服务器。
  3. 从服务器自动切换为主服务器。
  4. 在从服务器上继续向表中插入数据。

测试结果如下:

  • TDengine3.0在主服务器宕机的情况下能够自动切换为主服务器, 并继续提供服务。
  • TDengine3.0在主服务器宕机期间不会丢失任何数据。

易用性测试

TDengine3.0的易用性测试是在阿里云ECS服务器上进行的, 服务器配置与写入性能测试相同。 测试人员为一名资深软件工程师, 没有任何TDengine3.0的使用经验。

测试过程如下:

  1. 测试人员阅读TDengine3.0的文档。
  2. 测试人员安装TDengine3.0。
  3. 测试人员创建表。
  4. 测试人员向表中插入数据。
  5. 测试人员查询表中的数据。

测试结果如下:

  • TDengine3.0的文档非常详细, 易于理解。
  • TDengine3.0的安装过程非常简单, 只需几分钟即可完成。
  • TDengine3.0的创建表和插入数据的过程非常简单, 只需几行代码即可完成。
  • TDengine3.0的查询表中的数据的过程也非常简单, 只需几行代码即可完成。

实际项目场景测试

在上述的评估测试中, 我们已对TDengine3.0的各项性能指标进行了详细的测试, 并对其高可用性和易用性进行了评估。总体来说, TDengine3.0是一款性能优异、 高可用且易于使用的时序数据库, 非常适合在云上进行物联网时序数据的存储和处理。

为了进一步验证TDengine3.0在实际项目中的应用效果, 我们将它部署在了公司的日志收集系统中。 该系统每天需要收集和处理数十亿条日志, 这些日志主要来自公司的各种服务和应用程序。

我们将TDengine3.0部署在日志收集系统的后端, 并将其作为日志存储和分析的工具。 在实际使用中, 我们发现TDengine3.0的性能非常出色, 能够轻松地满足日志收集系统的需求。

使用TDengine3.0后, 日志收集系统的数据存储成本显著降低, 查询性能也有了大幅提升。 同时, TDengine3.0的易用性也得到了我们的认可, 运维人员可以轻松地管理和维护数据库。

总结

综上所述, 我们认为TDengine3.0是一款非常优秀