| <!-- |
| |
| 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. |
| |
| --> |
| |
| # Node Management |
| ## Show Child Paths |
| |
| ``` |
| SHOW CHILD PATHS pathPattern |
| ``` |
| |
| Return all child paths and their node types of all the paths matching pathPattern. |
| |
| node types: ROOT -> DB INTERNAL -> DATABASE -> INTERNAL -> DEVICE -> TIMESERIES |
| |
| |
| Example: |
| |
| * return the child paths of root.ln:show child paths root.ln |
| |
| ``` |
| +------------+----------+ |
| | child paths|node types| |
| +------------+----------+ |
| |root.ln.wf01| INTERNAL| |
| |root.ln.wf02| INTERNAL| |
| +------------+----------+ |
| Total line number = 2 |
| It costs 0.002s |
| ``` |
| |
| > get all paths in form of root.xx.xx.xx:show child paths root.xx.xx |
| |
| ## Show Child Nodes |
| |
| ``` |
| SHOW CHILD NODES pathPattern |
| ``` |
| |
| Return all child nodes of the pathPattern. |
| |
| Example: |
| |
| * return the child nodes of root:show child nodes root |
| |
| ``` |
| +------------+ |
| | child nodes| |
| +------------+ |
| | ln| |
| +------------+ |
| ``` |
| |
| * return the child nodes of root.ln:show child nodes root.ln |
| |
| ``` |
| +------------+ |
| | child nodes| |
| +------------+ |
| | wf01| |
| | wf02| |
| +------------+ |
| ``` |
| |
| ## Count Nodes |
| |
| IoTDB is able to use `COUNT NODES <PathPattern> LEVEL=<INTEGER>` to count the number of nodes at |
| the given level in current Metadata Tree considering a given pattern. IoTDB will find paths that |
| match the pattern and counts distinct nodes at the specified level among the matched paths. |
| This could be used to query the number of devices with specified measurements. The usage are as |
| follows: |
| |
| ``` |
| IoTDB > COUNT NODES root.** LEVEL=2 |
| IoTDB > COUNT NODES root.ln.** LEVEL=2 |
| IoTDB > COUNT NODES root.ln.wf01.** LEVEL=3 |
| IoTDB > COUNT NODES root.**.temperature LEVEL=3 |
| ``` |
| |
| As for the above mentioned example and Metadata tree, you can get following results: |
| |
| ``` |
| +------------+ |
| |count(nodes)| |
| +------------+ |
| | 4| |
| +------------+ |
| Total line number = 1 |
| It costs 0.003s |
| |
| +------------+ |
| |count(nodes)| |
| +------------+ |
| | 2| |
| +------------+ |
| Total line number = 1 |
| It costs 0.002s |
| |
| +------------+ |
| |count(nodes)| |
| +------------+ |
| | 1| |
| +------------+ |
| Total line number = 1 |
| It costs 0.002s |
| |
| +------------+ |
| |count(nodes)| |
| +------------+ |
| | 2| |
| +------------+ |
| Total line number = 1 |
| It costs 0.002s |
| ``` |
| |
| > Note: The path of timeseries is just a filter condition, which has no relationship with the definition of level. |
| |
| ## Show Devices |
| |
| * SHOW DEVICES pathPattern? (WITH DATABASE)? devicesWhereClause? limitClause? |
| |
| Similar to `Show Timeseries`, IoTDB also supports two ways of viewing devices: |
| |
| * `SHOW DEVICES` statement presents all devices' information, which is equal to `SHOW DEVICES root.**`. |
| * `SHOW DEVICES <PathPattern>` statement specifies the `PathPattern` and returns the devices information matching the pathPattern and under the given level. |
| * `WHERE` condition supports `DEVICE contains 'xxx'` to do a fuzzy query based on the device name. |
| |
| SQL statement is as follows: |
| |
| ``` |
| IoTDB> show devices |
| IoTDB> show devices root.ln.** |
| IoTDB> show devices root.ln.** where device contains 't' |
| ``` |
| |
| You can get results below: |
| |
| ``` |
| +-------------------+---------+ |
| | devices|isAligned| |
| +-------------------+---------+ |
| | root.ln.wf01.wt01| false| |
| | root.ln.wf02.wt02| false| |
| |root.sgcc.wf03.wt01| false| |
| | root.turbine.d1| false| |
| +-------------------+---------+ |
| Total line number = 4 |
| It costs 0.002s |
| |
| +-----------------+---------+ |
| | devices|isAligned| |
| +-----------------+---------+ |
| |root.ln.wf01.wt01| false| |
| |root.ln.wf02.wt02| false| |
| +-----------------+---------+ |
| Total line number = 2 |
| It costs 0.001s |
| ``` |
| |
| `isAligned` indicates whether the timeseries under the device are aligned. |
| |
| To view devices' information with database, we can use `SHOW DEVICES WITH DATABASE` statement. |
| |
| * `SHOW DEVICES WITH DATABASE` statement presents all devices' information with their database. |
| * `SHOW DEVICES <PathPattern> WITH DATABASE` statement specifies the `PathPattern` and returns the |
| devices' information under the given level with their database information. |
| |
| SQL statement is as follows: |
| |
| ``` |
| IoTDB> show devices with database |
| IoTDB> show devices root.ln.** with database |
| ``` |
| |
| You can get results below: |
| |
| ``` |
| +-------------------+-------------+---------+ |
| | devices| database|isAligned| |
| +-------------------+-------------+---------+ |
| | root.ln.wf01.wt01| root.ln| false| |
| | root.ln.wf02.wt02| root.ln| false| |
| |root.sgcc.wf03.wt01| root.sgcc| false| |
| | root.turbine.d1| root.turbine| false| |
| +-------------------+-------------+---------+ |
| Total line number = 4 |
| It costs 0.003s |
| |
| +-----------------+-------------+---------+ |
| | devices| database|isAligned| |
| +-----------------+-------------+---------+ |
| |root.ln.wf01.wt01| root.ln| false| |
| |root.ln.wf02.wt02| root.ln| false| |
| +-----------------+-------------+---------+ |
| Total line number = 2 |
| It costs 0.001s |
| ``` |
| |
| ## Count Devices |
| |
| * COUNT DEVICES /<PathPattern/> |
| |
| The above statement is used to count the number of devices. At the same time, it is allowed to specify `PathPattern` to count the number of devices matching the `PathPattern`. |
| |
| SQL statement is as follows: |
| |
| ``` |
| IoTDB> show devices |
| IoTDB> count devices |
| IoTDB> count devices root.ln.** |
| ``` |
| |
| You can get results below: |
| |
| ``` |
| +-------------------+---------+ |
| | devices|isAligned| |
| +-------------------+---------+ |
| |root.sgcc.wf03.wt03| false| |
| | root.turbine.d1| false| |
| | root.ln.wf02.wt02| false| |
| | root.ln.wf01.wt01| false| |
| +-------------------+---------+ |
| Total line number = 4 |
| It costs 0.024s |
| |
| +--------------+ |
| |count(devices)| |
| +--------------+ |
| | 4| |
| +--------------+ |
| Total line number = 1 |
| It costs 0.004s |
| |
| +--------------+ |
| |count(devices)| |
| +--------------+ |
| | 2| |
| +--------------+ |
| Total line number = 1 |
| It costs 0.004s |
| ``` |