有几种方法可以识别您使用的 IoTDB 版本:
> ./start-cli.sh -p 6667 -pw root -u root -h localhost _____ _________ ______ ______ |_ _| | _ _ ||_ _ `.|_ _ \ | | .--.|_/ | | \_| | | `. \ | |_) | | | / .'`\ \ | | | | | | | __'. _| |_| \__. | _| |_ _| |_.' /_| |__) | |_____|'.__.' |_____| |______.'|_______/ version x.x.x
<version>x.x.x</version>
String iotdbVersion = tsfileDatabaseMetadata.getDatabaseProductVersion();
IoTDB> show version show version +---------------+ |version | +---------------+ |x.x.x | +---------------+ Total line number = 1 It costs 0.241s
假设您的根目录是:
$ pwd /workspace/iotdb $ ls -l server/ cli/ pom.xml Readme.md ...
假如 $IOTDB_HOME = /workspace/iotdb/server/target/iotdb-server-{project.version}
假如 $IOTDB_CLI_HOME = /workspace/iotdb/cli/target/iotdb-cli-{project.version}
在默认的设置里,logs 文件夹会被存储在IOTDB_HOME/logs。您可以在IOTDB_HOME/conf目录下的logback.xml文件中修改日志的级别和日志的存储路径。
在默认的设置里,数据文件(包含 TsFile,metadata,WAL)被存储在IOTDB_HOME/data/datanode文件夹。
使用 IoTDB 的命令行接口:
IoTDB> show timeseries
在返回的结果里,会展示Total timeseries number,这个数据就是 IoTDB 中 timeseries 的数量。
在当前版本中,IoTDB 支持直接使用命令行接口查询时间序列的数量:
IoTDB> count timeseries
如果您使用的是 Linux 操作系统,您可以使用以下的 Shell 命令:
> grep "0,root" $IOTDB_HOME/data/system/schema/mlog.txt | wc -l > 6
是的。IoTDB 与开源生态紧密结合。IoTDB 支持 Hadoop, Spark 和 Grafana 可视化工具。
一个数据点是由一个完整的时间序列路径(例如:root.vehicle.d0.s0) 和时间戳唯一标识的。如果您使用与现有点相同的路径和时间戳提交一个新点,那么 IoTDB 将更新这个点的值,而不是插入一个新点。
在 IoTDB 的命令行接口中使用 SQL SHOW TIMESERIES <timeseries path>:
例如:如果您想知道所有 timeseries 的类型 <timeseries path> 应该为 root.**。上面的 SQL 应该修改为:
IoTDB> show timeseries root.**
如果您想查询一个指定的时间序列,您可以修改 <timeseries path> 为时间序列的完整路径。比如:
IoTDB> show timeseries root.fit.d1.s1
您还可以在 timeseries 路径中使用通配符:
IoTDB> show timeseries root.fit.d1.*
IoTDB 客户端默认显示的时间是人类可读的(比如:1970-01-01T08:00:00.001),如果您想显示是时间戳或者其他可读格式,请在启动命令上添加参数-disableISO8601:
> $IOTDB_CLI_HOME/sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root -disableISO8601
org.apache.ratis.grpc.server.GrpcLogAppender的IndexOutOfBoundsException?这是我们的依赖Ratis 2.4.1的一个内部错误日志,不会对数据写入和读取造成任何影响。 已经报告给Ratis社区,并会在未来的版本中修复。
报错信息:
301: There is not enough memory to execute current fragment instance, current remaining free memory is 86762854, estimated memory usage for current fragment instance is 270139392
报错分析: datanode_memory_proportion参数控制分给查询的内存,chunk_timeseriesmeta_free_memory_proportion参数控制查询执行可用的内存。 默认情况下分给查询的内存为堆内存*30%,查询执行可用的内存为查询内存的20%。 报错显示当前剩余查询执行可用内存为86762854B=82.74MB,该查询预估使用执行内存270139392B=257.6MB。
一些可能的改进项:
remove-datanode.sh -f 命令,来强制移除节点(迁移失败的Region会直接丢弃)stop-confignode.sh或kill进程方式关闭ConfigNode进程start-confignode.sh启动ConfigNode进程实现重启stop-datanode.sh或kill进程方式关闭DataNode进程start-datanode.sh启动DataNode进程实现重启start-confignode.sh/start-datanode.sh,这种情况下能成功吗?