温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Apache IoTDB文件同步工具怎么用

发布时间:2022-01-06 17:14:56 来源:亿速云 阅读:204 作者:iii 栏目:互联网科技

这篇文章主要介绍“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。

启动接收端

cd receiver## 配置conf/iotdb-engine.properties 中的 is_sync_enable=true## 启动接收端 IoTDBnohup ./sbin/start-server.sh >/dev/null 2>&1 &## 启动接收端 CLI,默认用 root 用户连本地 6667 端口./sbin/start-cli.sh

启动发送端,准备数据

cd sender## 配置conf/iotdb-engine.properties 中的 rpc_port=6668conf/iotdb-sync-client.properties 中的 sync_period_in_second=10## 启动 iotdbnohup ./sbin/start-server.sh >/dev/null 2>&1 &## 启动发送进程nohup ./tools/start-sync-client.sh >/dev/null 2>&1 &## 启动发送端 CLI,注意,改到 6668 端口了./sbin/start-cli.sh -h 127.0.0.1 -p 6668 -u root -pw root## 输入insert into root.turbine1.d1(timestamp,s1,s3) values(2,1,3);flush (这个是精髓,强制把 memtable 刷盘,文件封口)

接收端验证数据

## 在接收端 CLI 中输入select * from root

如果想自己配置,需要先把 enable_parameter_adapter 置为 false,不然系统会自动调 memtable 和 tsfile 大小。

到此,关于“Apache IoTDB文件同步工具怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI