Legacy version are available here: https://archive.apache.org/dist/iotdb/
# Linux > sudo sysctl -w net.core.somaxconn=65535 # FreeBSD or Darwin > sudo sysctl -w kern.ipc.somaxconn=65535
After we release version 1.0, how to upgrade from v.13.x to v1.0.x?
TsDataType
with Type
, and replace org .apache.iotdb.tsfile.utils.Binary
with org.apache.iotdb.udf.api.type.Binary
, then redo the packaging and loading process.In previous versions of syntax conventions, we introduced some ambiguity to maintain compatibility. To avoid ambiguity, we have designed new syntax conventions, and this chapter will explain the issues with the old syntax conventions and why we made the change.
In version 0.13 and earlier, identifiers (including path node names) that are not quoted with backquotes are allowed to be pure numbers(Pure numeric path node names need to be enclosed in backquotes in the SELECT
clause), and are allowed to contain some special characters. In version 1.0, identifiers that are not quoted with backquotes are not allowed to be pure numbers and only allowed to contain letters, Chinese characters, and underscores.
In previous versions of syntax conventions, when do you need to add quotation marks to the node name, and the rules for using single and double quotation marks or backquotes are complicated. We have unified usage of quotation marks in the new syntax conventions. For details, please refer to the relevant chapters of this document.
In previous versions of syntax conventions, path node names were defined as identifiers, but when the path separator . was required in the path node name, single or double quotes were required. This goes against the rule that identifiers are quoted using backquotes.
# In the previous syntax convention, if you need to create a time series root.sg.`www.baidu.com`, you need to use the following statement: create root.sg.'www.baidu.com' with datatype=BOOLEAN, encoding=PLAIN # The time series created by this statement is actually root.sg.'www.baidu.com', that is, the quotation marks are stored together. The three nodes of the time series are {"root","sg","'www.baidu.com'"}. # In the query statement, if you want to query the data of the time series, the query statement is as follows: select 'www.baidu.com' from root.sg;
In the 1.0 syntax conventions, special node names are uniformly quoted using backquotes:
# In the new syntax convention, if you need to create a time series root.sg.`www.baidu.com`, the syntax is as follows: create root.sg.`www.baidu.com` with 'datatype' = 'BOOLEAN', 'encoding' = 'PLAIN' #To query the time series, you can use the following statement: select `www.baidu.com` from root.sg;
In previous versions of syntax conventions, when single quotes ' and double quotes " are used in path node names, they need to be escaped with a backslash , and the backslashes will be stored as part of the path node name. Other identifiers do not have this restriction, causing inconsistency.
# Create time series root.sg.\"a create timeseries root.sg.`\"a` with datatype=TEXT,encoding=PLAIN; # Query time series root.sg.\"a select `\"a` from root.sg; +-----------------------------+-----------+ | Time|root.sg.\"a| +-----------------------------+-----------+ |1970-01-01T08:00:00.004+08:00| test| +-----------------------------+-----------+
In the 1.0 syntax convention, special path node names are uniformly referenced with backquotes. When single and double quotes are used in path node names, there is no need to add backslashes to escape, and backquotes need to be double-written. For details, please refer to the relevant chapters of the new syntax conventions.
In version 0.13, the restrictions on using path nodes in non-SQL interfaces are as follows:
checkTimeseriesExists
interface, since the IoTDB-SQL interface is called internally, the time-series pathname must be consistent with the SQL syntax conventions and be escaped for JAVA strings.In version 1.0, restrictions on using path nodes in non-SQL interfaces were enhanced:
example/session/src/main/java/org/apache/iotdb/SyntaxConventionRelatedExample.java
In previous releases, there was an inconsistency between the SQL and Session interfaces when using strings. For example, when using SQL to insert Text type data, the string will be unescaped, but not when using the Session interface, which is inconsistent. In the new syntax convention, we do not unescape the strings. What you store is what will be obtained when querying (for the rules of using single and double quotation marks inside strings, please refer to this document for string literal chapter).
The following are examples of inconsistencies in the old syntax conventions:
Use Session's insertRecord method to insert data into the time series root.sg.a
// session insert String deviceId = "root.sg"; List<String> measurements = new ArrayList<>(); measurements.add("a"); String[] values = new String[]{"\\\\", "\\t", "\\\"", "\\u96d5"}; for(int i = 0; i <= values.length; i++){ List<String> valueList = new ArrayList<>(); valueList.add(values[i]); session.insertRecord(deviceId, i + 1, measurements, valueList); }
Query the data of root.sg.a, you can see that there is no unescaping:
// query result +-----------------------------+---------+ | Time|root.sg.a| +-----------------------------+---------+ |1970-01-01T08:00:00.001+08:00| \\| |1970-01-01T08:00:00.002+08:00| \t| |1970-01-01T08:00:00.003+08:00| \"| |1970-01-01T08:00:00.004+08:00| \u96d5| +-----------------------------+---------+
Instead use SQL to insert data into root.sg.a:
# SQL insert insert into root.sg(time, a) values(1, "\\") insert into root.sg(time, a) values(2, "\t") insert into root.sg(time, a) values(3, "\"") insert into root.sg(time, a) values(4, "\u96d5")
Query the data of root.sg.a, you can see that the string is unescaped:
// query result +-----------------------------+---------+ | Time|root.sg.a| +-----------------------------+---------+ |1970-01-01T08:00:00.001+08:00| \| |1970-01-01T08:00:00.002+08:00| | |1970-01-01T08:00:00.003+08:00| "| |1970-01-01T08:00:00.004+08:00| 雕| +-----------------------------+---------+
How to upgrade a minor version (e.g., from v0.12.3 to v0.12.5)?
How to upgrade from v.12.x to v0.13.x?
SET STSTEM TO READONLY
command in CLI. flush
command to close all TsFiles.iotdb_version
in data/system/schema/system.properties
file is 0.13.x
. If not, please change it to 0.13.x
manually.SELECT
clause consists of pure numbers, it needs to be enclosed in backquotes to distinguish it from the constant in the expression. For example, in the statement “select 123 + `123` from root.sg”, the former 123 represents a constant, and the latter `123` will be spliced with root.sg, indicating the path root.sg.`123`.How to upgrade from v.11.x or v0.10.x to v0.12.x?
flush
command using sbin/start-cli.sh in original version to close all TsFiles.All files upgraded successfully!
printed, the upgrading completes.How to upgrade from v.10.x to v0.11.x?
flush
command using sbin/start-cli.sh
in v0.10.x to close all TsFiles.How to upgrade from v0.9.x to v0.10.x?
flush
command using sbin/start-client.sh in v0.9 to close all TsFiles.How to upgrade from 0.8.x to v0.9.x?
Find all releases in the Archive repository.
Along with our releases, we also provide sha512 hashes in *.sha512 files and cryptographic signatures in *.asc files. The Apache Software Foundation has an extensive tutorial to verify hashes and signatures which you can follow by using any of these release-signing KEYS .