提交 5b4f35ea 编写于 作者: 1 151250128

[IOTDB-127] Fix Chinese version documents problems

上级 4c10597e
......@@ -32,7 +32,7 @@ IoTDB中涉及如下基本概念:
传感器是指在实际场景中的一种检测装置,它能感受到被测量的信息,并能将感受到的信息按一定规律变换成为电信号或其他所需形式的信息输出并发送给IoTDB。在IoTDB当中,存储的所有的数据及路径,都是以传感器为单位进行组织。
* 3.1.3 存储组
* 存储组
用户可以将任意前缀路径设置成存储组。如有4条时间序列`root.vehicle.d1.s1`, `root.vehicle.d1.s2`, `root.vehicle.d2.s1`, `root.vehicle.d2.s2`,路径`root.vehicle`下的两个设备d1,d2可能属于同一个业主,或者同一个厂商,因此关系紧密。这时候就可以将前缀路径`root.vehicle`指定为一个存储组,这将使得IoTDB将其下的所有设备的数据存储在同一个文件夹下。未来`root.vehicle`下增加了新的设备,也将属于该存储组。
......@@ -94,12 +94,12 @@ LayerName: Identifier | STAR
时间戳是一个数据到来的时间点。IoTDB时间戳分为两种类型,一种为LONG类型,一种为DATETIME类型(包含DATETIME-INPUT, DATETIME-DISPLAY两个小类)。
在用户在输入时间戳时,可以使用LONG类型的时间戳或DATETIME-INPUT类型的时间戳,其中DATETIME-INPUT类型的时间戳支持格式见表格2-1。
在用户在输入时间戳时,可以使用LONG类型的时间戳或DATETIME-INPUT类型的时间戳,其中DATETIME-INPUT类型的时间戳支持格式如表所示:
<center>**表格2-1 DATETIME-INPUT类型支持格式**
<center>**DATETIME-INPUT类型支持格式**
|format|
|:---:|
|:---|
|yyyy-MM-dd HH:mm:ss|
|yyyy/MM/dd HH:mm:ss|
|yyyy.MM.dd HH:mm:ss|
......@@ -128,9 +128,9 @@ LayerName: Identifier | STAR
</center>
IoTDB在显示时间戳时可以支持LONG类型以及DATETIME-DISPLAY类型,其中DATETIME-DISPLAY类型可以支持用户自定义时间格式。自定义时间格式的语法见表格2-2。
IoTDB在显示时间戳时可以支持LONG类型以及DATETIME-DISPLAY类型,其中DATETIME-DISPLAY类型可以支持用户自定义时间格式。自定义时间格式的语法如表所示:
<center>**表格2-2 DATETIME-DISPLAY自定义时间格式的语法**
<center>**DATETIME-DISPLAY自定义时间格式的语法**
|Symbol|Meaning|Presentation|Examples|
|:---:|:---:|:---:|:---:|
......
......@@ -32,7 +32,7 @@ IoTDB支持:
一共六种数据类型。
其中**FLOAT****DOUBLE**类型的序列,如果编码方式采用[RLE](/#/Documents/latest/chap2/sec3)[TS_2DIFF](/#/Documents/latest/chap2/sec3)可以指定MAX_POINT_NUMBER,该项为浮点数的小数点后位数,具体指定方式请参见本文[第5.1节](/#/Documents/latest/chap5/sec1),若不指定则系统会根据配置文件tsfile-format.properties文件中的[float_precision项](/#/Documents/latest/chap2/sec3)配置。
其中**FLOAT****DOUBLE**类型的序列,如果编码方式采用[RLE](/#/Documents/latest/chap2/sec3)[TS_2DIFF](/#/Documents/latest/chap2/sec3)可以指定MAX_POINT_NUMBER,该项为浮点数的小数点后位数,具体指定方式请参见本文[第5.1节](/#/Documents/latest/chap5/sec1),若不指定则系统会根据配置文件tsfile-format.properties文件中的[float_precision项](/#/Documents/latest/chap4/sec2)配置。
当系统中用户输入的数据类型与该时间序列的数据类型不对应时,系统会提醒类型错误,如下所示,二阶差分不支持布尔类型的编码:
......
......@@ -50,7 +50,7 @@ IoTDB > set storage group to root.sgcc
```
IoTDB> set storage group to root.ln.wf01
error: The prefix of root.ln.wf01 has been set to the storage group.
Msg: org.apache.iotdb.exception.MetadataErrorException: org.apache.iotdb.exception.PathErrorException: The prefix of root.ln.wf01 has been set to the storage group.
```
### 查看存储组
......@@ -103,11 +103,7 @@ IoTDB> show timeseries root.ln
<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577347-8db7d780-1ef4-11e9-91d6-764e58c10e94.jpg"></center>
<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577359-97413f80-1ef4-11e9-8c10-53b291fc10a5.jpg"></center>
需要注意的是,当查询路径不存在时,系统会给出相应的错误提示,如下所示:
```
IoTDB> show timeseries root.ln.wf03
Msg: Failed to fetch timeseries root.ln.wf03's metadata because: Timeseries does not exist.
```
需要注意的是,当查询路径不存在时,系统会返回0条时间序列。
### 注意事项
......
......@@ -43,7 +43,7 @@ IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true)
IoTDB > insert into root.ln.wf02.wt02(timestamp,hardware) values(1, "v1")
```
以上示例代码将长整型的timestamp以及值为true的数据插入到时间序列`root.ln.wf02.wt02.status`中和将长整型的timestamp以及值为”v1”的数据插入到时间序列`root.ln.wf02.wt02.hardware`中。执行成功后会出现execute successfully的提示,代表数据插入已完成。
以上示例代码将长整型的timestamp以及值为true的数据插入到时间序列`root.ln.wf02.wt02.status`中和将长整型的timestamp以及值为”v1”的数据插入到时间序列`root.ln.wf02.wt02.hardware`中。执行成功后会返回执行时间,代表数据插入已完成。
> 注意:在IoTDB中,TEXT类型的数据单双引号都可以来表示,上面的插入语句是用的是双引号表示TEXT类型数据,下面的示例将使用单引号表示TEXT类型数据。
......
......@@ -35,7 +35,7 @@ select temperature from root.ln.wf01.wt01 where time < 2017-11-01T00:08:00.000
```
其含义为:
被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为温度传感器(temperature);该语句要求选择出该设备在“2017-11-01T00:08:00.000”(此处可以使用多种时间格式,详情可参看本文3.1.8节)时间点以前的所有温度传感器的值。
被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为温度传感器(temperature);该语句要求选择出该设备在“2017-11-01T00:08:00.000”(此处可以使用多种时间格式,详情可参看[2.1节](/#/Documents/latest/chap2/sec1))时间点以前的所有温度传感器的值。
该SQL语句的执行结果如下:
......@@ -50,7 +50,7 @@ select status, temperature from root.ln.wf01.wt01 where time > 2017-11-01T00:05:
```
其含义为:
被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为“供电状态(status)”和“温度传感器(temperature)”;该语句要求选择出“2017-11-01T00:05:00.000”至“2017-11-01T00:12:00.000”之间的所选时间序列的值。
被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为供电状态(status)和温度传感器(temperature);该语句要求选择出“2017-11-01T00:05:00.000”至“2017-11-01T00:12:00.000”之间的所选时间序列的值。
该SQL语句的执行结果如下:
......@@ -67,7 +67,7 @@ select status,temperature from root.ln.wf01.wt01 where (time > 2017-11-01T00:05:
```
其含义为:
被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为“供电状态(status)”和“温度传感器(temperature)”;该语句指定了两个不同的时间区间,分别为“2017-11-01T00:05:00.000至2017-11-01T00:12:00.000”和“2017-11-01T16:35:00.000至2017-11-01T16:37:00.000”;该语句要求选择出满足任时间区间的被选时间序列的值。
被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为“供电状态(status)”和“温度传感器(temperature)”;该语句指定了两个不同的时间区间,分别为“2017-11-01T00:05:00.000至2017-11-01T00:12:00.000”和“2017-11-01T16:35:00.000至2017-11-01T16:37:00.000”;该语句要求选择出满足任时间区间的被选时间序列的值。
该SQL语句的执行结果如下:
<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/23614968/61280449-780fd480-a7ea-11e9-8ed0-70fa9dfda80f.png"></center>
......@@ -347,7 +347,7 @@ select count(status), max_value(temperature) from root.ln.wf01.wt01 group by (1d
```
其含义为:
关于GROUP BY子句的具体含义请参见本文第4.4.2.1节,结合LIMIT子句之后该语句要求返回查询结果的第3行到第7行(首行为第0行)。
回查询结果的第3行到第7行(首行为第0行)。
该SQL语句的执行结果如下:
......@@ -389,9 +389,7 @@ select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time <
SQL语句为:
```
select * from root.ln.wf01.wt01
where time > 2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000
slimit 1 soffset 1
select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 slimit 1 soffset 1
```
其含义为:
......@@ -408,9 +406,6 @@ SQL语句为:
```
select max_value(*) from root.ln.wf01.wt01 group by (1d, [2017-11-01T00:00:00, 2017-11-07T23:00:00]) slimit 1 soffset 1
```
其含义为:
该GROUP BY子句的具体含义请参见4.4.2.1小节。
该SQL语句的执行结果如下:
......
......@@ -45,7 +45,7 @@ error: The BOOLEAN data type should be true/TRUE or false/FALSE
当更新的列不存在时,IoTDB给出没有存在的路径的错误提示:
```
IoTDB> update root.ln.wf02 set wt02.sta = false where time < now()
error: do not select any existing path
Msg: do not select any existing series
```
### 数据删除
......@@ -65,7 +65,7 @@ delete from root.ln.wf02.wt02.status where time<=2017-11-01T16:26:00;
#### 多传感器时间序列值删除
当ln集团wf02子站的wt02设备在2017-11-01 16:26:00之前的供电状态和设备硬件版本都需要删除,此时可以使用含义更广的前缀路径(参见本文第3.1.6节)或带`*`路径(参见本文第3.1.7节)进行删除操作,进行此操作的SQL语句为:
当ln集团wf02子站的wt02设备在2017-11-01 16:26:00之前的供电状态和设备硬件版本都需要删除,此时可以使用含义更广的[前缀路径或带`*`路径](/#/Documents/latest/chap2/sec1)进行删除操作,进行此操作的SQL语句为:
```
delete from root.ln.wf02.wt02 where time <= 2017-11-01T16:26:00;
......@@ -79,5 +79,5 @@ delete from root.ln.wf02.wt02.* where time <= 2017-11-01T16:26:00;
需要注意的是,当删除的路径不存在时,IoTDB会提示路径不存在,无法删除数据,如下所示。
```
IoTDB> delete from root.ln.wf03.wt02.status where time < now()
error: TimeSeries does not exist and cannot be delete data
Msg: TimeSeries does not exist and its data cannot be deleted
```
......@@ -97,7 +97,7 @@ INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)
#### 系统所含权限列表
<center>**表格3-8 系统所含权限列表**
<center>**系统所含权限列表**
|权限名称|说明|
|:---|:---|
......
......@@ -97,3 +97,37 @@ Shell > git clone git@github.com:apache/incubator-iotdb.git
```
> mvn clean package -pl iotdb -am -Dmaven.test.skip=true
```
成功后,可以在终端看到如下信息:
```
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] IoTDB Root ......................................... SUCCESS [ 7.020 s]
[INFO] TsFile ............................................. SUCCESS [ 10.486 s]
[INFO] Service-rpc ........................................ SUCCESS [ 3.717 s]
[INFO] IoTDB Jdbc ......................................... SUCCESS [ 3.076 s]
[INFO] IoTDB .............................................. SUCCESS [ 8.258 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
```
否则,你需要检查错误语句,并修复问题。
编译后,IoTDB项目会在名为iotdb的子文件夹下,该文件夹会包含以下内容:
```
$IOTDB_HOME/
|
+- bin/ <-- script files
|
+- conf/ <-- configuration files
|
+- lib/ <-- project dependencies
```
### 通过Docker安装 (Dockerfile)
你可以通过[这份指南](/#/Documents/latest/chap4/sec7)编译并运行一个IoTDB docker image。
......@@ -71,7 +71,7 @@
|名字|HEAP\_NEWSIZE|
|:---:|:---|
|描述|oTDB启动时能使用的最小堆内存大小。|
|描述|IoTDB启动时能使用的最小堆内存大小。|
|类型|String|
|默认值|取决于操作系统和机器配置。在Linux或MacOS系统下默认值为机器CPU核数乘以100M的值与MAX\_HEAP\_SIZE四分之一这二者的最小值。在Windows系统下,32位系统的默认值是512M,64位系统默认值是2G。。|
|改后生效方式|重启服务器生效|
......@@ -122,23 +122,23 @@
|名字| page\_size\_in\_byte |
|:---:|:---|
|描述|内存中每个列写出时,写成的单页最大的大小,单位为字节|
|描述|内存中每个列写出时,写成的单页最大的大小,单位为字节|
|类型|Int32|
|默认值| 65536 |
|改后生效方式|即时生效|
* time\_series\_data\_类型
* time\_series\_data\_type
|名字| time\_series\_data\_类型 |
|名字| time\_series\_data\_type |
|:---:|:---|
|描述|时间戳数据类型|
|类型|枚举String: "INT32", "INT64"|
|默认值| Int64 |
|改后生效方式|即时生效|
* time\_series\_encoder
* time\_encoder
|名字| time\_series\_data\_类型 |
|名字| time\_encoder |
|:---:|:---|
|描述| 时间列编码方式|
|类型|枚举String: “TS_2DIFF”,“PLAIN”,“RLE”|
......@@ -162,7 +162,7 @@
|:---:|:---|
|描述| 系统统计量触发统计的频率,单位为秒。|
|类型|Int32|
|默认值| 10 |
|默认值| 5 |
|改后生效方式|重启服务器生效|
* data\_dir
......@@ -192,9 +192,9 @@
|默认值| 10000 |
|改后生效方式|重启服务器生效|
* flush\_wal\_period\_in\_ms
* force\_wal\_period\_in\_ms
|名字| flush\_wal\_period\_in\_ms |
|名字| force\_wal\_period\_in\_ms |
|:---:|:---|
|描述| 写前日志定期刷新到磁盘的周期,单位毫秒,有可能丢失至多flush\_wal\_period\_in\_ms毫秒的操作。 |
|类型|Int32|
......@@ -205,20 +205,11 @@
|名字| flush\_wal\_threshold |
|:---:|:---|
|描述| A写前日志的条数达到该值之后,刷新到磁盘,有可能丢失至多flush\_wal\_threshold个操作 |
|描述| 写前日志的条数达到该值之后,刷新到磁盘,有可能丢失至多flush\_wal\_threshold个操作 |
|类型|Int32|
|默认值| 10000 |
|改后生效方式|重启服务器生效|
* max\_opened\_folder
|名字| max\_opened\_folder |
|:---:|:---|
|描述| 最大同时打开的文件夹个数。默认为100。该值变大,则占用内存变多,IO随机读写变小,文件分块(即group)更加整齐;该值越小,则占用内存越少,IO随机读写变多,文件块大小不足group的概率变大group\_size\_in\_byte * max\_opened\_folder = 内存的最大占用量理论值。对于一个应用,folder的总量等于storage\_group的数量 |
|类型|Int32|
|默认值| 100 |
|改后生效方式|重启服务器生效|
* merge\_concurrent\_threads
|名字| merge\_concurrent\_threads |
......@@ -228,33 +219,15 @@
|默认值| 0 |
|改后生效方式|重启服务器生效|
* mult\_dir\_strategy
* multi\_dir\_strategy
|名字| mult\_dir\_strategy |
|名字| multi\_dir\_strategy |
|:---:|:---|
|描述| IoTDB在tsfile\_dir中为TsFile选择目录时采用的策略。可使用简单类名或类名全称。系统提供以下三种策略:<br>1. SequenceStrategy:IoTDB按顺序从tsfile\_dir中选择目录,依次遍历tsfile\_dir中的所有目录,并不断轮循;<br>2. MaxDiskUsableSpaceFirstStrategy:IoTDB优先选择tsfile\_dir中对应磁盘空余空间最大的目录;<br>3. MinFolderOccupiedSpaceFirstStrategy:IoTDB优先选择tsfile\_dir中已使用空间最小的目录;<br>4. <UserDfineStrategyPackage>(用户自定义策略)<br>您可以通过以下方法完成用户自定义策略:<br>1. 继承cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy类并实现自身的Strategy方法;<br>2. 将实现的类的完整类名(包名加类名,UserDfineStrategyPackage)填写到该配置项;<br>3. 将该类jar包添加到工程中。|
|类型|String|
|默认值| MaxDiskUsableSpaceFirstStrategy |
|改后生效方式|重启服务器生效|
* period\_time\_for\_flush\_in\_second
|名字| period\_time\_for\_flush\_in\_second |
|:---:|:---|
|描述| IoTDB定时关闭文件的间隔。单位为秒。每隔设置的时间,系统会自动将内存中的数据刷入磁盘,并将当前打开的所有文件流封口。|
|类型|Int32|
|默认值| 3600 |
|改后生效方式|重启服务器生效|
* period\_time\_for\_merge\_in\_second
|名字| period\_time\_for\_merge\_in\_second |
|:---:|:---|
|描述| IoTDB在运行时有两部分数据存在于内存:overflow和bufferwrite,系统会自动每隔一段时间合并两部分数据。单位为秒。|
|类型|Int32|
|默认值| 7200 |
|改后生效方式|重启服务器生效|
* rpc_address
|名字| rpc_address |
......@@ -271,34 +244,7 @@
|描述|jdbc服务监听端口。请确认该端口不是系统保留端口并且未被占用。|
|类型|Short Int : [0,65535]|
|默认值| 6667 |
|改后生效方式|重启服务器生效|
* tsfile_dir
|名字| tsfile_dir |
|:---:|:---|
|描述| IoTDB TsFile的存储路径,默认存放在和bin目录同级的data目录下的settled1、settled2、settled3三个文件夹中(数据分配策略见mult\_dir\_strategy配置项)。相对路径的起始目录与操作系统相关,建议使用绝对路径。若路径不存在,系统会自动创建。|
|类型|String[]|
|默认值| settled1, settled2, settled3 |
|改后生效方式|重启服务器生效|
* wal\_cleanup\_threshold
|名字| wal\_cleanup\_threshold |
|:---:|:---|
|描述| 当文件中和内存中的日志总条数达到该值后,对所有日志进行压缩并去掉无用的记录日志。该值过大会导致短暂的写入暂停,过小会增加IO和CPU消耗 |
|类型|Int32|
|默认值| 500000 |
|改后生效方式|重启服务器生效|
* sys\_dir
|名字| sys\_dir |
|:---:|:---|
|描述| IIoTDB系统元数据存储路径,默认存放在和bin目录同级的data目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。 |
|类型|String|
|默认值| system |
|改后生效方式|重启服务器生效|
|改后生效方式|重启服务器生效||
* time_zone
......@@ -318,72 +264,6 @@
|默认值| false |
|改后生效方式|重启服务器生效|
* mem\_threshold\_warning
|名字| mem\_threshold\_warning |
|:---:|:---|
|描述| 百分比值,这个值乘以IoTDB运行时分配到的最大堆内存值后得到一个阈值。当IoTDB使用内存超过该阈值的时候,将触发把当前内存中的数据写入到磁盘上,并释放相应内存的操作。默认为IoTDB运行时能使用最大堆内存的80%。如果该值配置超过1,那么该配置项将不生效。如果该值小于等于0,那么使用默认值。|
|类型| Float |
|默认值| 0.8 |
|改后生效方式|重启服务器生效|
* mem\_threshold\_dangerous
|名字| mem\_threshold\_dangerous |
|:---:|:---|
|描述| 百分比值,这个值乘以IoTDB运行时分配到的最大堆内存后得到一个阈值。当IoTDB使用内存超过该阈值的时候,将触发把当前内存中的数据写入到磁盘上,并释放相应内存的操作。同时,写入操作将被阻塞。默认为IoTDB运行时能使用最大堆内存的90%。如果该值配置超过1,那么该配置项将不生效。如果该值小于等于0,那么使用默认值。|
|类型| Float |
|默认值| 0.9 |
|改后生效方式|重启服务器生效|
* mem\_monitor\_interval
|名字| mem\_monitor\_interval |
|:---:|:---|
|描述| IoTDB系统每隔一段时间检查当前内存使用情况,如果超过了根据mem\_threshold\_warning或者mem\_threshold\_dangerous计算出来的阈值,将触发相应的操作。单位是为毫秒,默认值是1000毫秒。|
|类型| Int64 |
|默认值| 1000 |
|改后生效方式|重启服务器生效|
* bufferwrite\_meta\_size\_threshold
|名字| bufferwrite\_meta\_size\_threshold |
|:---:|:---|
|描述| 当内存中保存的TsFile文件元数据大小超过该阈值之后,会将元数据保存在TsFile文件尾部,然后关闭该文件,并释放元数据占用的内存空间。单位为byte,默认值为200M。|
|类型| Int64 |
|默认值| 209715200 |
|改后生效方式|重启服务器生效|
* bufferwrite\_file\_size\_threshold
|名字| bufferwrite\_meta\_size\_threshold |
|:---:|:---|
|描述| 当磁盘上的一个TsFile文件大小超过该阈值时,会关闭该TsFile文件。并打开一个新的TsFile文件接受数据写入。单位为byte,默认值为2G。|
|类型| Int64 |
|默认值| 2147483648 |
|改后生效方式|重启服务器生效|
* overflow\_meta\_size\_threshold
|名字| overflow\_meta\_size\_threshold |
|:---:|:---|
|描述| 当内存中保存的Overflow文件元数据大小超过该阈值之后,会将元数据保存在TsFile文件尾部,然后关闭该文件,并释放元数据占用的内存空间。单位为byte,默认值为200M。|
|类型| Int64 |
|默认值| 209715200 |
|改后生效方式|重启服务器生效|
* overflow\_file\_size\_threshold
|名字| overflow\_file\_size\_threshold |
|:---:|:---|
|描述| 当磁盘上的一个Overflow文件大小超过该阈值时,会关闭该Overflow文件。并打开一个新的Overflow文件接受数据写入。单位为byte,默认值为2G。|
|类型| Int64 |
|默认值| 2147483648 |
|改后生效方式|重启服务器生效|
* concurrent\_flush\_thread
|名字| concurrent\_flush\_thread |
......@@ -396,7 +276,7 @@
* stat\_monitor\_detect\_freq\_in\_second
|名字| concurrent\_flush\_thread |
|名字| stat\_monitor\_detect\_freq\_in\_second |
|:---:|:---|
|描述| 每隔一段时间(以秒为单位)检测当前记录统计量时间范围是否超过stat_monitor_retain_interval,并进行定时清理。|
|类型| Int32 |
......
......@@ -33,7 +33,7 @@
本模块是IoTDB为用户提供的对其中存储数据信息的数据统计监控方式,我们会在系统中为您记录各个模块的数据统计信息,并将其汇总存入数据库中。当前0.7.0版本的IoTDB提供IoTDB写入数据的统计功能。
用户可以选择开启或关闭数据统计监控功能(您可以设定配置文件中的`enable_stat_monitor`项,详细信息参见本文第5.2.2.2.2节)。
用户可以选择开启或关闭数据统计监控功能(您可以设定配置文件中的`enable_stat_monitor`项,详细信息参见[第4.2节](/#/Documents/latest/chap4/sec2))。
#### 写入数据统计
......
......@@ -95,12 +95,12 @@ When `*` appears in the middle of the path, it represents `*` itself, i.e., a la
* Timestamp
The timestamp is the time point at which a data arrives. IoTDB timestamps are divided into two types: LONG and DATETIME (including DATETIME-INPUT and DATETIME-DISPLAY). When a user enters a timestamp, he can use a LONG type timestamp or a DATETIME-INPUT type timestamp, where the support format of the DATETIME-INPUT type timestamp is shown in Table 2-1.
The timestamp is the time point at which a data arrives. IoTDB timestamps are divided into two types: LONG and DATETIME (including DATETIME-INPUT and DATETIME-DISPLAY). When a user enters a timestamp, he can use a LONG type timestamp or a DATETIME-INPUT type timestamp, where the support format of the DATETIME-INPUT type timestamp is shown in table:
<center>**Table 2-1 Support format of DATETIME-INPUT type timestamp**
<center>**Support format of DATETIME-INPUT type timestamp**
|format|
|:---:|
|:---|
|yyyy-MM-dd HH:mm:ss|
|yyyy/MM/dd HH:mm:ss|
|yyyy.MM.dd HH:mm:ss|
......@@ -129,9 +129,9 @@ The timestamp is the time point at which a data arrives. IoTDB timestamps are di
</center>
IoTDB can support LONG types and DATETIME-DISPLAY types when displaying timestamps. The DATETIME-DISPLAY type can support user-defined time formats. The syntax of the custom time format is shown in Table 2-2.
IoTDB can support LONG types and DATETIME-DISPLAY types when displaying timestamps. The DATETIME-DISPLAY type can support user-defined time formats. The syntax of the custom time format is shown in table:
<center>**Table 2-2 The syntax of the custom time format**
<center>**The syntax of the custom time format**
|Symbol|Meaning|Presentation|Examples|
|:---:|:---:|:---:|:---:|
......
......@@ -31,7 +31,7 @@ IoTDB supports six data types in total:
* TEXT (String).
The time series of **FLOAT** and **DOUBLE** type can specify (MAX\_POINT\_NUMBER, see [this page](/#/Documents/latest/chap5/sec1) for more information on how to specify), which is the number of digits after the decimal point of the floating point number, if the encoding method is [RLE](/#/Documents/latest/chap2/sec3) or [TS\_2DIFF](/#/Documents/latest/chap2/sec3) (Refer to [Create Timeseries Statement](/#/Documents/latest/chap5/sec1) for more information on how to specify). If MAX\_POINT\_NUMBER is not specified, the system will use [float\_precision](/#/Documents/latest/chap2/sec3) in the configuration file "tsfile-format.properties" for configuration for the configuration method.
The time series of **FLOAT** and **DOUBLE** type can specify (MAX\_POINT\_NUMBER, see [this page](/#/Documents/latest/chap5/sec1) for more information on how to specify), which is the number of digits after the decimal point of the floating point number, if the encoding method is [RLE](/#/Documents/latest/chap2/sec3) or [TS\_2DIFF](/#/Documents/latest/chap2/sec3) (Refer to [Create Timeseries Statement](/#/Documents/latest/chap5/sec1) for more information on how to specify). If MAX\_POINT\_NUMBER is not specified, the system will use [float\_precision](/#/Documents/latest/chap4/sec2) in the configuration file "tsfile-format.properties" for configuration for the configuration method.
* For Float data value, The data range is (-Integer.MAX_VALUE, Integer.MAX_VALUE), rather than Float.MAX_VALUE, and the max_point_number is 19, it is because of the limition of function Math.round(float) in Java.
* For Double data value, The data range is (-Long.MAX_VALUE, Long.MAX_VALUE), rather than Double.MAX_VALUE, and the max_point_number is 19, it is because of the limition of function Math.round(double) in Java (Long.MAX_VALUE=9.22E18).
......
......@@ -48,7 +48,7 @@ It is worth noting that when the path itself or the parent/child layer of the pa
```
IoTDB> set storage group to root.ln.wf01
error: The prefix of root.ln.wf01 has been set to the storage group.
Msg: org.apache.iotdb.exception.MetadataErrorException: org.apache.iotdb.exception.PathErrorException: The prefix of root.ln.wf01 has been set to the storage group.
```
### Show Storage Group
......@@ -99,12 +99,7 @@ The results are shown below respectly:
<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577347-8db7d780-1ef4-11e9-91d6-764e58c10e94.jpg"></center>
<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577359-97413f80-1ef4-11e9-8c10-53b291fc10a5.jpg"></center>
It is worth noting that when the path queries does not exist, the system will give the corresponding error prompt as shown below:
```
IoTDB> show timeseries root.ln.wf03
Msg: Failed to fetch timeseries root.ln.wf03's metadata because: Timeseries does not exist.
```
It is worth noting that when the path queries does not exist, the system will return no timeseries.
### Precautions
......
......@@ -43,7 +43,7 @@ IoTDB > insert into root.ln.wf02.wt02(timestamp,status) values(1,true)
IoTDB > insert into root.ln.wf02.wt02(timestamp,hardware) values(1, "v1")
```
The above example code inserts the long integer timestamp and the value "true" into the timeseries `root.ln.wf02.wt02.status` and inserts the long integer timestamp and the value "v1" into the timeseries `root.ln.wf02.wt02.hardware`. When the execution is successful, a prompt "execute successfully" will appear to indicate that the data insertion has been completed.
The above example code inserts the long integer timestamp and the value "true" into the timeseries `root.ln.wf02.wt02.status` and inserts the long integer timestamp and the value "v1" into the timeseries `root.ln.wf02.wt02.hardware`. When the execution is successful, cost time will appear to indicate that the data insertion has been completed.
> Note: In IoTDB, TEXT type data can be represented by single and double quotation marks. The insertion statement above uses double quotation marks for TEXT type data. The following example will use single quotation marks for TEXT type data.
......
......@@ -375,9 +375,7 @@ The result is shown below:
The SQL statement is:
```
select * from root.ln.wf01.wt01
where time > 2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000
slimit 1 soffset 1
select * from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 slimit 1 soffset 1
```
which means:
......@@ -394,9 +392,6 @@ The SQL statement is:
```
select max_value(*) from root.ln.wf01.wt01 group by (1d, [2017-11-01T00:00:00, 2017-11-07T23:00:00]) slimit 1 soffset 1
```
which means:
The selected device is ln group wf01 plant wt01 device; the selected timeseries is the second column under this device, i.e., the temperature.
The result is shown below:
......@@ -448,9 +443,7 @@ The result is shown below:
When the parameter N/SN of LIMIT/SLIMIT exceeds the size of the result set, IoTDB will return all the results as expected. For example, the query result of the original SQL statement consists of six rows, and we select the first 100 rows through the LIMIT clause:
```
select status,temperature from root.ln.wf01.wt01
where time > 2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000
limit 100
select status,temperature from root.ln.wf01.wt01 where time > 2017-11-01T00:05:00.000 and time < 2017-11-01T00:12:00.000 limit 100
```
The result is shown below:
......
......@@ -46,7 +46,7 @@ When the updated path does not exist, IoTDB will give the corresponding error pr
```
IoTDB> update root.ln.wf02 set wt02.sta = false where time < now()
error: do not select any existing path
Msg: do not select any existing series
```
### Data Deletion
......@@ -64,7 +64,7 @@ delete from root.ln.wf02.wt02.status where time<=2017-11-01T16:26:00;
```
#### Delete Multiple Timeseries
When both the power supply status and hardware version of the ln group wf02 plant wt02 device before 2017-11-01 16:26:00 need to be deleted, the prefix path with broader meaning (see Section 3.1.6 of this manual) or the path with star can be used to delete the data. The SQL statement for this operation is:
When both the power supply status and hardware version of the ln group wf02 plant wt02 device before 2017-11-01 16:26:00 need to be deleted, [the prefix path with broader meaning or the path with star](/#/Documents/latest/chap2/sec1) can be used to delete the data. The SQL statement for this operation is:
```
delete from root.ln.wf02.wt02 where time <= 2017-11-01T16:26:00;
......@@ -78,5 +78,5 @@ It should be noted that when the deleted path does not exist, IoTDB will give th
```
IoTDB> delete from root.ln.wf03.wt02.status where time < now()
error: TimeSeries does not exist and cannot be delete data
Msg: TimeSeries does not exist and its data cannot be deleted
```
......@@ -92,7 +92,7 @@ At the same time, changes to roles are immediately reflected on all users who ow
#### List of Priviledges Included in the System
<center>**Table 3-8 List of Priviledges Included in the System**
<center>**List of Priviledges Included in the System**
|Priviledge Name|Interpretation|
|:---|:---|
......
......@@ -166,4 +166,4 @@ $IOTDB_HOME/
### Installation by Docker (Dockerfile)
You can build and run a IoTDB docker image by following the guide of [Deployment by Docker](#build-and-use-iotdb-by-dockerfile)
You can build and run a IoTDB docker image by following the guide of [Deployment by Docker](/#/Documents/latest/chap4/sec7)
......@@ -206,7 +206,7 @@ The detail of each variables are as follows:
|Name| data\_dirs |
|:---:|:---|
|Description| The directories of data files. Multiple directories are separated by comma. See the [mult\_dir\_strategy](/#/Documents/latest/chap4/sec2) configuration item for data distribution strategy. The starting directory of the relative path is related to the operating system. It is recommended to use an absolute path. If the path does not exist, the system will automatically create it.|
|Description| The directories of data files. Multiple directories are separated by comma. See the [multi\_dir\_strategy](/#/Documents/latest/chap4/sec2) configuration item for data distribution strategy. The starting directory of the relative path is related to the operating system. It is recommended to use an absolute path. If the path does not exist, the system will automatically create it.|
|Type|String[]|
|Default| data/data |
|Effective|After restart system|
......@@ -229,9 +229,9 @@ The detail of each variables are as follows:
|Default| true |
|Effective|After restart system|
* mult\_dir\_strategy
* multi\_dir\_strategy
|Name| mult\_dir\_strategy |
|Name| multi\_dir\_strategy |
|:---:|:---|
|Description| IoTDB's strategy for selecting directories for TsFile in tsfile_dir. You can use a simple class name or a full name of the class. The system provides the following three strategies: <br>1. SequenceStrategy: IoTDB selects the directory from tsfile\_dir in order, traverses all the directories in tsfile\_dir in turn, and keeps counting;<br>2. MaxDiskUsableSpaceFirstStrategy: IoTDB first selects the directory with the largest free disk space in tsfile\_dir;<br>3. MinFolderOccupiedSpaceFirstStrategy: IoTDB prefers the directory with the least space used in tsfile\_dir;<br>4. <UserDfineStrategyPackage> (user-defined policy)<br>You can complete a user-defined policy in the following ways:<br>1. Inherit the cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy class and implement its own Strategy method;<br>2. Fill in the configuration class with the full class name of the implemented class (package name plus class name, UserDfineStrategyPackage);<br>3. Add the jar file to the project. |
|Type|String|
......@@ -256,7 +256,7 @@ The detail of each variables are as follows:
|Default| 10000 |
|Effective|After restart system|
* flush\_wal\_period\_in\_ms
* force\_wal\_period\_in\_ms
|Name| force\_wal\_period\_in\_ms |
|:---:|:---|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册