Skip to content
Permalink
Browse files
Merge branch 'doc-changes' of https://github.com/HTHou/incubator-iotdb
…into HTHou-doc-changes
  • Loading branch information
qiaojialin committed Oct 22, 2019
2 parents 1a9798e + e6ca1f1 commit 00ad5faad7ac3c3d4ecfd7755dabbd0bc9c88ddb
Showing 73 changed files with 2,114 additions and 630 deletions.
@@ -87,7 +87,7 @@ git clone https://github.com/apache/incubator-iotdb.git
* 系统配置模块 (`tsfile-format.properties`, `iotdb-engine.properties`)
* 日志配置模块 (`logback.xml`).

想要了解更多,请浏览[Chapter4: Deployment and Management](https://iotdb.apache.org/#/Documents/0.8.0/chap4/sec1)
想要了解更多,请浏览[Chapter3: Deployment](https://iotdb.apache.org/#/Documents/progress/chap3/sec1)


## IoTDB试用
@@ -280,7 +280,7 @@ IoTDB> quit
IoTDB> exit
```

想要浏览更多IoTDB数据库支持的命令,请浏览[Chapter 5: IoTDB SQL Documentation](https://iotdb.apache.org/#/Documents/0.8.0/chap5/sec1).
想要浏览更多IoTDB数据库支持的命令,请浏览[IoTDB SQL Documentation](https://iotdb.apache.org/#/Documents/progress/chap4/sec7).

### 停止IoTDB

@@ -32,7 +32,7 @@ IoTDB支持:

一共六种数据类型。

其中**FLOAT****DOUBLE**类型的序列,如果编码方式采用[RLE](/#/Documents/0.8.0/chap2/sec3)或[TS_2DIFF](/#/Documents/0.8.0/chap2/sec3)可以指定MAX_POINT_NUMBER,该项为浮点数的小数点后位数,具体指定方式请参见本文[第5.1节](/#/Documents/0.8.0/chap5/sec1),若不指定则系统会根据配置文件`tsfile-format.properties`文件中的[float_precision项](/#/Documents/0.8.0/chap4/sec2)配置。
其中**FLOAT****DOUBLE**类型的序列,如果编码方式采用[RLE](/#/Documents/progress/chap2/sec3)或[TS_2DIFF](/#/Documents/progress/chap2/sec3)可以指定MAX_POINT_NUMBER,该项为浮点数的小数点后位数,具体指定方式请参见本文[第4.7节](/#/Documents/progress/chap4/sec7),若不指定则系统会根据配置文件`tsfile-format.properties`文件中的[float_precision项](/#/Documents/progress/chap3/sec2)配置。

当系统中用户输入的数据类型与该时间序列的数据类型不对应时,系统会提醒类型错误,如下所示,二阶差分不支持布尔类型的编码:

@@ -25,4 +25,4 @@

当时间序列写入并按照指定的类型编码为二进制数据后,IoTDB会使用压缩技术对该数据进行压缩,进一步提升空间存储效率。虽然编码和压缩都旨在提升存储效率,但编码技术通常只适合特定的数据类型(如二阶差分编码只适合与INT32或者INT64编码,存储浮点数需要先将他们乘以10m以转换为整数),然后将它们转换为二进制流。压缩方式(SNAPPY)针对二进制流进行压缩,因此压缩方式的使用不再受数据类型的限制。

IoTDB允许在创建一个时间序列的时候指定该列的压缩方式。现阶段IoTDB现在支持的压缩方式有两种:UNCOMPRESSOR(不压缩)和SNAPPY压缩。压缩方式的指定语法详见本文[5.1节](/#/Documents/0.8.0/chap5/sec1)。
IoTDB允许在创建一个时间序列的时候指定该列的压缩方式。现阶段IoTDB现在支持的压缩方式有两种:UNCOMPRESSOR(不压缩)和SNAPPY压缩。压缩方式的指定语法详见本文[4.7节](/#/Documents/progress/chap4/sec7)。
@@ -19,7 +19,7 @@
-->

# 第4章 系统部署与管理
# 第3章 系统部署

## 系统部署

@@ -118,4 +118,4 @@ $IOTDB_HOME/

### 通过Docker安装 (Dockerfile)

你可以通过[这份指南](/#/Documents/0.8.0/chap4/sec7)编译并运行一个IoTDB docker image。
你可以通过[这份指南](/#/Documents/progress/chap3/sec3)编译并运行一个IoTDB docker image。
@@ -19,7 +19,7 @@
-->

# 第4章 系统部署与管理
# 第3章 系统部署

## 系统配置

@@ -19,6 +19,6 @@
-->

# 第8章: TsFile
# 第3章 系统部署

Coming Soon.
@@ -18,7 +18,6 @@
under the License.
-->

# 第6章: JDBC API
# 第3章: 系统部署

Coming Soon.

This file was deleted.

@@ -0,0 +1,135 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->

<!-- TOC -->
# 第4章 IoTDB操作指南
## 概览
- Cli / Shell工具
- Cli / Shell运行方式
- Cli / Shell运行参数
- Cli / Shell的-e参数

<!-- /TOC -->

# Cli / Shell工具
IOTDB为用户提供Client/Shell工具用于启动客户端和服务端程序。下面介绍每个Client/Shell工具的运行方式和相关参数。
> \$IOTDB\_HOME表示IoTDB的安装目录所在路径。
## Cli / Shell运行方式
安装后的IoTDB中有一个默认用户:`root`,默认密码为`root`。用户可以使用该用户尝试运行IoTDB客户端以测试服务器是否正常启动。客户端启动脚本为$IOTDB_HOME/bin文件夹下的`start-client`脚本。启动脚本时需要指定运行IP和PORT。以下为服务器在本机启动,且用户未更改运行端口号的示例,默认端口为6667。若用户尝试连接远程服务器或更改了服务器运行的端口号,请在-h和-p项处使用服务器的IP和PORT。

Linux系统与MacOS系统启动命令如下:

```
Shell > ./sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
```
Windows系统启动命令如下:

```
Shell > \sbin\start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root
```
回车后即可成功启动客户端。启动后出现如图提示即为启动成功。
```
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _ \
| | .--.|_/ | | \_| | | `. \ | |_) |
| | / .'`\ \ | | | | | | | __'.
_| |_| \__. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version <version>
IoTDB> login successfully
IoTDB>
```
输入`quit``exit`可退出Client结束本次会话,Client输出`quit normally`表示退出成功。

## Cli / Shell运行参数

|参数名|参数类型|是否为必需参数| 说明| 例子 |
|:---|:---|:---|:---|:---|
|-disableIS08601 |没有参数 | 否 |如果设置了这个参数,IoTDB将以数字的形式打印时间戳(timestamp)。|-disableIS08601|
|-h <`host`> |string类型,不需要引号|是|IoTDB客户端连接IoTDB服务器的IP地址。|-h 10.129.187.21|
|-help|没有参数|否|打印IoTDB的帮助信息|-help|
|-p <`port`>|int类型|是|IoTDB连接服务器的端口号,IoTDB默认运行在6667端口。|-p 6667|
|-pw <`password`>|string类型,不需要引号|否|IoTDB连接服务器所使用的密码。如果没有输入密码IoTDB会在Cli端提示输入密码。|-pw root|
|-u <`username`>|string类型,不需要引号|是|IoTDB连接服务器锁使用的用户名。|-u root|
|-maxPRC <`maxPrintRowCount`>|int类型|否|设置IoTDB返回客户端命令行中所显示的最大行数。|-maxPRC 10|
|-e <`execute`> |string类型|否|在不进入客户端输入模式的情况下,批量操作IoTDB|-e "show storage group"|


下面展示一条客户端命令,功能是连接IP为10.129.187.21的主机,端口为6667 ,用户名为root,密码为root,以数字的形式打印时间戳,IoTDB命令行显示的最大行数为10。

Linux系统与MacOS系统启动命令如下:

```
Shell >./sbin/start-cli.sh -h 10.129.187.21 -p 6667 -u root -pw root -disableIS08601 -maxPRC 10
```
Windows系统启动命令如下:

```
Shell > \sbin\start-cli.bat -h 10.129.187.21 -p 6667 -u root -pw root -disableIS08601 -maxPRC 10
```
## Cli / Shell的-e参数
当您想要通过脚本的方式通过Cli / Shell对IoTDB进行批量操作时,可以使用-e参数。通过使用该参数,您可以在不进入客户端输入模式的情况下操作IoTDB。

为了避免SQL语句和其他参数混淆,现在只支持-e参数作为最后的参数使用。

针对Client/Shell工具的-e参数用法如下:

```
Shell > ./sbin/start-cli.sh -h {host} -p {port} -u {user} -pw {password} -e {sql for iotdb}
```

为了更好的解释-e参数的使用,可以参考下面的例子。

假设用户希望对一个新启动的IoTDB进行如下操作:

1.创建名为root.demo的存储组

2.创建名为root.demo.s1的时间序列

3.向创建的时间序列中插入三个数据点

4.查询验证数据是否插入成功

那么通过使用Client/Shell工具的-e参数,可以采用如下的脚本:

```
# !/bin/bash
host=127.0.0.1
port=6667
user=root
pass=root
./sbin/start-cli.sh -h ${host} -p ${port} -u ${user} -pw ${pass} -e "set storage group to root.demo"
./sbin/start-cli.sh -h ${host} -p ${port} -u ${user} -pw ${pass} -e "create timeseries root.demo.s1 WITH DATATYPE=INT32, ENCODING=RLE"
./sbin/start-cli.sh -h ${host} -p ${port} -u ${user} -pw ${pass} -e "insert into root.demo(timestamp,s1) values(1,10)"
./sbin/start-cli.sh -h ${host} -p ${port} -u ${user} -pw ${pass} -e "insert into root.demo(timestamp,s1) values(2,11)"
./sbin/start-cli.sh -h ${host} -p ${port} -u ${user} -pw ${pass} -e "insert into root.demo(timestamp,s1) values(3,12)"
./sbin/start-cli.sh -h ${host} -p ${port} -u ${user} -pw ${pass} -e "select s1 from root.demo"
```

打印出来的结果显示在下图,通过这种方式进行的操作与客户端的输入模式以及通过JDBC进行操作结果是一致的。

![img](https://issues.apache.org/jira/secure/attachment/12976042/12976042_image-2019-07-27-15-47-12-045.png)

需要特别注意的是,在脚本中使用-e参数时要对特殊字符进行转义。
@@ -19,15 +19,22 @@
-->

# 第3章 IoTDB操作指南
# 第4章 IoTDB操作指南

## 样例数据

我们为您提供一份简化的[样例数据](https://github.com/apache/incubator-iotdb/blob/master/docs/Documentation/OtherMaterial-Sample%20Data.txt)。

下载文件: [IoTDB-SampleData.txt](https://raw.githubusercontent.com/apache/incubator-iotdb/master/docs/Documentation/OtherMaterial-Sample%20Data.txt).


## 数据模型选用与创建

在向IoTDB导入数据之前,首先要根据[样例数据](/#/Documents/0.8.0/chap3/sec1)选择合适的数据存储模型,然后使用[SET STORAGE GROUP](/#/Documents/0.8.0/chap5/sec1)语句和[CREATE TIMESERIES](/#/Documents/0.8.0/chap5/sec1)语句设置存储组,并创建时间序列。
在向IoTDB导入数据之前,首先要根据样例数据选择合适的数据存储模型,然后使用[SET STORAGE GROUP](/#/Documents/progress/chap4/sec7)语句和[CREATE TIMESERIES](/#/Documents/progress/chap4/sec7)语句设置存储组,并创建时间序列。

### 选用存储模型

根据本文描述的[数据](/#/Documents/0.8.0/chap3/sec1)属性层级,按照属性涵盖范围以及它们之间的从属关系,我们可将其表示为如下图3.1的属性层级组织结构,其层级关系为:集团层-电场层-设备层-传感器层。其中ROOT为根节点,传感器层的每一个节点称为叶子节点。在使用IoTDB的过程中,您可以直接将由ROOT节点到每一个叶子节点路径上的属性用“.”连接,将其作为一个IoTDB的时间序列的名称。图3.1中最左侧的路径可以生成一个名为`ROOT.ln.wf01.wt01.status`的时间序列。
根据本文描述的[数据](https://github.com/apache/incubator-iotdb/blob/master/docs/Documentation/OtherMaterial-Sample%20Data.txt)属性层级,按照属性涵盖范围以及它们之间的从属关系,我们可将其表示为如下图3.1的属性层级组织结构,其层级关系为:集团层-电场层-设备层-传感器层。其中ROOT为根节点,传感器层的每一个节点称为叶子节点。在使用IoTDB的过程中,您可以直接将由ROOT节点到每一个叶子节点路径上的属性用“.”连接,将其作为一个IoTDB的时间序列的名称。图3.1中最左侧的路径可以生成一个名为`ROOT.ln.wf01.wt01.status`的时间序列。

<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/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg">

@@ -55,7 +62,7 @@ Msg: org.apache.iotdb.exception.MetadataErrorException: org.apache.iotdb.excepti

### 查看存储组

在存储组创建后,我们可以使用[SHOW STORAGE GROUP](/#/Documents/0.8.0/chap5/sec1)语句来查看所有的存储组,SQL语句如下所示:
在存储组创建后,我们可以使用[SHOW STORAGE GROUP](/#/Documents/progress/chap4/sec7)语句来查看所有的存储组,SQL语句如下所示:

```
IoTDB> show storage group
@@ -83,7 +90,7 @@ IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODIN
error: encoding TS_2DIFF does not support BOOLEAN
```

详细的数据类型与编码方式的对应列表请参见[编码方式](/#/Documents/0.8.0/chap2/sec3)。
详细的数据类型与编码方式的对应列表请参见[编码方式](/#/Documents/progress/chap2/sec3)。

### 查看时间序列

@@ -107,8 +114,8 @@ IoTDB> show timeseries root.ln

### 注意事项

0.7.0版本对用户操作的数据规模进行一些限制
当前版本对用户操作的数据规模进行一些限制

限制1:假设运行时IoTDB分配到的JVM内存大小为p,用户自定义的每次将内存中的数据写入到磁盘时的大小([group_size_in_byte](/#/Documents/0.8.0/chap4/sec2))为q。存储组的数量不能超过p/q。
限制1:假设运行时IoTDB分配到的JVM内存大小为p,用户自定义的每次将内存中的数据写入到磁盘时的大小([group_size_in_byte](/#/Documents/progress/chap3/sec2))为q。存储组的数量不能超过p/q。

限制2:时间序列的数量不超过运行时IoTDB分配到的JVM内存与20KB的比值。
@@ -19,7 +19,7 @@
-->

# 第3章 IoTDB操作指南
# 第4章 IoTDB操作指南

## 数据接入
### 历史数据导入
@@ -28,12 +28,12 @@

### 实时数据接入

IoTDB为用户提供多种插入实时数据的方式,例如在[Cli/Shell工具](/#/Tools/Cli)中直接输入插入数据的[INSERT语句](/#/Documents/0.8.0/chap5/sec1),或使用Java API(标准[Java JDBC](/#/Documents/0.8.0/chap6/sec1)接口)单条或批量执行插入数据的[INSERT语句](/#/Documents/0.8.0/chap5/sec1)。
IoTDB为用户提供多种插入实时数据的方式,例如在[Cli/Shell工具](/#/Documents/progress/chap4/sec1)中直接输入插入数据的[INSERT语句](/#/Documents/progress/chap4/sec7),或使用Java API(标准[Java JDBC](/#/Documents/progress/chap6/sec1)接口)单条或批量执行插入数据的[INSERT语句](/#/Documents/progress/chap4/sec7)。

本节主要为您介绍实时数据接入的[INSERT语句](/#/Documents/0.8.0/chap5/sec1)在场景中的实际使用示例,有关INSERT SQL语句的详细语法请参见本文[INSERT语句](/#/Documents/0.8.0/chap5/sec1)节。
本节主要为您介绍实时数据接入的[INSERT语句](/#/Documents/progress/chap4/sec7)在场景中的实际使用示例,有关INSERT SQL语句的详细语法请参见本文[INSERT语句](/#/Documents/progress/chap4/sec7)节。

#### 使用INSERT语句
使用[INSERT语句](/#/Documents/0.8.0/chap5/sec1)可以向指定的已经创建的一条或多条时间序列中插入数据。对于每一条数据,均由一个时间戳类型的[时间戳](/#/Documents/0.8.0/chap2/sec1)和一个[数值类型](/#/Documents/0.8.0/chap2/sec2)的传感器采集值组成。
使用[INSERT语句](/#/Documents/progress/chap4/sec7)可以向指定的已经创建的一条或多条时间序列中插入数据。对于每一条数据,均由一个时间戳类型的[时间戳](/#/Documents/progress/chap2/sec1)和一个[数值或布尔值、字符串类型](/#/Documents/progress/chap2/sec2)的传感器采集值组成。

在本节的场景实例下,以其中的两个时间序列`root.ln.wf02.wt02.status``root.ln.wf02.wt02.hardware`为例 ,它们的数据类型分别为BOOLEAN和TEXT。

0 comments on commit 00ad5fa

Please sign in to comment.