使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(4)

举报
小云悠悠zZ 发表于 2023/01/04 15:02:02 2023/01/04
【摘要】 为了提高数据存储的效率,需要在数据写入时对数据进行编码,从而减少磁盘空间的使用量。在写入和读取数据的过程中,可以减少I/O操作中涉及的数据量以提高性能。对于不同类型的数据,IoTDB支持四种编码方法:PLAIN、TS_2DIFF、RLE、GORILLA。

使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(4)

编码

为了提高数据存储的效率,需要在数据写入时对数据进行编码,从而减少磁盘空间的使用量。在写入和读取数据的过程中,可以减少I/O操作中涉及的数据量以提高性能。对于不同类型的数据,IoTDB支持四种编码方法:

  • PLAIN:普通编码是默认的编码模式,即不编码,支持多种数据类型。它具有较高的压缩和解压缩效率,但空间存储效率较低。
  • TS_2DIFF:二阶差分编码更适合对单调递增或递减的序列数据进行编码,不推荐对波动较大的序列数据进行编码。
  • RLE:游程编码更适合存储具有连续整数值的序列,不推荐用于大多数时间具有不同值的序列数据。游程编码也可用于对浮点数进行编码,但必须指定保留的十进制数字。比较适合存储浮点值连续出现、单调递增或递减的序列数据,不适合存储小数点后精度要求高或波动较大的序列数据。
  • GORILLA:GORILLA编码更适合值相近的浮点序列,不建议用于波动较大的序列数据。

常规编码

常规数据编码更适合编码常规序列递增的数据(例如,每个数据点之间经过的时间相同的时间序列),在这种情况下,它比TS_2DIFF更好。规则数据编码方式不适合有波动的数据,即不规则数据,此时建议用TS_2DIFF处理。

数据类型和编码之间的对应关系

前面描述的四种编码适用于不同的数据类型。如果对应关系是错误的,就不能正确地创建时间序列。下表中详细总结了数据类型及其支持的编码之间的对应关系。

**数据类型及其支持的编码之间的对应关系**

Data Type Supported Encoding
BOOLEAN PLAIN, RLE
INT32 PLAIN, RLE, TS_2DIFF, REGULAR
INT64 PLAIN, RLE, TS_2DIFF, REGULAR
FLOAT PLAIN, RLE, TS_2DIFF, GORILLA
DOUBLE PLAIN, RLE, TS_2DIFF, GORILLA
TEXT PLAIN

压缩

当时间序列按照指定的类型写成二进制数据编码后,IoTDB使用压缩技术对数据进行压缩,进一步提高空间存储效率。虽然编码和压缩都是为了提高存储效率,但编码技术通常只适用于特定的数据类型。例如,二阶差分编码只适用于INT32或INT64数据类型,存储浮点数需要乘以10m才能转换为整数,之后将数据转换为二进制流。压缩方法(SNAPPY)压缩二进制流,因此压缩方法的使用不再受数据类型的限制。

IoTDB允许咱们开发者在创建时间序列时指定列的压缩方法,现在主要支持以下两种压缩方法:

  • UNCOMPRESSED
  • SNAPPY

单节点设置

大家可以通过sbin文件夹下的启动服务器脚本来启动IoTDB。

  1. # Unix/OS X
  2. > nohup sbin/start-server.sh >/dev/null 2>&1 &
  3. or
  4. > nohup sbin/start-server.sh -c <conf_path> -rpc_port <rpc_port> >/dev/null 2>&1 &
  5. # Windows
  6. > sbin\start-server.bat -c <conf_path> -rpc_port <rpc_port>

  • "-c "和"-rpc_port "是可选的
  • 选项"-c "指定系统配置文件目录
  • 选项“-rpc_port”指定rpc端口
  • 如果两个选项都指定了,则rpc _端口将覆盖中的rpc_port配置路径

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。