| <!-- | |
| 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. | |
| --> | |
| # Session And TsFile API | |
| When using the Session and TsFile APIs, if the method you call requires parameters such as measurement, device, database, path in the form of String, **please ensure that the parameters passed in the input string is the same as when using the SQL statement**, here are some examples to help you understand. Code example could be found at: `example/session/src/main/java/org/apache/iotdb/SyntaxConventionRelatedExample.java` | |
| 1. Take creating a time series createTimeseries as an example: | |
| ```java | |
| public void createTimeseries( | |
| String path, | |
| TSDataType dataType, | |
| TSEncoding encoding, | |
| CompressionType compressor) | |
| throws IoTDBConnectionException, StatementExecutionException; | |
| ``` | |
| If you wish to create the time series root.sg.a, root.sg.\`a.\`\`"b\`, root.sg.\`111\`, the SQL statement you use should look like this: | |
| ```sql | |
| create timeseries root.sg.a with datatype=FLOAT,encoding=PLAIN,compressor=SNAPPY; | |
| # node names contain special characters, each node in the time series is ["root","sg","a.`\"b"] | |
| create timeseries root.sg.`a.``"b` with datatype=FLOAT,encoding=PLAIN,compressor=SNAPPY; | |
| # node names are pure numbers | |
| create timeseries root.sg.`111` with datatype=FLOAT,encoding=PLAIN,compressor=SNAPPY; | |
| ``` | |
| When you call the createTimeseries method, you should assign the path string as follows to ensure that the content of the path string is the same as when using SQL: | |
| ```java | |
| // timeseries root.sg.a | |
| String path = "root.sg.a"; | |
| // timeseries root.sg.`a.``"b` | |
| String path = "root.sg.`a.``\"b`"; | |
| // timeseries root.sg.`111` | |
| String path = "root.sg.`111`"; | |
| ``` | |
| 2. Take inserting data insertRecord as an example: | |
| ```java | |
| public void insertRecord( | |
| String deviceId, | |
| long time, | |
| List<String> measurements, | |
| List<TSDataType> types, | |
| Object... values) | |
| throws IoTDBConnectionException, StatementExecutionException; | |
| ``` | |
| If you want to insert data into the time series root.sg.a, root.sg.\`a.\`\`"b\`, root.sg.\`111\`, the SQL statement you use should be as follows: | |
| ```sql | |
| insert into root.sg(timestamp, a, `a.``"b`, `111`) values (1, 2, 2, 2); | |
| ``` | |
| When you call the insertRecord method, you should assign deviceId and measurements as follows: | |
| ```java | |
| // deviceId is root.sg | |
| String deviceId = "root.sg"; | |
| // measurements | |
| String[] measurements = new String[]{"a", "`a.``\"b`", "`111`"}; | |
| List<String> measurementList = Arrays.asList(measurements); | |
| ``` | |
| 3. Take executeRawDataQuery as an example: | |
| ```java | |
| public SessionDataSet executeRawDataQuery( | |
| List<String> paths, | |
| long startTime, | |
| long endTime) | |
| throws StatementExecutionException, IoTDBConnectionException; | |
| ``` | |
| If you wish to query the data of the time series root.sg.a, root.sg.\`a.\`\`"b\`, root.sg.\`111\`, the SQL statement you use should be as follows : | |
| ```sql | |
| select a from root.sg | |
| # node name contains special characters | |
| select `a.``"b` from root.sg; | |
| # node names are pure numbers | |
| select `111` from root.sg | |
| ``` | |
| When you call the executeRawDataQuery method, you should assign paths as follows: | |
| ```java | |
| // paths | |
| String[] paths = new String[]{"root.sg.a", "root.sg.`a.``\"b`", "root.sg.`111`"}; | |
| List<String> pathList = Arrays.asList(paths); | |
| ``` |