This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 26a70b1 correct errors in English documents (#1904)
26a70b1 is described below
commit 26a70b11daa50761f7caaeea9503f0d6208b61ff
Author: ZHOU JESSE <[email protected]>
AuthorDate: Sat Oct 31 15:49:19 2020 +0800
correct errors in English documents (#1904)
---
docs/UserGuide/Architecture/Files.md | 8 +++---
.../UserGuide/Architecture/Writing Data on HDFS.md | 4 +--
docs/UserGuide/Client/Command Line Interface.md | 4 +--
docs/UserGuide/Client/Programming - JDBC.md | 6 ++--
docs/UserGuide/Client/Programming - MQTT.md | 4 +--
docs/UserGuide/Client/Programming - Native API.md | 10 +++----
.../Client/Programming - Other Languages.md | 6 ++--
docs/UserGuide/Client/Programming - TsFile API.md | 22 +++++++--------
docs/UserGuide/Client/Status Codes.md | 2 +-
docs/UserGuide/Comparison/TSDB-Comparison.md | 33 +++++++++++-----------
docs/UserGuide/Concept/Compression.md | 4 +--
.../Concept/Data Model and Terminology.md | 6 ++--
docs/UserGuide/Concept/Data Type.md | 4 +--
docs/UserGuide/Concept/Encoding.md | 6 ++--
docs/UserGuide/Ecosystem Integration/Grafana.md | 16 +++++------
.../UserGuide/Ecosystem Integration/Hive TsFile.md | 26 ++++++++---------
.../Ecosystem Integration/MapReduce TsFile.md | 4 +--
.../UserGuide/Ecosystem Integration/Spark IoTDB.md | 2 +-
.../Ecosystem Integration/Spark TsFile.md | 24 ++++++++--------
.../Get Started/Frequently asked questions.md | 6 ++--
docs/UserGuide/Get Started/Publication.md | 4 +--
docs/UserGuide/Get Started/QuickStart.md | 10 +++----
docs/UserGuide/Operation Manual/Administration.md | 8 +++---
.../DDL Data Definition Language.md | 10 +++----
.../DML Data Manipulation Language.md | 33 +++++++++++-----------
25 files changed, 130 insertions(+), 132 deletions(-)
diff --git a/docs/UserGuide/Architecture/Files.md
b/docs/UserGuide/Architecture/Files.md
index f390843..da7c6d4 100644
--- a/docs/UserGuide/Architecture/Files.md
+++ b/docs/UserGuide/Architecture/Files.md
@@ -21,9 +21,9 @@
# Files
-In IoTDB, there are many kinds of data needed to be stored. In this section,
we will introduce IoTDB's data storage strategy in order to give you an
explicit understanding of IoTDB's data management.
+In IoTDB, there are many kinds of data needed to be stored. This section
introduces IoTDB's data storage strategy to provide you an explicit
understanding of IoTDB's data management.
-The data that IoTDB stores is divided into three categories, namely data
files, system files, and pre-write log files.
+The data in IoTDB is divided into three categories, namely data files, system
files, and pre-write log files.
## Data Files
@@ -43,7 +43,7 @@ Pre-write log files store WAL files. It can be configured
through the `wal_dir`
For a clearer understanding of configuring the data storage directory, we will
give an example in this section.
-All data directory paths involved in storage directory setting are: base_dir,
data_dirs, multi_dir_strategy, and wal_dir, which refer to system files, data
folders, storage strategy, and pre-write log files.
+The data directory path included in storage directory setting are: base_dir,
data_dirs, multi_dir_strategy, and wal_dir, which refer to system files, data
folders, storage strategy, and pre-write log files.
An example of the configuration items are as follows:
@@ -56,5 +56,5 @@ wal_dir= $IOTDB_HOME/data/wal
After setting the configuration, the system will:
* Save all system files in $IOTDB_HOME/data
-* Save TsFile in /data1/data, /data2/data, /data3/data. And the choosing
strategy is `MaxDiskUsableSpaceFirstStrategy`, that is every time data writes
to the disk, the system will automatically select a directory with the largest
remaining disk space to write data.
+* Save TsFile in /data1/data, /data2/data, /data3/data. And the choosing
strategy is `MaxDiskUsableSpaceFirstStrategy`, when data writes to the disk,
the system will automatically select a directory with the largest remaining
disk space to write data.
* Save WAL data in $IOTDB_HOME/data/wal
diff --git a/docs/UserGuide/Architecture/Writing Data on HDFS.md
b/docs/UserGuide/Architecture/Writing Data on HDFS.md
index dbf2e43..14cbf1b 100644
--- a/docs/UserGuide/Architecture/Writing Data on HDFS.md
+++ b/docs/UserGuide/Architecture/Writing Data on HDFS.md
@@ -33,7 +33,7 @@ When you config to store TSFile on HDFS, your data files will
be in distributed
### Config and usage
-If you want to store TSFile and related data files in HDFS, here are the steps:
+To store TSFile and related data files in HDFS, here are the steps:
First, download the source release from website or git clone the repository,
the tag of a released version is release/x.x.x
@@ -153,7 +153,7 @@ Edit user config in `iotdb-engine.properties`. Related
configurations are:
Start server, and Tsfile will be stored on HDFS.
-If you'd like to reset storage file system to local, just edit configuration
`tsfile_storage_fs` to `LOCAL`. In this situation, if you have already had some
data files on HDFS, you should either download them to local and move them to
your config data file folder (`../server/target/iotdb-server-0.10.0/data/data`
by default), or restart your process and import data to IoTDB.
+To reset storage file system to local, just edit configuration
`tsfile_storage_fs` to `LOCAL`. In this situation, if data files are already on
HDFS, you should either download them to local and move them to your config
data file folder (`../server/target/iotdb-server-0.10.0/data/data` by default),
or restart your process and import data to IoTDB.
### Frequent questions
diff --git a/docs/UserGuide/Client/Command Line Interface.md
b/docs/UserGuide/Client/Command Line Interface.md
index 69f82d0..baa127e 100644
--- a/docs/UserGuide/Client/Command Line Interface.md
+++ b/docs/UserGuide/Client/Command Line Interface.md
@@ -28,7 +28,7 @@
- Cli/Shell Parameters
- Cli/shell tool with -e parameter
-IoTDB provides Cli/shell tools for users to interact with IoTDB server in
command lines. This document will show how Cli/shell tool works and what does
it parameters mean.
+IoTDB provides Cli/shell tools for users to interact with IoTDB server in
command lines. This document shows how Cli/shell tool works and the meaning of
its parameters.
> Note: In this document, \$IOTDB\_HOME represents the path of the IoTDB
> installation directory.
@@ -40,7 +40,7 @@ Under the root path of incubator-iotdb:
> mvn clean package -pl cli -am -DskipTests
```
-After build, the IoTDB cli will be at the folder
"cli/target/iotdb-cli-{project.version}".
+After build, the IoTDB cli will be in the folder
"cli/target/iotdb-cli-{project.version}".
## Running Cli/Shell
diff --git a/docs/UserGuide/Client/Programming - JDBC.md
b/docs/UserGuide/Client/Programming - JDBC.md
index 6a6e8d0..26f57ec 100644
--- a/docs/UserGuide/Client/Programming - JDBC.md
+++ b/docs/UserGuide/Client/Programming - JDBC.md
@@ -36,14 +36,14 @@ Execute the following command in the root directory:
mvn clean package -pl jdbc -am -DskipTests
```
-## How to install in local maven repository
+## Install in local maven repository
In root directory:
```
mvn clean install -pl jdbc -am -Dmaven.test.skip=true
```
-## Using IoTDB JDBC with Maven
+## Use IoTDB JDBC with Maven
```
<dependencies>
@@ -60,7 +60,7 @@ mvn clean install -pl jdbc -am -Dmaven.test.skip=true
This chapter provides an example of how to open a database connection, execute
a SQL query, and display the results.
-Requires that you include the packages containing the JDBC classes needed for
database programming.
+It requires including the packages containing the JDBC classes needed for
database programming.
**NOTE: For faster insertion, the insertTablet() in Session is recommended.**
diff --git a/docs/UserGuide/Client/Programming - MQTT.md
b/docs/UserGuide/Client/Programming - MQTT.md
index 5ae4a1e..43a5f9d 100644
--- a/docs/UserGuide/Client/Programming - MQTT.md
+++ b/docs/UserGuide/Client/Programming - MQTT.md
@@ -33,7 +33,7 @@ IoTDB server includes a built-in MQTT service that allows
remote devices send me
## Built-in MQTT Service
The Built-in MQTT Service provide the ability of direct connection to IoTDB
through MQTT. It listen the publish messages from MQTT clients
and then write the data into storage immediately.
-The MQTT topic is corresponding to IoTDB timeseries.
+The MQTT topic corresponds to IoTDB timeseries.
The messages payload can be format to events by `PayloadFormatter` which
loaded by java SPI, and the default implementation is `JSONPayloadFormatter`.
The default `json` formatter support two json format, and the following is an
MQTT message payload example:
@@ -60,7 +60,7 @@ or
## MQTT Configurations
The IoTDB MQTT service load configurations from
`${IOTDB_HOME}/${IOTDB_CONF}/iotdb-engine.properties` by default.
-Configurations are as following:
+Configurations are as follows:
| NAME | DESCRIPTION | DEFAULT |
| ------------- |:-------------:|:------:|
diff --git a/docs/UserGuide/Client/Programming - Native API.md
b/docs/UserGuide/Client/Programming - Native API.md
index b95fc32..58fc6f6 100644
--- a/docs/UserGuide/Client/Programming - Native API.md
+++ b/docs/UserGuide/Client/Programming - Native API.md
@@ -192,10 +192,10 @@ The sample code of using these interfaces is in
example/session/src/main/java/or
## Session Pool for Native API
-We provided a connection pool (`SessionPool) for Native API.
+We provide a connection pool (`SessionPool) for Native API.
Using the interface, you need to define the pool size.
-If you can not get a session connection in 60 secondes, there is a warning log
but the program will hang.
+If you can not get a session connection in 60 seconds, there is a warning log
but the program will hang.
If a session has finished an operation, it will be put back to the pool
automatically.
If a session connection is broken, the session will be removed automatically
and the pool will try
@@ -217,8 +217,8 @@ Or
`example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java`
## 0.9-0.10 Session Interface Updates
-Great changes have taken place in IoTDB session of version 0.10 compared to
version 0.9.
-We added a large numbers of new interfaces, and some old interfaces had new
names or parameters.
+Significant chages are made in IoTDB session of version 0.10 compared to
version 0.9.
+A large numbers of new interfaces are added, and some old interfaces have new
names or parameters.
Besides, all exceptions thrown by session interfaces are changed from
*IoTDBSessionExeception* to *IoTDBConnectionException* or
*StatementExecutionExeception*.
The detailed modifications are listed as follows.
@@ -389,4 +389,4 @@ Create multiple timeseries with a single method. Users can
provide props, tags,
```
boolean checkTimeseriesExists(String path)
```
-Added a method to check whether the specific timeseries exists.
+Add a method to check whether the specific timeseries exists.
diff --git a/docs/UserGuide/Client/Programming - Other Languages.md
b/docs/UserGuide/Client/Programming - Other Languages.md
index 4a98dd8..cfd596d 100644
--- a/docs/UserGuide/Client/Programming - Other Languages.md
+++ b/docs/UserGuide/Client/Programming - Other Languages.md
@@ -54,15 +54,15 @@ pip install apache-iotdb
#### Option 2: use the compile script we provided
If you have added Thrift executable into your path, you may just run
`client-py/compile.sh` or
- `client-py\compile.bat`, or you will have to modify it to set variable
`THRIFT_EXE` to point to
+ `client-py\compile.bat`, otherwise, modify it to set variable `THRIFT_EXE` to
point to
your executable. This will generate thrift sources under folder `target`, you
can add it to your
-`PYTHONPATH` so that you would be able to use the library in your code. Notice
that the scripts
+`PYTHONPATH` so that you will be able to use the library in your code. Note
that the scripts
locate the thrift source file by relative path, so if you move the scripts
else where, they are
no longer valid.
#### Option 3: basic usage of thrift
-Optionally, if you know the basic usage of thrift, you can only download the
thrift source file in
+Optionally, if you know the basic usage of thrift, download the thrift source
file in
`thrift\src\main\thrift\rpc.thrift`, and simply use `thrift -gen py -out
./target/iotdb rpc.thrift`
to generate the python library.
diff --git a/docs/UserGuide/Client/Programming - TsFile API.md
b/docs/UserGuide/Client/Programming - TsFile API.md
index 17b7209..5313757 100644
--- a/docs/UserGuide/Client/Programming - TsFile API.md
+++ b/docs/UserGuide/Client/Programming - TsFile API.md
@@ -21,13 +21,13 @@
# Programming - TsFile API
-TsFile is a file format of Time Series we used in IoTDB. In this section, we
would like to introduce the usage of this file format.
+TsFile is a file format of Time Series used in IoTDB. This session introduces
the usage of this file format.
## TsFile library Installation
There are two ways to use TsFile in your own project.
-* Using as jars:
+* Use as jars:
* Compile the source codes and build to jars
```
@@ -35,9 +35,9 @@ There are two ways to use TsFile in your own project.
cd tsfile/
mvn clean package -Dmaven.test.skip=true
```
- Then, all the jars can be get in folder named `target/`. Import
`target/tsfile-0.10.0-jar-with-dependencies.jar` to your project.
+ Then, all the jars are in folder named `target/`. Import
`target/tsfile-0.10.0-jar-with-dependencies.jar` to your project.
-* Using as a maven dependency:
+* Use as a maven dependency:
Compile source codes and deploy to your local repository in three steps:
@@ -100,14 +100,14 @@ There are two ways to use TsFile in your own project.
This section demonstrates the detailed usages of TsFile.
### Time-series Data
-A time-series is considered as a sequence of quadruples. A quadruple is
defined as (device, measurement, time, value).
+Time-series data is considered as a sequence of quadruples. A quadruple is
defined as (device, measurement, time, value).
-* **measurement**: A physical or formal measurement that a time-series is
taking, e.g., the temperature of a city, the
+* **measurement**: A physical or formal measurement that a time-series data
takes, e.g., the temperature of a city, the
sales number of some goods or the speed of a train at different times. As a
traditional sensor (like a thermometer) also
takes a single measurement and produce a time-series, we will use measurement
and sensor interchangeably below.
-* **device**: A device refers to an entity that is taking several measurements
(producing multiple time-series), e.g.,
-a running train monitors its speed, oil meter, miles it has run, current
passengers each is conveyed to a time-series.
+* **device**: A device refers to an entity that takes several measurements
(producing multiple time-series), e.g.,
+a running train monitors its speed, oil meter, miles it has run, current
passengers each is conveyed to a time-series dataset.
Table 1 illustrates a set of time-series data. The set showed in the following
table contains one device named "device\_1"
with three measurements named "sensor\_1", "sensor\_2" and "sensor\_3".
@@ -126,7 +126,7 @@ with three measurements named "sensor\_1", "sensor\_2" and
"sensor\_3".
</center>
**One Line of Data**: In many industrial applications, a device normally
contains more than one sensor and these sensors
- may have values at a same timestamp, which is called one line of data.
+ may have values at the same timestamp, which is called one line of data.
Formally, one line of data consists of a `device_id`, a timestamp which
indicates the milliseconds since January 1,
1970, 00:00:00, and several data pairs composed of `measurement_id` and
corresponding `value`. All data pairs in one
@@ -144,10 +144,10 @@ device_1, 1490860659000, m1, 10, m2, 12.12
```
-### Writing TsFile
+### Write TsFile
#### Generate a TsFile File.
-A TsFile can be generated by following three steps and the complete code will
be given in the section "Example for writing TsFile".
+A TsFile is generated by the following three steps and the complete code is
given in the section "Example for writing TsFile".
* First, construct a `TsFileWriter` instance.
diff --git a/docs/UserGuide/Client/Status Codes.md
b/docs/UserGuide/Client/Status Codes.md
index bb85281..446f83c 100644
--- a/docs/UserGuide/Client/Status Codes.md
+++ b/docs/UserGuide/Client/Status Codes.md
@@ -21,7 +21,7 @@
# Status Codes
-**Status Code** is introduced in the latest version. For example, as IoTDB
requires registering the time series first before writing data, a kind of
solution is:
+**Status Code** is introduced in the latest version. A sample solution as
IoTDB requires registering the time series first before writing data is:
```
try {
diff --git a/docs/UserGuide/Comparison/TSDB-Comparison.md
b/docs/UserGuide/Comparison/TSDB-Comparison.md
index 8e66f2a..d85b1fc 100644
--- a/docs/UserGuide/Comparison/TSDB-Comparison.md
+++ b/docs/UserGuide/Comparison/TSDB-Comparison.md
@@ -28,7 +28,7 @@ several open sourced time series databases are introduced to
the world.
However, few of them are developed for IoT or IIoT (Industrial IoT) scenario
in particular.
-We select 3 kinds of TSDBs here.
+3 kinds of TSDBs are compared here.
* InfluxDB - Native Time series database
@@ -48,12 +48,12 @@ We select 3 kinds of TSDBs here.
Interface: SQL
Prometheus and Druid are also famous for time series data management.
-However, Prometheus focuses on how to collect data, how to visualize data and
how to alert warnings.
-Druid focuses on how to analyze data with OLAP workload. We omit them here.
+However, Prometheus focuses data collection, data visualization and alert
warnings.
+Druid focuses on data analysis with OLAP workload. We omit them here.
## Comparison
-We compare the above time series database from two aspects: the feature
comparison and the performance
+The above time series databases are compared from two aspects: the feature
comparison and the performance
comparison.
@@ -100,9 +100,9 @@ Legend:
* SQL like:
- * IoTDB and InfluxDB supports SQL like language. In addition, The
integration of IoTDB and Calcite is alomost done (a PR has been submitted),
which means IoTDB will support Standard SQL.
+ * IoTDB and InfluxDB support SQL like language. In addition, the integration
of IoTDB and Calcite is almost done (a PR has been submitted), which means
IoTDB will support Standard SQL soon.
* OpenTSDB and KairosDB only support Rest API, while IoTDB also supports
Rest API (a PR has been submitted).
- * TimescaleDB uses the SQL the same with PG.
+ * TimescaleDB uses the SQL the same as PG.
* Schema:
@@ -131,9 +131,9 @@ Legend:
Actually, in each time series, all these TSDBs support order data by
timestamps.
- However, OpenTSDB and KairosDB do not support order the data from different
timeseries in the time order.
+ However, OpenTSDB and KairosDB do not support order data from different
timeseries in the time order.
- Ok, considering a new case: I have two time series, one is for the wind
speed in wind farm1,
+ Ok, consider a new case: I have two time series, one is for the wind speed
in wind farm1,
another is for the generated energy of wind turbine1 in farm1. If we want to
analyze the relation between the
wind speed and the generated energy, we have to know the values of both at
the same time.
That is to say, we have to align the two time series in the time dimension.
@@ -156,7 +156,7 @@ Legend:
| 2 | generated energy | 13.3 |
| 3 | generated energy | 13.1 |
- Though the second table format does not align data by the time dimension, but
it is easy to be implemented in the client-side,
+ Though the second table format does not align data by the time dimension, it
is easy to be implemented in the client-side,
by just scanning data row by row.
IoTDB supports the first table format (called align by time), InfluxDB
supports the second table format.
@@ -165,7 +165,7 @@ Legend:
Downsampling is for changing the granularity of timeseries, e.g., from 10Hz
to 1Hz, or 1 point per day.
- Different with other systems, IoTDB downsamples data in real time, while
others serialized downsampled data on disk.
+ Different from other systems, IoTDB downsamples data in real time, while
others serialized downsampled data on disk.
That is to say,
* IoTDB supports **adhoc** downsampling data in **arbitrary time**.
@@ -244,7 +244,7 @@ I listed some interesting features that these systems may
differ.
Nowdays, edge computing is more and more popular, which means the edge
device has more powerful computational resources.
Deploying a TSDB on the edge side is useful for managing data on the edge
side and serve for edge computing.
- As OpenTSDB and KairosDB rely another DB, the architecture is a little
heavy. Especially, it is hard to run Hadoop on the edge side.
+ As OpenTSDB and KairosDB rely another DB, the architecture is heavy.
Especially, it is hard to run Hadoop on the edge side.
* Multi-instance Sync:
@@ -262,7 +262,7 @@ I listed some interesting features that these systems may
differ.
* Spark and Hive integration:
- It is very very important that letting big data analysis software to access
the data in database for more complex data analysis.
+ It is very important that letting big data analysis software to access the
data in database for more complex data analysis.
IoTDB supports Hive-connector and Spark connector for better integration.
* Writing data to NFS (HDFS):
@@ -279,7 +279,7 @@ I listed some interesting features that these systems may
differ.
### Performance Comparison
-Ok... If you say, "well, I just want to use the basic features. If so, IoTDB
has little difference with others.".
+Ok... If you say, "well, I just want the basic features. IoTDB has little
difference from others.".
It is somehow right. But, if you consider the performance, you may change your
mind.
#### quick review
@@ -325,10 +325,9 @@ We can see that IoTDB outperforms others.
We provide a benchmarking tool, called IoTDB-benchamrk
(https://github.com/thulab/iotdb-benchmark, you may have to use the dev branch
to compile it),
it supports IoTDB, InfluxDB, KairosDB, TimescaleDB, OpenTSDB. We have a
[article](https://arxiv.org/abs/1901.08304) for comparing these systems using
the benchmark tool.
-When we publishing the article, IoTDB just entered Apache incubator, so we
deleted the performance of IoTDB in that article. But we really did the
comparison, and I will
-disclose some results here.
+When we publish the article, IoTDB just entered Apache incubator, so we
deleted the performance of IoTDB in that article. But after comparison, some
results are presented here.
-- **IoTDB: 0.8.0**. (notice: **IoTDB v0.9 outperforms than v0.8**, we will
update the result once we finish the experiments on v0.9)
+- **IoTDB: 0.8.0**. (notice: **IoTDB v0.9 outperforms than v0.8**, the result
will be updated once experiments on v0.9 are finished)
- InfluxDB: 1.5.1.
- OpenTSDB: 2.3.1 (HBase 1.2.8)
- KairosDB: 1.2.1 (Cassandra 3.11.3)
@@ -380,7 +379,7 @@ But using IoTDB v0.9, the write throughput can reach to 40
million data points p
## Conclusion
-If you are considering to find a TSDB for your IIoT application, then Apache
IoTDB, a new time series, is your best choice.
+If you are considering a TSDB for your IIoT application, Apache IoTDB, a new
time series, is your best choice.
We will update this page once we release new version and finish the
experiments.
We also welcome more contributors correct this article and contribute IoTDB
and reproduce experiments.
diff --git a/docs/UserGuide/Concept/Compression.md
b/docs/UserGuide/Concept/Compression.md
index bab0442..30a8d7f 100644
--- a/docs/UserGuide/Concept/Compression.md
+++ b/docs/UserGuide/Concept/Compression.md
@@ -21,9 +21,9 @@
# Compression
-When the time series is written and encoded as binary data according to the
specified type, IoTDB compresses the data using compression technology to
further improve space storage efficiency. Although both encoding and
compression are designed to improve storage efficiency, encoding techniques are
usually only available for specific data types (e.g., second-order differential
encoding is only suitable for INT32 or INT64 data type, and storing
floating-point numbers requires multiplying t [...]
+When the time series is written and encoded as binary data according to the
specified type, IoTDB compresses the data using compression technology to
further improve space storage efficiency. Although both encoding and
compression are designed to improve storage efficiency, encoding techniques are
usually available only for specific data types (e.g., second-order differential
encoding is only suitable for INT32 or INT64 data type, and storing
floating-point numbers requires multiplying t [...]
-IoTDB allows you to specify the compression method of the column when creating
a time series, and now supports three compression methods:
+IoTDB allows you to specify the compression method of the column when creating
a time series, and supports three compression methods:
* UNCOMPRESSED
diff --git a/docs/UserGuide/Concept/Data Model and Terminology.md
b/docs/UserGuide/Concept/Data Model and Terminology.md
index f07c35e..6be8674 100644
--- a/docs/UserGuide/Concept/Data Model and Terminology.md
+++ b/docs/UserGuide/Concept/Data Model and Terminology.md
@@ -25,13 +25,13 @@ In this section, a power scenario is taken as an example to
illustrate how to cr
Download the attachment:
[IoTDB-SampleData.txt](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt).
-According to the data attribute layers described in [sample
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
we can express it as an attribute hierarchy structure based on the coverage of
attributes and the subordinate relationship between them, as shown in Figure
2.1 below. Its hierarchical relationship is: power group layer - power plant
layer - device layer - sensor layer. ROOT is the root node, and each node of
sensor layer is called a leaf node. In [...]
+According to the data attribute layers described in [sample
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
it is expressed as an attribute hierarchy structure based on the coverage of
attributes and the subordinate relationship between them, as shown in Figure
2.1 below. The hierarchical from top to bottom is: power group layer - power
plant layer - device layer - sensor layer. ROOT is the root node, and each node
of sensor layer is a leaf node. In th [...]
<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"></center>
**Figure 2.1 Attribute hierarchy structure**
-After getting the name of the timeseries, we need to set up the storage group
according to the actual scenario and scale of the data. Because in the scenario
of this chapter data is usually arrived in the unit of groups (i.e., data may
be across electric fields and devices), in order to avoid frequent switching of
IO when writing data, and to meet the user's requirement of physical isolation
of data in the unit of groups, we set the storage group at the group layer.
+After getting the name of the timeseries, we need to set up the storage group
according to the actual scenario and scale of the data. Because in the scenario
of this chapter data is usually arrived in the unit of groups (i.e., data may
be across electric fields and devices), in order to avoid frequent switch of IO
when writing data, and meet the user's requirement of physical isolation of
data in the unit of groups, storage group is set at the group layer.
Here are the basic concepts of the model involved in IoTDB:
@@ -45,7 +45,7 @@ A sensor is a detection equipment in an actual scene, which
can sense the inform
* Storage Group
-Storage groups are used to let users define how to organize and isolate
different time series data on disk. Time series belonging to the same storage
group will be continuously written to the same file in the corresponding
folder. The file may be closed due to user commands or system policies, and
hence the data coming next from these sensors will be stored in a new file in
the same folder. Time series belonging to different storage groups are stored
in different folders.
+Storage groups are used to let users define how to organize and isolate
different time series data on disk. Time series belonging to the same storage
group is continuously written to the same file in the corresponding folder. The
file may be closed due to user commands or system policies, and hence the data
coming next from these sensors will be stored in a new file in the same folder.
Time series belonging to different storage groups are stored in different
folders.
Users can set any prefix path as a storage group. Provided that there are four
time series `root.vehicle.d1.s1`, `root.vehicle.d1.s2`, `root.vehicle.d2.s1`,
`root.vehicle.d2.s2`, two devices `d1` and `d2` under the path `root.vehicle`
may belong to the same owner or the same manufacturer, so d1 and d2 are closely
related. At this point, the prefix path root.vehicle can be designated as a
storage group, which will enable IoTDB to store all devices under it in the
same folder. Newly added [...]
diff --git a/docs/UserGuide/Concept/Data Type.md b/docs/UserGuide/Concept/Data
Type.md
index f62c2a0..15433b0 100644
--- a/docs/UserGuide/Concept/Data Type.md
+++ b/docs/UserGuide/Concept/Data Type.md
@@ -32,8 +32,8 @@ IoTDB supports six data types in total:
The time series of **FLOAT** and **DOUBLE** type can specify
(MAX\_POINT\_NUMBER, see [this page](../Operation%20Manual/SQL%20Reference.md)
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](../Concept/Encoding.md) or [TS\_2DIFF](../Concept/Encoding.md) (Refer to
[Create Timeseries Statement](../Operation%20Manual/SQL%20Reference.md) for
more information on how to specify). If MAX\_P [...]
-* 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).
+* 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, caused by 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, caused by the
limition of function Math.round(double) in Java (Long.MAX_VALUE=9.22E18).
When the data type of data input by the user in the system does not correspond
to the data type of the time series, the system will report type errors. As
shown below, the second-order difference encoding does not support the Boolean
type:
diff --git a/docs/UserGuide/Concept/Encoding.md
b/docs/UserGuide/Concept/Encoding.md
index b17a31d..263c04b 100644
--- a/docs/UserGuide/Concept/Encoding.md
+++ b/docs/UserGuide/Concept/Encoding.md
@@ -21,7 +21,7 @@
# Encoding
-In order to improve the efficiency of data storage, it is necessary to encode
data during data writing, thereby reducing the amount of disk space used. In
the process of writing and reading data, the amount of data involved in the I/O
operations can be reduced to improve performance. IoTDB supports four encoding
methods for different types of data:
+To improve the efficiency of data storage, it is necessary to encode data
during data writing, thereby reducing the amount of disk space used. In the
process of writing and reading data, the amount of data involved in the I/O
operations can be reduced to improve performance. IoTDB supports four encoding
methods for different data types:
* PLAIN
@@ -33,9 +33,9 @@ Second-order differential encoding is more suitable for
encoding monotonically i
* RLE
-Run-length encoding is more suitable for storing sequence with continuous
integer values, and is not recommended for sequence data with most of the time
different values.
+Run-length encoding is suitable for storing sequence with continuous integer
values, and is not recommended for sequence data with most of the time
different values.
-Run-length encoding can also be used to encode floating-point numbers, but it
is necessary to specify reserved decimal digits (MAX\_POINT\_NUMBER, see [this
page](../Operation%20Manual/SQL%20Reference.md) for more information on how to
specify) when creating time series. It is more suitable for storing sequence
data where floating-point values appear continuously, monotonously increasing
or decreasing, and it is not suitable for storing sequence data with high
precision requirements afte [...]
+Run-length encoding can also be used to encode floating-point numbers, while
it is necessary to specify reserved decimal digits (MAX\_POINT\_NUMBER, see
[this page](../Operation%20Manual/SQL%20Reference.md) for more information on
how to specify) when creating time series. It is more suitable to store
sequence data where floating-point values appear continuously, monotonously
increasing or decreasing, and it is not suitable for storing sequence data with
high precision requirements after [...]
> TS_2DIFF and RLE have precision limit for data type of float and double. By
> default, two decimal places are reserved. GORILLA is recommended.
diff --git a/docs/UserGuide/Ecosystem Integration/Grafana.md
b/docs/UserGuide/Ecosystem Integration/Grafana.md
index 4b402b7..eeb55c7 100644
--- a/docs/UserGuide/Ecosystem Integration/Grafana.md
+++ b/docs/UserGuide/Ecosystem Integration/Grafana.md
@@ -37,7 +37,7 @@
<!-- /TOC -->
# IoTDB-Grafana
-Grafana is an open source volume metrics monitoring and visualization tool,
which can be used to display time series data and application runtime analysis.
Grafana supports Graphite, InfluxDB and other major time series databases as
data sources. We have developed IoTDB-Grafana, a connector to show time series
data in IoTDB by reading data from IoTDB and sends to
Grafana(https://grafana.com/). Before you use this tool, make sure Grafana and
IoTDB are correctly installed and started.
+Grafana is an open source volume metrics monitoring and visualization tool,
which can be used to display time series data and application runtime analysis.
Grafana supports Graphite, InfluxDB and other major time series databases as
data sources. IoTDB-Grafana is a connector which we developed to show time
series data in IoTDB by reading data from IoTDB and sends to
Grafana(https://grafana.com/). Before using this tool, make sure Grafana and
IoTDB are correctly installed and started.
## Grafana installation
@@ -51,26 +51,26 @@ Grafana is an open source volume metrics monitoring and
visualization tool, whic
* plugin name: simple-json-datasource
* Download url: https://github.com/grafana/simple-json-datasource
-After downloading this plugin, you can use the grafana-cli tool to install
SimpleJson from the commandline:
+After downloading this plugin, use the grafana-cli tool to install SimpleJson
from the commandline:
```
grafana-cli plugins install grafana-simple-json-datasource
```
-Alternatively, you can manually download the .zip file and unpack it into your
grafana plugins directory.
+Alternatively, manually download the .zip file and unpack it into grafana
plugins directory.
* `{grafana-install-directory}\data\plugins\` (Windows)
* `/var/lib/grafana/plugins` (Linux)
* `/usr/local/var/lib/grafana/plugins`(Mac)
### Start Grafana
-If you use Unix, Grafana will auto start after installing, or you can run
`sudo service grafana-server start` command. See more information
[here](http://docs.grafana.org/installation/debian/).
+If Unix is used, Grafana will start automatically after installing, or you can
run `sudo service grafana-server start` command. See more information
[here](http://docs.grafana.org/installation/debian/).
-If you use Mac and `homebrew` to install Grafana, you can use `homebrew` to
start Grafana.
+If Mac and `homebrew` are used to install Grafana, you can use `homebrew` to
start Grafana.
First make sure homebrew/services is installed by running `brew tap
homebrew/services`, then start Grafana using: `brew services start grafana`.
See more information [here](http://docs.grafana.org/installation/mac/).
-If you use Windows, start Grafana by executing grafana-server.exe, located in
the bin directory, preferably from the command line. See more information
[here](http://docs.grafana.org/installation/windows/).
+If Windows is used, start Grafana by executing grafana-server.exe, located in
the bin directory, preferably from the command line. See more information
[here](http://docs.grafana.org/installation/windows/).
## IoTDB installation
@@ -99,7 +99,7 @@ cd grafana/target
java -jar iotdb-grafana-{version}.war
```
-If you see the following output, iotdb-grafana connector is successfully
activated.
+If following output is displayed, then iotdb-grafana connector is successfully
activated.
```shell
$ java -jar iotdb-grafana-{version}.war
@@ -114,7 +114,7 @@ $ java -jar iotdb-grafana-{version}.war
...
```
-If you need to configure properties, move the
`grafana/src/main/resources/application.properties` to the same directory as
the war package (`grafana/target`)
+To configure properties, move the
`grafana/src/main/resources/application.properties` to the same directory as
the war package (`grafana/target`)
## Explore in Grafana
diff --git a/docs/UserGuide/Ecosystem Integration/Hive TsFile.md
b/docs/UserGuide/Ecosystem Integration/Hive TsFile.md
index 1fac80c..2e2e3a8 100644
--- a/docs/UserGuide/Ecosystem Integration/Hive TsFile.md
+++ b/docs/UserGuide/Ecosystem Integration/Hive TsFile.md
@@ -27,8 +27,8 @@
- System Requirements
- Data Type Correspondence
- Add Dependency For Hive
- - Creating Tsfile-backed Hive tables
- - Querying from Tsfile-backed Hive tables
+ - Create Tsfile-backed Hive tables
+ - Query from Tsfile-backed Hive tables
- Select Clause Example
- Aggregate Clause Example
- What's Next
@@ -82,7 +82,7 @@ Added resources:
[/Users/hive/iotdb/hive-connector/target/hive-connector-0.10.0-
```
-## Creating Tsfile-backed Hive tables
+## Create Tsfile-backed Hive tables
To create a Tsfile-backed table, specify the `serde` as
`org.apache.iotdb.hive.TsFileSerDe`,
specify the `inputformat` as `org.apache.iotdb.hive.TSFHiveInputFormat`,
@@ -90,15 +90,15 @@ and the `outputformat` as
`org.apache.iotdb.hive.TSFHiveOutputFormat`.
Also provide a schema which only contains two fields: `time_stamp` and
`sensor_id` for the table.
`time_stamp` is the time value of the time series
-and `sensor_id` is the name of the sensor you want to extract from the tsfile
to hive such as `sensor_1`.
-The name of the table can be any valid tables names in hive.
+and `sensor_id` is the sensor name to extract from the tsfile to hive such as
`sensor_1`.
+The name of the table can be any valid table names in hive.
-Also provide a location from which hive-connector will pull the most current
data for the table.
+Also a location provided for hive-connector to pull the most current data for
the table.
-The location must be a specific directory, it can be on your local file system
or HDFS if you have set up Hadoop.
+The location should be a specific directory on your local file system or HDFS
to set up Hadoop.
If it is in your local file system, the location should look like
`file:///data/data/sequence/root.baic2.WWS.leftfrontdoor/`
-At last, you should set the `device_id` in `TBLPROPERTIES` to the device name
you want to analyze.
+Last, set the `device_id` in `TBLPROPERTIES` to the device name you want to
analyze.
For example:
@@ -113,8 +113,8 @@ STORED AS
LOCATION '/data/data/sequence/root.baic2.WWS.leftfrontdoor/'
TBLPROPERTIES ('device_id'='root.baic2.WWS.leftfrontdoor.plc1');
```
-In this example we're pulling the data of
`root.baic2.WWS.leftfrontdoor.plc1.sensor_1` from the directory of
`/data/data/sequence/root.baic2.WWS.leftfrontdoor/`.
-This table might result in a description as below:
+In this example, the data of `root.baic2.WWS.leftfrontdoor.plc1.sensor_1` is
pulled from the directory of
`/data/data/sequence/root.baic2.WWS.leftfrontdoor/`.
+This table results in a description as below:
```
hive> describe only_sensor_1;
@@ -125,7 +125,7 @@ Time taken: 0.053 seconds, Fetched: 2 row(s)
```
At this point, the Tsfile-backed table can be worked with in Hive like any
other table.
-## Querying from Tsfile-backed Hive tables
+## Query from Tsfile-backed Hive tables
Before we do any queries, we should set the `hive.input.format` in hive by
executing the following command.
@@ -185,6 +185,6 @@ Time taken: 11.334 seconds, Fetched: 1 row(s)
## What's Next
-We're currently only supporting read operation.
-Writing tables to Tsfiles is under development.
+Only read operation is currently supported.
+Write operation is under development.
diff --git a/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md
b/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md
index 87045d1..50d6949 100644
--- a/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md
+++ b/docs/UserGuide/Ecosystem Integration/MapReduce TsFile.md
@@ -66,7 +66,7 @@ With this connector, you can
TSFInputFormat extract data from tsfile and format them into records of
`MapWritable`.
-Supposing that we want to extract data of the device named `d1` which has
three sensors named `s1`, `s2`, `s3`.
+Suppose that we want to extract data of the device named `d1` which has three
sensors named `s1`, `s2`, `s3`.
`s1`'s type is `BOOLEAN`, `s2`'s type is `DOUBLE`, `s3`'s type is `TEXT`.
@@ -84,7 +84,7 @@ The `MapWritable` struct will be like:
In the Map job of Hadoop, you can get any value you want by key as following:
`mapwritable.get(new Text("s1"))`
-> Note: All the keys in `MapWritable` have type of `Text`.
+> Note: All keys in `MapWritable` are `Text` type.
## Examples
diff --git a/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md
b/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md
index e7047ae..c1d81ed 100644
--- a/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md
+++ b/docs/UserGuide/Ecosystem Integration/Spark IoTDB.md
@@ -57,7 +57,7 @@ df.printSchema()
df.show()
```
-### if you want to partition your rdd, you can do as following
+### To partition rdd:
```
spark-shell --jars
spark-iotdb-connector-0.10.0.jar,iotdb-jdbc-0.10.0-jar-with-dependencies.jar
diff --git a/docs/UserGuide/Ecosystem Integration/Spark TsFile.md
b/docs/UserGuide/Ecosystem Integration/Spark TsFile.md
index 7c34579..a43f892 100644
--- a/docs/UserGuide/Ecosystem Integration/Spark TsFile.md
+++ b/docs/UserGuide/Ecosystem Integration/Spark TsFile.md
@@ -81,7 +81,7 @@ Note:
## 5. Schema Inference
-The way to display TsFile is dependent on the schema. Take the following
TsFile structure as an example: There are three Measurements in the TsFile
schema: status, temperature, and hardware. The basic information of these three
measurements is as follows:
+The way to display TsFile is dependent on the schema. Take the following
TsFile structure as an example: There are three measurements in the TsFile
schema: status, temperature, and hardware. The basic information of these three
measurements is listed:
<center>
<table style="text-align:center">
@@ -92,7 +92,7 @@ The way to display TsFile is dependent on the schema. Take
the following TsFile
</table>
</center>
-The existing data in the TsFile is as follows:
+The existing data in the TsFile are:
<center>
<table style="text-align:center">
@@ -107,7 +107,7 @@ The existing data in the TsFile is as follows:
-The corresponding SparkSQL table is as follows:
+The corresponding SparkSQL table is:
| time | root.ln.wf02.wt02.temperature | root.ln.wf02.wt02.status |
root.ln.wf02.wt02.hardware | root.ln.wf01.wt01.temperature |
root.ln.wf01.wt01.status | root.ln.wf01.wt01.hardware |
|------|-------------------------------|--------------------------|----------------------------|-------------------------------|--------------------------|----------------------------|
@@ -237,7 +237,7 @@ newDf.show
## Appendix A: Old Design of Schema Inference
-The way to display TsFile is related to TsFile Schema. Take the following
TsFile structure as an example: There are three Measurements in the Schema of
TsFile: status, temperature, and hardware. The basic info of these three
Measurements is as follows:
+The way to display TsFile is related to TsFile Schema. Take the following
TsFile structure as an example: There are three measurements in the Schema of
TsFile: status, temperature, and hardware. The basic info of these three
Measurements is:
<center>
<table style="text-align:center">
@@ -249,7 +249,7 @@ The way to display TsFile is related to TsFile Schema. Take
the following TsFile
<span>Basic info of Measurements</span>
</center>
-The existing data in the file is as follows:
+The existing data in the file are:
<center>
<table style="text-align:center">
@@ -263,16 +263,16 @@ The existing data in the file is as follows:
</table>
<span>A set of time-series data</span>
</center>
-There are two ways to show it out:
+There are two ways to show a set of time-series data:
#### the default way
-Two columns will be created to store the full path of the device:
time(LongType) and delta_object(StringType).
+Two columns are created to store the full path of the device: time(LongType)
and delta_object(StringType).
- `time` : Timestamp, LongType
- `delta_object` : Delta_object ID, StringType
-Next, a column is created for each Measurement to store the specific data. The
SparkSQL table structure is as follows:
+Next, a column is created for each Measurement to store the specific data. The
SparkSQL table structure is:
<center>
<table style="text-align:center">
@@ -300,11 +300,11 @@ Next, a column is created for each Measurement to store
the specific data. The S
</center>
-#### unfolding delta_object column
+#### unfold delta_object column
-Expand the device column by "." into multiple columns, ignoring the root
directory "root". Convenient for richer aggregation operations. If the user
wants to use this display way, the parameter "delta\_object\_name" needs to be
set in the table creation statement (refer to Example 5 in Section 5.1 of this
manual), as in this example, parameter "delta\_object\_name" is set to
"root.device.turbine". The number of path layers needs to be one-to-one. At
this point, one column is created for [...]
+Expand the device column by "." into multiple columns, ignoring the root
directory "root". Convenient for richer aggregation operations. To use this
display way, the parameter "delta\_object\_name" is set in the table creation
statement (refer to Example 5 in Section 5.1 of this manual), as in this
example, parameter "delta\_object\_name" is set to "root.device.turbine". The
number of path layers needs to be one-to-one. At this point, one column is
created for each layer of the device pa [...]
-Then The SparkSQL Table Structure is as follow:
+Then SparkSQL Table Structure is as follows:
<center>
<table style="text-align:center">
@@ -331,7 +331,7 @@ Then The SparkSQL Table Structure is as follow:
</table>
</center>
-TsFile-Spark-Connector can display one or more TsFiles as a table in SparkSQL
By SparkSQL. It also allows users to specify a single directory or use
wildcards to match multiple directories. If there are multiple TsFiles, the
union of the measurements in all TsFiles will be retained in the table, and the
measurement with the same name will have the same data type by default. Note
that if there is a situation with the same name but different data types,
TsFile-Spark-Connector will not guar [...]
+TsFile-Spark-Connector displays one or more TsFiles as a table in SparkSQL By
SparkSQL. It also allows users to specify a single directory or use wildcards
to match multiple directories. If there are multiple TsFiles, the union of the
measurements in all TsFiles will be retained in the table, and the measurement
with the same name have the same data type by default. Note that if a situation
with the same name but different data types exists, TsFile-Spark-Connector does
not guarantee the [...]
The writing process is to write a DataFrame as one or more TsFiles. By
default, two columns need to be included: time and delta_object. The rest of
the columns are used as Measurement. If user wants to write the second table
structure back to TsFile, user can set the "delta\_object\_name"
parameter(refer to Section 5.1 of Section 5.1 of this manual).
diff --git a/docs/UserGuide/Get Started/Frequently asked questions.md
b/docs/UserGuide/Get Started/Frequently asked questions.md
index cded543..82c542e 100644
--- a/docs/UserGuide/Get Started/Frequently asked questions.md
+++ b/docs/UserGuide/Get Started/Frequently asked questions.md
@@ -112,7 +112,7 @@ Use IoTDB's Command Line Interface:
IoTDB> show timeseries root
```
-In the result, there will be a statement shows `Total timeseries number`, this
number is the timeseries number in IoTDB.
+In the result, there is a statement shows `Total timeseries number`, this
number is the timeseries number in IoTDB.
In the current version, IoTDB supports querying the number of time series. Use
IoTDB's Command Line Interface:
@@ -133,7 +133,7 @@ Yes. IoTDB has intense integration with Open Source
Ecosystem. IoTDB supports [H
## How does IoTDB handle duplicate points?
-A data point is uniquely identified by a full time series path (e.g.
```root.vehicle.d0.s0```) and timestamp. If you submit a new point with the
same path and timestamp as an existing point, IoTDB will update the value of
this point instead of inserting a new point.
+A data point is uniquely identified by a full time series path (e.g.
```root.vehicle.d0.s0```) and timestamp. If you submit a new point with the
same path and timestamp as an existing point, IoTDB updates the value of this
point instead of inserting a new point.
## How can I tell what type of the specific timeseries?
@@ -159,7 +159,7 @@ IoTDB> show timeseries root.fit.d1.*
## How can I change IoTDB's Cli time display format?
-The default IoTDB's Cli time display format is human readable (e.g.
```1970-01-01T08:00:00.001```), if you want to display time in timestamp type
or other readable format, add parameter ```-disableISO8601``` in start command:
+The default IoTDB's Cli time display format is readable (e.g.
```1970-01-01T08:00:00.001```), if you want to display time in timestamp type
or other readable format, add parameter ```-disableISO8601``` in start command:
```
> $IOTDB_CLI_HOME/sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
> -disableISO8601
diff --git a/docs/UserGuide/Get Started/Publication.md b/docs/UserGuide/Get
Started/Publication.md
index 64f37fb..5040db4 100644
--- a/docs/UserGuide/Get Started/Publication.md
+++ b/docs/UserGuide/Get Started/Publication.md
@@ -21,9 +21,9 @@
# Research Papers
-Apache IoTDB started at Tsinghua University, School of Software. IoTDB is a
database for managing large amount of time series data with columnar storage,
data encoding, pre-computation, and index techniques. It has SQL-like interface
to write millions of data points per second per node and is optimized to get
query results in few seconds over trillions of data points. It can also be
easily integrated with Apache Hadoop MapReduce and Apache Spark for analytics.
+Apache IoTDB starts at Tsinghua University, School of Software. IoTDB is a
database for managing large amount of time series data with columnar storage,
data encoding, pre-computation, and index techniques. It has SQL-like interface
to write millions of data points per second per node and is optimized to get
query results in few seconds over trillions of data points. It can also be
easily integrated with Apache Hadoop MapReduce and Apache Spark for analytics.
-The research papers related are in the following:
+The research papers related are as follows:
* [PISA: An Index for Aggregating Big Time Series
Data](https://dl.acm.org/citation.cfm?id=2983775&dl=ACM&coll=DL), Xiangdong
Huang and Jianmin Wang and Raymond K. Wong and Jinrui Zhang and Chen Wang. CIKM
2016.
* [Matching Consecutive Subpatterns over Streaming Time
Series](https://link.springer.com/chapter/10.1007/978-3-319-96893-3_8), Rong
Kang and Chen Wang and Peng Wang and Yuting Ding and Jianmin Wang. APWeb/WAIM
2018.
diff --git a/docs/UserGuide/Get Started/QuickStart.md b/docs/UserGuide/Get
Started/QuickStart.md
index 2d418b7..058ea39 100644
--- a/docs/UserGuide/Get Started/QuickStart.md
+++ b/docs/UserGuide/Get Started/QuickStart.md
@@ -169,9 +169,9 @@ IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH
DATATYPE=BOOLEAN, ENCODIN
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT,
ENCODING=RLE
```
-In order to query the specific timeseries, we can use SHOW TIMESERIES
\<Path\>. \<Path\> represent the path of the timeseries. Its default value is
null, which means querying all the timeseries in the system(the same as using
"SHOW TIMESERIES root"). Here are the examples:
+To query the specific timeseries, use SHOW TIMESERIES \<Path\>. \<Path\>
represents the path of the timeseries. Its default value is null, which means
querying all the timeseries in the system(the same as using "SHOW TIMESERIES
root"). Here are the examples:
-1. Querying all timeseries in the system:
+1. Query all timeseries in the system:
```
IoTDB> SHOW TIMESERIES
@@ -184,7 +184,7 @@ IoTDB> SHOW TIMESERIES
Total timeseries number = 2
```
-2. Querying a specific timeseries(root.ln.wf01.wt01.status):
+2. Query a specific timeseries(root.ln.wf01.wt01.status):
```
IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
@@ -196,7 +196,7 @@ IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
Total timeseries number = 1
```
-Insert timeseries data is the basic operation of IoTDB, you can use ‘INSERT’
command to finish this. Before inserting you should assign the timestamp and
the suffix path name:
+Insert timeseries data is the basic operation of IoTDB, you can use ‘INSERT’
command to finish this. Before insert you should assign the timestamp and the
suffix path name:
```
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
@@ -260,4 +260,4 @@ Under the root path of iotdb:
> mvn clean package -pl cli -am -DskipTests
```
-After build, the IoTDB cli will be at the folder
"cli/target/iotdb-cli-{project.version}".
\ No newline at end of file
+After build, the IoTDB cli will be in the folder
"cli/target/iotdb-cli-{project.version}".
\ No newline at end of file
diff --git a/docs/UserGuide/Operation Manual/Administration.md
b/docs/UserGuide/Operation Manual/Administration.md
index 979491e..e989ea6 100644
--- a/docs/UserGuide/Operation Manual/Administration.md
+++ b/docs/UserGuide/Operation Manual/Administration.md
@@ -33,7 +33,7 @@ The user is the legal user of the database. A user
corresponds to a unique usern
### Privilege
-The database provides a variety of operations, and not all users can perform
all operations. If a user can perform an operation, the user is said to have
the privilege to perform the operation. privileges can be divided into data
management privilege (such as adding, deleting and modifying data) and
authority management privilege (such as creation and deletion of users and
roles, granting and revoking of privileges, etc.). Data management privilege
often needs a path to limit its effecti [...]
+The database provides a variety of operations, and not all users can perform
all operations. If a user can perform an operation, the user is said to have
the privilege to perform the operation. privileges are divided into data
management privilege (such as adding, deleting and modifying data) and
authority management privilege (such as creation and deletion of users and
roles, granting and revoking of privileges, etc.). Data management privilege
often needs a path to limit its effective [...]
### Role
@@ -45,7 +45,7 @@ There is a default user in IoTDB after the initial
installation: root, and the d
## Privilege Management Operation Examples
-According to the [sample
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
the sample data of IoTDB may belong to different power generation groups such
as ln, sgcc, etc. Different power generation groups do not want others to
obtain their own database data, so we need to have data privilege isolated at
the group layer.
+According to the [sample
data](https://github.com/thulab/iotdb/files/4438687/OtherMaterial-Sample.Data.txt),
the sample data of IoTDB might belong to different power generation groups
such as ln, sgcc, etc. Different power generation groups do not want others to
obtain their own database data, so we need to have data privilege isolated at
the group layer.
### Create User
@@ -127,7 +127,7 @@ At the same time, changes to roles are immediately
reflected on all users who ow
IoTDB specifies that the character length of a username should not be less
than 4, and the username cannot contain spaces.
### Password Restrictions
-IoTDB specifies that the character length of a password should not be less
than 4, and the password cannot contain spaces. The password is encrypted with
MD5.
+IoTDB specifies that the character length of a password should have no less
than 4 character length, and no spaces. The password is encrypted with MD5.
### Role Name Restrictions
-IoTDB specifies that the character length of a role name should not be less
than 4, and the role name cannot contain spaces.
+IoTDB specifies that the character length of a role name should have no less
than 4 character length, and no spaces.
diff --git a/docs/UserGuide/Operation Manual/DDL Data Definition Language.md
b/docs/UserGuide/Operation Manual/DDL Data Definition Language.md
index f7204d3..e83842e 100644
--- a/docs/UserGuide/Operation Manual/DDL Data Definition Language.md
+++ b/docs/UserGuide/Operation Manual/DDL Data Definition Language.md
@@ -32,7 +32,7 @@ IoTDB > set storage group to root.sgcc
We can thus create two storage groups using the above two SQL statements.
-It is worth noting that when the path itself or the parent/child layer of the
path is already set as a storage group, the path is then not allowed to be set
as a storage group. For example, it is not feasible to set `root.ln.wf01` as a
storage group when there exist two storage groups `root.ln` and `root.sgcc`.
The system will give the corresponding error prompt as shown below:
+It is worth noting that when the path itself or the parent/child layer of the
path is already set as a storage group, the path is then not allowed to be set
as a storage group. For example, it is not feasible to set `root.ln.wf01` as a
storage group when two storage groups `root.ln` and `root.sgcc` exist. The
system gives the corresponding error prompt as shown below:
```
IoTDB> set storage group to root.ln.wf01
@@ -73,7 +73,7 @@ IoTDB > create timeseries root.sgcc.wf03.wt01.status with
datatype=BOOLEAN,encod
IoTDB > create timeseries root.sgcc.wf03.wt01.temperature with
datatype=FLOAT,encoding=RLE
```
-It is worth noting that when in the CRATE TIMESERIES statement the encoding
method conflicts with the data type, the system will give the corresponding
error prompt as shown below:
+Notice that when in the CRATE TIMESERIES statement the encoding method
conflicts with the data type, the system gives the corresponding error prompt
as shown below:
```
IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN,
ENCODING=TS_2DIFF
@@ -133,7 +133,7 @@ ALTER timeseries root.turbine.d1.s1 UPSERT ALIAS=newAlias
TAGS(tag3=v3, tag4=v4)
* SHOW LATEST? TIMESERIES prefixPath? showWhereClause? limitClause?
- There are four optional clauses could be added in SHOW TIMESERIES, return
information of time series
+ There are four optional clauses added in SHOW TIMESERIES, return information
of time series
Timeseries information includes: timeseries path, alias of measurement,
storage group it belongs to, data type, encoding type, compression type, tags
and attributes.
@@ -226,7 +226,7 @@ IoTDB > COUNT TIMESERIES root.ln.wf01.wt01.status
Besides, `LEVEL` could be defined to show count the number of timeseries of
each node at the given level in current Metadata Tree. This could be used to
query the number of sensors under each device. The grammar is: `COUNT
TIMESERIES <Path> GROUP BY LEVEL=<INTEGER>`.
-For example, if there are several timeseires (use `show timeseries` to show
all timeseries):
+For example, if there are several timeseries (use `show timeseries` to show
all timeseries):
<center><img style="width:100%; max-width:800px; margin-left:auto;
margin-right:auto; display:block;"
src="https://user-images.githubusercontent.com/19167280/69792072-cdc8a480-1200-11ea-8cec-321fef618a12.png"></center>
Then the Metadata Tree will be as below:
@@ -358,7 +358,7 @@ IoTDB> CLEAR CACHE
## CREATE SNAPSHOT FOR SCHEMA
-To speed up restarting of IoTDB, users could create snapshot of schema and
avoid recovering schema from mlog file.
+To speed up restarting of IoTDB, users can create snapshot of schema and avoid
recovering schema from mlog file.
```
IoTDB> CREATE SNAPSHOT FOR SCHEMA
```
diff --git a/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md
b/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md
index 7b61903..ffc2751 100644
--- a/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md
+++ b/docs/UserGuide/Operation Manual/DML Data Manipulation Language.md
@@ -29,7 +29,7 @@ IoTDB provides users with a variety of ways to insert
real-time data, such as di
This section mainly introduces the use of [INSERT SQL
statement](../Operation%20Manual/SQL%20Reference.md) for real-time data import
in the scenario.
#### Use of INSERT Statements
-The [INSERT SQL statement](../Operation%20Manual/SQL%20Reference.md) statement
can be used to insert data into one or more specified timeseries that have been
created. For each point of data inserted, it consists of a
[timestamp](../Concept/Data%20Model%20and%20Terminology.md) and a sensor
acquisition value (see [Data Type](../Concept/Data%20Type.md)).
+The [INSERT SQL statement](../Operation%20Manual/SQL%20Reference.md) statement
is used to insert data into one or more specified timeseries created. For each
point of data inserted, it consists of a
[timestamp](../Concept/Data%20Model%20and%20Terminology.md) and a sensor
acquisition value (see [Data Type](../Concept/Data%20Type.md)).
In the scenario of this section, take two timeseries
`root.ln.wf02.wt02.status` and `root.ln.wf02.wt02.hardware` as an example, and
their data types are BOOLEAN and TEXT, respectively.
@@ -55,7 +55,7 @@ After inserting the data, we can simply query the inserted
data using the SELECT
IoTDB > select * from root.ln.wf02 where time < 3
```
-The result is shown below. From the query results, it can be seen that the
insertion statements of single column and multi column data are performed
correctly.
+The result is shown below. The query result shows that the insertion
statements of single column and multi column data are performed correctly.
<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/51605021-c2ee1500-1f48-11e9-8f6b-ba9b48875a41.png"></center>
@@ -211,7 +211,7 @@ The GROUP BY statement provides users with three types of
specified parameters:
The actual meanings of the three types of parameters are shown in Figure 5.2
below.
Among them, the parameter 3 is optional.
-Next we will give three typical examples of frequency reduction aggregation:
+There are three typical examples of frequency reduction aggregation:
parameter 3 not specified,
parameter 3 specified,
and value filtering conditions specified.
@@ -230,7 +230,7 @@ select count(status), max_value(temperature) from
root.ln.wf01.wt01 group by ([2
```
which means:
-Since the user does not specify the sliding step length, the GROUP BY
statement will by default set the sliding step same as the time interval which
is `1d`.
+Since the sliding step length is not specified, the GROUP BY statement by
default set the sliding step the same as the time interval which is `1d`.
The fist parameter of the GROUP BY statement above is the display window
parameter, which determines the final display range is [2017-11-01T00:00:00,
2017-11-07T23:00:00).
@@ -558,7 +558,7 @@ This chapter mainly introduces related examples of row and
column control of que
#### Row Control over Query Results
-By using LIMIT and OFFSET clauses, users can control the query results in a
row-related manner. We will demonstrate how to use LIMIT and OFFSET clauses
through the following examples.
+By using LIMIT and OFFSET clauses, users control the query results in a
row-related manner. We demonstrate how to use LIMIT and OFFSET clauses through
the following examples.
* Example 1: basic LIMIT clause
@@ -569,7 +569,7 @@ select status, temperature from root.ln.wf01.wt01 limit 10
```
which means:
-The selected device is ln group wf01 plant wt01 device; the selected
timeseries is "status" and "temperature". The SQL statement requires the first
10 rows of the query result be returned.
+The selected device is ln group wf01 plant wt01 device; the selected
timeseries is "status" and "temperature". The SQL statement requires the first
10 rows of the query result.
The result is shown below:
@@ -599,7 +599,7 @@ select status,temperature from root.ln.wf01.wt01 where time
> 2017-11-01T00:05:0
```
which means:
-The selected device is ln group wf01 plant wt01 device; the selected
timeseries is "status" and "temperature". The SQL statement requires rows 3 to
4 of the status and temperature sensor values between the time point of
"2017-11-01T00:05:00.000" and "2017-11-01T00:12:00.000" be returned (with the
first row numbered as row 0).
+The selected device is ln group wf01 plant wt01 device; the selected
timeseries is "status" and "temperature". The SQL statement requires rows 3 to
4 of the status and temperature sensor values between the time point of
"2017-11-01T00:05:00.000" and "2017-11-01T00:12:00.000" (with the first row
numbered as row 0).
The result is shown below:
@@ -727,7 +727,7 @@ For example:
select s1 as temperature, s2 as speed from root.ln.wf01.wt01;
```
-The result set will be like:
+The result set is:
| Time | temperature | speed |
| ---- | ----------- | ----- |
@@ -735,7 +735,7 @@ The result set will be like:
#### Other ResultSet Format
-In addition, IoTDB supports two another resultset format: 'align by device'
and 'disable align'.
+In addition, IoTDB supports two other result set format: 'align by device' and
'disable align'.
The 'align by device' indicates that the deviceId is considered as a column.
Therefore, there are totally limited columns in the dataset.
@@ -751,7 +751,7 @@ The 'disable align' indicaes that there are 3 columns for
each time series in th
#### Error Handling
-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:
+If the parameter N/SN of LIMIT/SLIMIT exceeds the size of the result set,
IoTDB returns 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
@@ -760,7 +760,7 @@ The result is shown below:
<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/51578187-ad9cca80-1ef7-11e9-897a-83e66a0f3d94.jpg"></center>
-When the parameter N/SN of LIMIT/SLIMIT clause exceeds the allowable maximum
value (N/SN is of type int32), the system will prompt errors. For example,
executing the following SQL statement:
+If the parameter N/SN of LIMIT/SLIMIT clause exceeds the allowable maximum
value (N/SN is of type int32), the system prompts errors. For example,
executing the following SQL statement:
```
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
1234567890123456789
@@ -769,7 +769,7 @@ The SQL statement will not be executed and the
corresponding error prompt is giv
<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/19167280/61517469-e696a180-aa39-11e9-8ca5-42ea991d520e.png"></center>
-When the parameter N/SN of LIMIT/SLIMIT clause is not a positive intege, the
system will prompt errors. For example, executing the following SQL statement:
+If the parameter N/SN of LIMIT/SLIMIT clause is not a positive intege, the
system prompts errors. For example, executing the following SQL statement:
```
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 13.1
@@ -779,7 +779,7 @@ The SQL statement will not be executed and the
corresponding error prompt is giv
<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/19167280/61518094-68d39580-aa3b-11e9-993c-fc73c27540f7.png"></center>
-When the parameter OFFSET of LIMIT clause exceeds the size of the result set,
IoTDB will return an empty result set. For example, executing the following SQL
statement:
+If the parameter OFFSET of LIMIT clause exceeds the size of the result set,
IoTDB will return an empty result set. For example, executing the following SQL
statement:
```
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 2 offset 6
@@ -787,7 +787,7 @@ select status,temperature from root.ln.wf01.wt01 where time
> 2017-11-01T00:05:0
The result is shown below:
<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/51578227-c60ce500-1ef7-11e9-98eb-175beb8d4086.jpg"></center>
-When the parameter SOFFSET of SLIMIT clause is not smaller than the number of
available timeseries, the system will prompt errors. For example, executing the
following SQL statement:
+If the parameter SOFFSET of SLIMIT clause is not smaller than the number of
available timeseries, the system prompts errors. For example, executing the
following SQL statement:
```
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 2
@@ -839,7 +839,7 @@ expressions like : time > XXX, time <= XXX, or two atomic
expressions connected
### 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 or the path with
star](../Concept/Data%20Model%20and%20Terminology.md) can be used to delete the
data. The SQL statement for this operation is:
+If 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](../Concept/Data%20Model%20and%20Terminology.md) 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;
@@ -868,5 +868,4 @@ data folders or convert a timestamp manually to an id using
`timestamp / partiti
` (flooring), and the `partitionInterval` should be in your config (if
time-partitioning is
supported in your version).
-Please notice that this function is experimental and mainly for development,
please use it with
-extreme care.
+Please notice that this function is experimental and mainly for development,
please use it with care.