IoTDB 运维必备:元数据导入导出工具使用指南
IoTDB 数据导入全攻略:工具、自动加载与 Load SQL 详解
在 IoTDB 的日常运维和数据管理工作中,元数据的导入导出是非常关键的操作。它可以帮助我们实现元数据的备份、迁移以及批量创建。本文将详细介绍 IoTDB 中import-schema和export-schema两款工具的参数配置、运行命令以及实操案例,帮助大家快速掌握元数据的导入导出方法。

一、元数据导入工具 import-schema
import-schema 工具的作用是将指定路径下创建元数据的脚本文件导入到 IoTDB 中,工具脚本位于 tools 目录下,支持 Unix/OS X 和 Windows 系统。
1.1 参数详解
| 参数缩写 | 参数全称 | 参数含义 | 是否必填 | 默认值 | 补充说明 |
|---|---|---|---|---|---|
| -h | –host | 主机名 | 否 | 127.0.0.1 | - |
| -p | –port | 端口号 | 否 | 6667 | - |
| -u | –username | 用户名 | 否 | root | - |
| -pw | –password | 密码 | 否 | root | - |
| -sql_dialect | –sql_dialect | 选择 server 模型(tree/table) | 否 | tree | 支持树模型和表模型两种类型 |
| -db | –database | 目标数据库 | 是 | - | 元数据要导入的数据库 |
| -table | –table | 目标表 | 否 | - | 仅在 sql_dialect 为 table 时生效 |
| -s | –source | 待加载脚本文件(夹)路径 | 是 | - | 本地目录下的脚本文件或文件夹路径 |
| -fd | –fail_dir | 失败文件保存目录 | 否 | - | 导入失败的文件会保存到该目录 |
| -lpf | –lines_per_failed_file | 失败文件最大行数 | 否 | 100000 | 仅在 sql_dialect 为 table 时生效,范围 0~2147483647 |
| -help | –help | 显示帮助信息 | 否 | - | - |
1.2 运行命令
(1)Unix/OS X 系统
tools/import-schema.sh [-sql_dialect<sql_dialect>] -db<database> -table<table>[-h <host>][-p <port>][-u <username>][-pw <password>] -s <source>[-fd <fail_dir>][-lpf <lines_per_failed_file>](2)Windows 系统
- V2.0.4.x 版本之前
tools\import-schema.bat [-sql_dialect<sql_dialect>] -db<database> -table<table>[-h <host>][-p <port>][-u <username>][-pw <password>] -s <source>[-fd <fail_dir>][-lpf <lines_per_failed_file>]- V2.0.4.x 版本及之后
tools\windows\schema\import-schema.bat [-sql_dialect<sql_dialect>] -db<database> -table<table>[-h <host>][-p <port>][-u <username>][-pw <password>] -s <source>[-fd <fail_dir>][-lpf <lines_per_failed_file>]1.3 实操案例
导入后验证
再次查看时间序列,确认元数据导入成功:
IoTDB>show timeseries root.treedb.**+------------------------------+-----+-----------+--------+--------+-----------+----+----------+--------+------------------+--------+| Timeseries|Alias|Database|DataType|Encoding|Compression|Tags|Attributes|Deadband|DeadbandParameters|ViewType|+------------------------------+-----+-----------+--------+--------+-----------+----+----------+--------+------------------+--------+|root.treedb.device.temperature|null|root.treedb|DOUBLE| GORILLA| LZ4|null|null|null|null| BASE|| root.treedb.device.humidity|null|root.treedb|DOUBLE| GORILLA| LZ4|null|null|null|null| BASE|+------------------------------+-----+-----------+--------+--------+-----------+----+----------+--------+------------------+--------+执行导入命令
采用树模型,将 /home/dump0_0.csv 中的元数据导入到 root.treedb 数据库:
./import-schema.sh -sql_dialect tree -s /home/dump0_0.csv -db root.treedb 导入前验证
先通过 IoTDB 客户端查看目标数据库下的时间序列,确认当前无相关元数据:
IoTDB>show timeseries root.treedb.**+----------+-----+--------+--------+--------+-----------+----+----------+--------+------------------+--------+|Timeseries|Alias|Database|DataType|Encoding|Compression|Tags|Attributes|Deadband|DeadbandParameters|ViewType|+----------+-----+--------+--------+--------+-----------+----+----------+--------+------------------+--------++----------+-----+--------+--------+--------+-----------+----+----------+--------+------------------+--------+二、元数据导出工具 export-schema
export-schema 工具可以将 IoTDB 中指定数据库下的元数据导出为脚本文件,工具脚本同样位于 tools 目录下,支持多系统运行。
2.1 参数详解
| 参数缩写 | 参数全称 | 参数含义 | 是否必填 | 默认值 | 补充说明 |
|---|---|---|---|---|---|
| -h | –host | 主机名 | 否 | 127.0.0.1 | - |
| -p | –port | 端口号 | 否 | 6667 | - |
| -u | –username | 用户名 | 否 | root | - |
| -pw | –password | 密码 | 否 | root | - |
| -sql_dialect | –sql_dialect | 选择 server 模型(tree/table) | 否 | tree | 支持树模型和表模型两种类型 |
| -db | –database | 目标数据库 | 否 | - | 仅在 sql_dialect 为 table 时必填 |
| -table | –table | 目标表 | 否 | - | 仅在 sql_dialect 为 table 时生效 |
| -t | –target | 输出文件目标文件夹 | 是 | - | 路径不存在时会自动新建 |
| -path | –path_pattern | 导出元数据的路径匹配模式 | 否 | - | 仅在 sql_dialect 为 tree 时必填 |
| -pfn | –prefix_file_name | 导出文件名称前缀 | 否 | dump_dbname.sql | 导出文件的命名前缀 |
| -lpf | –lines_per_file | 导出文件最大行数 | 否 | 10000 | 仅在 sql_dialect 为 tree 时生效 |
| -timeout | –query_timeout | 会话查询超时时间(ms) | 否 | -1 | 范围 -1~9223372036854775807 |
| -help | –help | 显示帮助信息 | 否 | - | - |
2.2 运行命令
(1)Unix/OS X 系统
> tools/export-schema.sh [-sql_dialect<sql_dialect>] -db<database> -table<table>[-h <host>][-p <port>][-u <username>][-pw <password>] -t <target_directory>[-path <exportPathPattern>][-pfn <prefix_file_name>][-lpf <lines_per_file>][-timeout <query_timeout>](2)Windows 系统
- V2.0.4.x 版本之前
> tools\export-schema.bat [-sql_dialect<sql_dialect>] -db<database> -table<table>[-h <host>][-p <port>][-u <username>][-pw <password>] -t <target_directory>[-path <exportPathPattern>][-pfn <prefix_file_name>][-lpf <lines_per_file>][-timeout <query_timeout>]- V2.0.4.x 版本及之后
> tools\windows\schema\export-schema.bat [-sql_dialect<sql_dialect>] -db<database> -table<table>[-h <host>][-p <port>][-u <username>][-pw <password>] -t <target_directory>[-path <exportPathPattern>][-pfn <prefix_file_name>][-lpf <lines_per_file>][-timeout <query_timeout>]2.3 实操案例
执行如下命令,将 root.treedb 路径下的元数据导出到 /home/ 目录下:
./export-schema.sh -sql_dialect tree -t /home/ -path "root.treedb.**"导出后的文件内容格式如下:
Timeseries,Alias,DataType,Encoding,Compression root.treedb.device.temperature,,DOUBLE,GORILLA,LZ4 root.treedb.device.humidity,,DOUBLE,GORILLA,LZ4 三、总结
本文详细介绍了 IoTDB 元数据导入导出的两款核心工具。import-schema 用于将本地脚本中的元数据批量导入 IoTDB,export-schema 则可以将 IoTDB 中的元数据导出为文件,方便备份与迁移。在实际使用过程中,需要根据系统版本选择对应的命令,同时注意区分树模型和表模型的参数差异。掌握这两款工具的使用,能够极大提升 IoTDB 元数据管理的效率。
🌐 附:IoTDB的各大版本
📄 Apache IoTDB 是一款工业物联网时序数据库管理系统,采用端边云协同的轻量化架构,支持一体化的物联网时序数据收集、存储、管理与分析 ,具有多协议兼容、超高压缩比、高通量读写、工业级稳定、极简运维等特点。
| 版本 | IoTDB 二进制包 | IoTDB 源代码 | 发布说明 |
|---|---|---|---|
| 2.0.5 | - All-in-one - AINode - SHA512 - ASC | - 源代码 - SHA512 - ASC | release notes |
| 1.3.5 | - All-in-one - AINode - SHA512 - ASC | - 源代码 - SHA512 - ASC | release notes |
| 0.13.4 | - All-in-one - Grafana 连接器 - Grafana 插件 - SHA512 - ASC | - 源代码 - SHA512 - ASC | release notes |
✨ 目前最新版本为2.0.6,去获取:https://archive.apache.org/dist/iotdb/
联系博主
xcLeigh 博主,全栈领域优质创作者,博客专家,目前,活跃在ZEEKLOG、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台,全网拥有几十万的粉丝,全网统一IP为 xcLeigh。希望通过我的分享,让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂,尤其对于一些复杂的技术话题,他能通过通俗的语言来解释,帮助初学者更好地理解。博客通常也会涉及一些实践经验,项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者,或者在学习一些新的编程语言或框架,关注他的文章对你有很大帮助。
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
💞 关注博主 🌀 带你实现畅游前后端!
🏰 大屏可视化 🌀 带你体验酷炫大屏!
💯 神秘个人简介 🌀 带你体验不一样得介绍!
🥇 从零到一学习Python 🌀 带你玩转Python技术流!
🏆 前沿应用深度测评 🌀 前沿AI产品热门应用在线等你来发掘!
💦 注:本文撰写于ZEEKLOG平台,作者:xcLeigh(所有权归作者所有) ,https://xcleigh.blog.ZEEKLOG.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
📣 亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(或者关注下方公众号,看见后第一时间回复,还有海量编程资料等你来领!),博主看见后一定及时给您答复 💌💌💌