blob: f87a647558c883aaf824b1e031bb8f81534ad41e [file] [log] [blame] [view]
<!--
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.
-->
# Tag Schema Region
`TagSchemaRegion` is an implementation of `SchemaRegion`
<pre>
_____ _____ _ ______ _
|_ _| / ___| | | | ___ \ (_)
| | __ _ __ _ \ `--. ___| |__ ___ _ __ ___ __ _ | |_/ /___ __ _ _ ___ _ __
| |/ _` |/ _` | `--. \/ __| '_ \ / _ \ '_ ` _ \ / _` | | // _ \/ _` | |/ _ \| '_ \
| | (_| | (_| | /\__/ / (__| | | | __/ | | | | | (_| | | |\ \ __/ (_| | | (_) | | | |
\_/\__,_|\__, | \____/ \___|_| |_|\___|_| |_| |_|\__,_| \_| \_\___|\__, |_|\___/|_| |_|
__/ | __/ |
|___/ |___/ > version 1.0.0
</pre>
# How To Use
Firstly, you should package **schema-engine-tag** by the following command:
```shell
mvn clean package -pl schema-engine-tag -am -DskipTests
```
After that, you can get a **conf** directory and a **lib** directory in
schema-engine-tag/target/schema-engine-tag. Copy the file in the conf directory to the conf directory of server,
and copy the files in the lib directory to the lib directory of server.
Then, open the **iotdb-datanode.properties** in the conf directory of server, and set the `schema_engine_mode` to
**Tag**, set the `enable_id_table` to **true**. Restart the IoTDB, the system will use `TagSchemaRegion` to manage
the metadata.
## Use Cli
IoTDB offers different ways to interact with server, here we introduce the basic steps of using Cli tool to insert and query data.
The command line cli is interactive, so you should see the welcome logo and statements if everything is ready:
```sql
---------------------
Starting IoTDB Cli
---------------------
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _ \
| | .--.|_/ | | \_| | | `. \ | |_) |
| | / .'`\ \ | | | | | | | __'.
_| |_| \__. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version 1.0.0
IoTDB> login successfully
```
### create timeseries
- create timeseries
```sql
IoTDB> create timeseries root.ln.tag1.a.tag2.b.status with datatype=BOOLEAN,encoding=PLAIN
Msg: The statement is executed successfully.
```
- create aligned timeseries
```sql
IoTDB> CREATE ALIGNED TIMESERIES root.ln.tag1.a.tag2.c(latitude FLOAT encoding=PLAIN compressor=SNAPPY, longitude FLOAT encoding=PLAIN compressor=SNAPPY)
Msg: The statement is executed successfully.
```
### show timeserie
- point query
enter a full path
```sql
IoTDB> show timeseries root.ln.tag2.c.tag1.a
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias|database|dataType|encoding|compression|tags|attributes|
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
| root.ln.tag1.a.tag2.c.latitude| null| root.ln| FLOAT| PLAIN| SNAPPY|null| null|
|root.ln.tag1.a.tag2.c.longitude| null| root.ln| FLOAT| PLAIN| SNAPPY|null| null|
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
```
- batch query
paths ending in ".**" indicate batch query
```sql
IoTDB> show timeseries root.ln.tag1.a.**
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias|database|dataType|encoding|compression|tags|attributes|
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
| root.ln.tag1.a.tag2.b.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
| root.ln.tag1.a.tag2.c.latitude| null| root.ln| FLOAT| PLAIN| SNAPPY|null| null|
|root.ln.tag1.a.tag2.c.longitude| null| root.ln| FLOAT| PLAIN| SNAPPY|null| null|
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
IoTDB> show timeseries root.ln.tag2.c.**
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias|database|dataType|encoding|compression|tags|attributes|
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
| root.ln.tag1.a.tag2.c.latitude| null| root.ln| FLOAT| PLAIN| SNAPPY|null| null|
|root.ln.tag1.a.tag2.c.longitude| null| root.ln| FLOAT| PLAIN| SNAPPY|null| null|
+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+
IoTDB> show timeseries root.ln.tag2.b.**
+----------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias|database|dataType|encoding|compression|tags|attributes|
+----------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.tag1.a.tag2.b.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
+----------------------------+-----+-------------+--------+--------+-----------+----+----------+
```
### insert
- insert a single column of data
```sql
IoTDB> insert into root.ln.tag2.d(timestamp,status) values(1,true)
Msg: The statement is executed successfully.
IoTDB> insert into root.ln.tag2.d(timestamp,status) values(2,false)
Msg: The statement is executed successfully.
IoTDB> insert into root.ln.tag2.d(timestamp,status) values(3,true)
Msg: The statement is executed successfully.
IoTDB> insert into root.ln.tag1.a.tag2.d(timestamp,status) values(1,true)
Msg: The statement is executed successfully.
```
- insert alignment data
```sql
IoTDB> insert into root.sg1.tag1.a(time, s1, s2) aligned values(2, 2, 2), (3, 3, 3)
Msg: The statement is executed successfully.
```
### select
- point query
```sql
IoTDB> select * from root.sg1.tag1.a
+-----------------------------+------------------+------------------+
| Time|root.sg1.tag1.a.s1|root.sg1.tag1.a.s2|
+-----------------------------+------------------+------------------+
|1970-01-01T08:00:00.002+08:00| 2.0| 2.0|
|1970-01-01T08:00:00.003+08:00| 3.0| 3.0|
+-----------------------------+------------------+------------------+
```
- align by device
```sql
IoTDB> select * from root.sg1.tag1.a align by device
+-----------------------------+---------------+---+---+
| Time| Device| s1| s2|
+-----------------------------+---------------+---+---+
|1970-01-01T08:00:00.002+08:00|root.sg1.tag1.a|2.0|2.0|
|1970-01-01T08:00:00.003+08:00|root.sg1.tag1.a|3.0|3.0|
+-----------------------------+---------------+---+---+
```
- batch query
```sql
IoTDB> select status from root.ln.tag2.d.** where time < 2017-11-01T00:08:00.000
+-----------------------------+----------------------------+---------------------+
| Time|root.ln.tag1.a.tag2.d.status|root.ln.tag2.d.status|
+-----------------------------+----------------------------+---------------------+
|1970-01-01T08:00:00.001+08:00| true| true|
|1970-01-01T08:00:00.002+08:00| null| false|
|1970-01-01T08:00:00.003+08:00| null| true|
+-----------------------------+----------------------------+---------------------+
```