Apache IoTDB文件同步工具怎么用
Apache IoTDB文件同步工具怎么用
这篇文章主要介绍“Apache IoTDB文件同步工具怎么用”,在日常操作中,相信很多人在Apache IoTDB文件同步工具怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Apache IoTDB文件同步工具怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
写入流程
为了更好的理解数据文件的生成耗时,需要简单介绍一下写入流程。
IoTDB 采用了 LSM 结构,数据先写到内存缓冲区 memtable 中,memtable 达到一定大小会落盘,多个 memtable 会对应一个数据文件。
举个例子,某个存储组有 1 个时间序列,写入频率为 1 秒,每个数据点是 16 字节。一个 memtable 大小为 160 字节,TsFile 文件大小为 200 字节。存储组刚开始有一个空的 TsFile 可供写入。
(1)memtable 第一次存满 10 个数据点时,提交一个异步刷盘任务(追加到当前正在写入的 TsFile 中),同时检查 TsFile 大小,这个时候还是 0 字节,先不关文件。
(2)异步的刷盘任务开始执行,刷完之后 TsFile 变成了 200 字节。
(3)memtable 第二次存满 10 个数据点时,提交一个异步刷盘任务,同时检查 TsFile 大小,发现到了 200 字节,于是就标记关文件。
(4)异步刷盘任务开始执行,刷完之后把当前 TsFile 关掉。
在这个例子里,写满 2 个 memtable (20条数据) 关闭一次文件,写入频率为 1 秒,文件的生成耗时是 20 秒左右。
同步流程
发送端定时检查本地有没有新创建的 Schema 和新生成的完整的数据文件,如果存在,就发给接收端。同步的延迟基本就是 max(同步检查间隔,文件生成耗时)。
在 iotdb-sync-client.properties 配置文件中,有一个参数sync_period_in_second,这个控制发送端检查的频率。假如配置 60 秒,那同步的最长延迟就是 60秒,如果配置 10秒,那延迟就是 20秒(一个文件的生成耗时)。可以看到,同步延迟跟配置有关系,跟写入频率也有关系。
配置文件里的 sync_period_in_second 可以配的比较小,没啥大问题。主要问题是 TsFile 的生成间隔,这个由 memtable_size_threshold 和 tsfile_size_threshold 控制,这两个参数,尤其是 memtable 越大,历史数据查询越快。因此,同步能达到的最低延迟和查询性能之间需要平衡。
一个比较简单的查看自己系统里文件的生成速率,可以到数据目录 data/data/存储组{/分区} 看 .resource 文件的最后修改时间间隔。
测试同步
在一个机器测试同步,示例脚本为 linux 环境,版本 0.10.1。先下载二进制包,解压缩两遍重命名,一个 sender,一个 receiver。
启动接收端
cdreceiver##配置conf/iotdb-engine.properties中的is_sync_enable=true##启动接收端IoTDBnohup./sbin/start-server.sh>/dev/null2>&1&##启动接收端CLI,默认用root用户连本地6667端口./sbin/start-cli.sh
启动发送端,准备数据
cdsender##配置conf/iotdb-engine.properties中的rpc_port=6668conf/iotdb-sync-client.properties中的sync_period_in_second=10##启动iotdbnohup./sbin/start-server.sh>/dev/null2>&1&##启动发送进程nohup./tools/start-sync-client.sh>/dev/null2>&1&##启动发送端CLI,注意,改到6668端口了./sbin/start-cli.sh-h127.0.0.1-p6668-uroot-pwroot##输入insertintoroot.turbine1.d1(timestamp,s1,s3)values(2,1,3);flush(这个是精髓,强制把memtable刷盘,文件封口)
接收端验证数据
##在接收端CLI中输入select*fromroot
如果想自己配置,需要先把 enable_parameter_adapter 置为 false,不然系统会自动调 memtable 和 tsfile 大小。
到此,关于“Apache IoTDB文件同步工具怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
推荐阅读
-
apache2无法解析php如何解决
-
5分钟搭建起apache+php+mysql开发环境
-
Apache服务器是如何解析PHP 小编来给你解疑
为了让Apache支持php,我们通常的做法是编译一个apche的php模块,在配置中配置让mod_php来处理php文件的请求...
-
Centos7系统yum安装Apache PHP MySQL环境
-
Mac电脑、MacOS系统 下php、apache、mysql开发环境配置
-
在 Windows 10 上安装 PHP(使用 Apache 和 MySQL)
-
Mac自带Apache和PHP位置及简单命令
之前一直使用的Windows开发环境,用了很多年的wampserver集成,自从上个月LP大人开恩换了最新款macpro之后一直...
-
centos7 apache 利用yum安装多版本php
在今天的教程中,我们想展示如何在CentOS7linux上使用apache运行多个PHP版本。具有多个php版本并在单...
-
PHP运行原理及Mac OS下Apache的安装配置
-
如何启用 Apache 的 PHP-FPM 多实例