(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{719:function(e,s,t){"use strict";t.r(s);var a=t(68),i=Object(a.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"programming-native-api"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#programming-native-api"}},[e._v("#")]),e._v(" Programming - Native API")]),e._v(" "),t("h2",{attrs:{id:"dependencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dependencies"}},[e._v("#")]),e._v(" Dependencies")]),e._v(" "),t("ul",[t("li",[e._v("JDK >= 1.8")]),e._v(" "),t("li",[e._v("Maven >= 3.1")])]),e._v(" "),t("h2",{attrs:{id:"how-to-install-in-local-maven-repository"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-to-install-in-local-maven-repository"}},[e._v("#")]),e._v(" How to install in local maven repository")]),e._v(" "),t("p",[e._v("In root directory:")]),e._v(" "),t("blockquote",[t("p",[e._v("mvn clean install -pl session -am -DskipTests")])]),e._v(" "),t("h2",{attrs:{id:"using-iotdb-native-api-with-maven"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-iotdb-native-api-with-maven"}},[e._v("#")]),e._v(" Using IoTDB Native API with Maven")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("<dependencies>\n    <dependency>\n      <groupId>org.apache.iotdb</groupId>\n      <artifactId>iotdb-session</artifactId>\n      <version>0.11.1</version>\n    </dependency>\n</dependencies>\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br")])]),t("h2",{attrs:{id:"native-apis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#native-apis"}},[e._v("#")]),e._v(" Native APIs")]),e._v(" "),t("p",[e._v("Here we show the commonly used interfaces and their parameters in the Native API:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Initialize a Session")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Session(String host, int rpcPort)\n\nSession(String host, String rpcPort, String username, String password)\n\nSession(String host, int rpcPort, String username, String password)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Open a Session")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("Session.open()\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Close a Session")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("​Session.close()\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Set storage group")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void setStorageGroup(String storageGroupId)    \n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("​")])]),e._v(" "),t("li",[t("p",[e._v("Delete one or several storage groups")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void deleteStorageGroup(String storageGroup)\nvoid deleteStorageGroups(List<String> storageGroups)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Create one or multiple timeseries")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void createTimeseries(String path, TSDataType dataType,\n        TSEncoding encoding, CompressionType compressor, Map<String, String> props,\n        Map<String, String> tags, Map<String, String> attributes, String measurementAlias)\n        \nvoid createMultiTimeseries(List<String> paths, List<TSDataType> dataTypes,\n        List<TSEncoding> encodings, List<CompressionType> compressors,\n        List<Map<String, String>> propsList, List<Map<String, String>> tagsList,\n        List<Map<String, String>> attributesList, List<String> measurementAliasList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Delete one or several timeseries")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void deleteTimeseries(String path)\nvoid deleteTimeseries(List<String> paths)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Delete data before or equal to a timestamp of one or several timeseries")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void deleteData(String path, long time)\nvoid deleteData(List<String> paths, long time)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Insert a Record，which contains multiple measurement value of a device at a timestamp. Without type info the server has to do type inference, which may cost some time")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecord(String deviceId, long time, List<String> measurements, List<String> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Insert a Tablet，which is multiple rows of a device, each row has the same measurements")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertTablet(Tablet tablet)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Insert multiple Tablets")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertTablets(Map<String, Tablet> tablet)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Insert multiple Records. Without type info the server has to do type inference, which may cost some time")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecords(List<String> deviceIds, List<Long> times, \n                     List<List<String>> measurementsList, List<List<String>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Insert a Record，which contains multiple measurement value of a device at a timestamp. With type info the server has no need to do type inference, which leads a better performance")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecord(String deviceId, long time, List<String> measurements,\n     List<TSDataType> types, List<Object> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Insert multiple Records. With type info the server has no need to do type inference, which leads a better performance")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecords(List<String> deviceIds, List<Long> times,\n      List<List<String>> measurementsList, List<List<TSDataType>> typesList,\n      List<List<Object>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])])])]),e._v(" "),t("h2",{attrs:{id:"native-apis-for-profiling-network-cost"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#native-apis-for-profiling-network-cost"}},[e._v("#")]),e._v(" Native APIs for profiling network cost")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("Test the network and client cost of insertRecords. This method NOT insert data into database and server just return after accept the request, this method should be used to test other time cost in client")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecords(List<String> deviceIds, List<Long> times,\n                List<List<String>> measurementsList, List<List<String>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("or")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecords(List<String> deviceIds, List<Long> times,\n      List<List<String>> measurementsList, List<List<TSDataType>> typesList,\n      List<List<Object>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Test the network and client cost of insertRecord. This method NOT insert data into database and server just return after accept the request, this method should be used to test other time cost in client")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecord(String deviceId, long time, List<String> measurements, List<String> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("or")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecord(String deviceId, long time, List<String> measurements,\n      List<TSDataType> types, List<Object> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])])]),e._v(" "),t("li",[t("p",[e._v("Test the network and client cost of insertTablet. This method NOT insert data into database and server just return after accept the request, this method should be used to test other time cost in client")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertTablet(Tablet tablet)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])])])]),e._v(" "),t("h2",{attrs:{id:"sample-code"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sample-code"}},[e._v("#")]),e._v(" Sample code")]),e._v(" "),t("p",[e._v("To get more information of the following interfaces, please view session/src/main/java/org/apache/iotdb/session/Session.java")]),e._v(" "),t("p",[e._v("The sample code of using these interfaces is in example/session/src/main/java/org/apache/iotdb/SessionExample.java，which provides an example of how to open an IoTDB session, execute a batch insertion.")]),e._v(" "),t("h2",{attrs:{id:"session-pool-for-native-api"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#session-pool-for-native-api"}},[e._v("#")]),e._v(" Session Pool for Native API")]),e._v(" "),t("p",[e._v("We provide a connection pool (`SessionPool) for Native API.\nUsing the interface, you need to define the pool size.")]),e._v(" "),t("p",[e._v("If you can not get a session connection in 60 seconds, there is a warning log but the program will hang.")]),e._v(" "),t("p",[e._v("If a session has finished an operation, it will be put back to the pool automatically.\nIf a session connection is broken, the session will be removed automatically and the pool will try\nto create a new session and redo the operation.")]),e._v(" "),t("p",[e._v("For query operations:")]),e._v(" "),t("ol",[t("li",[e._v("When using SessionPool to query data, the result set is "),t("code",[e._v("SessionDataSetWrapper")]),e._v(";")]),e._v(" "),t("li",[e._v("Given a "),t("code",[e._v("SessionDataSetWrapper")]),e._v(", if you have not scanned all the data in it and stop to use it,\nyou have to call "),t("code",[e._v("SessionPool.closeResultSet(wrapper)")]),e._v(" manually;")]),e._v(" "),t("li",[e._v("When you call "),t("code",[e._v("hasNext()")]),e._v(" and "),t("code",[e._v("next()")]),e._v(" of a "),t("code",[e._v("SessionDataSetWrapper")]),e._v(" and there is an exception, then\nyou have to call "),t("code",[e._v("SessionPool.closeResultSet(wrapper)")]),e._v(" manually;")]),e._v(" "),t("li",[e._v("You can call "),t("code",[e._v("getColumnNames()")]),e._v(" of "),t("code",[e._v("SessionDataSetWrapper")]),e._v(" to get the column names of query result;")])]),e._v(" "),t("p",[e._v("Examples: "),t("code",[e._v("session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java")])]),e._v(" "),t("p",[e._v("Or "),t("code",[e._v("example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java")])]),e._v(" "),t("h2",{attrs:{id:"_0-9-0-10-session-interface-updates"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_0-9-0-10-session-interface-updates"}},[e._v("#")]),e._v(" 0.9-0.10 Session Interface Updates")]),e._v(" "),t("p",[e._v("Significant chages are made in IoTDB session of version 0.10 compared to version 0.9.\nA large numbers of new interfaces are added, and some old interfaces have new names or parameters.\nBesides, all exceptions thrown by session interfaces are changed from "),t("em",[e._v("IoTDBSessionExeception")]),e._v(" to "),t("em",[e._v("IoTDBConnectionException")]),e._v(" or "),t("em",[e._v("StatementExecutionExeception")]),e._v(".\nThe detailed modifications are listed as follows.")]),e._v(" "),t("h3",{attrs:{id:"method-name-modifications"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#method-name-modifications"}},[e._v("#")]),e._v(" Method name modifications")]),e._v(" "),t("h4",{attrs:{id:"insert"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#insert"}},[e._v("#")]),e._v(" insert()")]),e._v(" "),t("p",[e._v("Insert a Record，which contains deviceId, timestamp of the record and multiple measurement values")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insert(String deviceId, long time, List<String> measurements, List<String> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("The method name has been changed to insertRecord() in 0.10 version")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecord(String deviceId, long time, List<String> measurements, List<String> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("h4",{attrs:{id:"insertrowinbatch"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#insertrowinbatch"}},[e._v("#")]),e._v(" insertRowInBatch()")]),e._v(" "),t("p",[e._v("Insert multiple Records, which contains all the deviceIds, timestamps of the records and multiple measurement values")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRowInBatch(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList,   \n                      List<List<String>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("The method name has been changed to insertRecords() in 0.10 version")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecords(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, \n                   List<List<String>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("h4",{attrs:{id:"insertbatch"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#insertbatch"}},[e._v("#")]),e._v(" insertBatch()")]),e._v(" "),t("p",[e._v('In 0.9, insertBatch is used for insertion in terms of "RowBatch" structure.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertBatch(RowBatch rowBatch)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v('As "Tablet" replaced "RowBatch" in 0.10, the name has been changed to insertTablet()')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertTablet(Tablet tablet)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("h4",{attrs:{id:"testinsertrow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testinsertrow"}},[e._v("#")]),e._v(" testInsertRow()")]),e._v(" "),t("p",[e._v("To test the responsiveness of insertRow()")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRow(String deviceId, long time, List<String> measurements, List<String> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("The method name has been changed to testInsertRecord() in 0.10 version")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecord(String deviceId, long time, List<String> measurements, List<String> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("h4",{attrs:{id:"testinsertrowinbatch"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testinsertrowinbatch"}},[e._v("#")]),e._v(" testInsertRowInBatch()")]),e._v(" "),t("p",[e._v("To test the responsiveness of insertRowInBatch()")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRowInBatch(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, \n                          List<List<String>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("The method name has been changed to testInsertRecords() in 0.10 version")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecords(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, \n                       List<List<String>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("h4",{attrs:{id:"testinsertbatch"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testinsertbatch"}},[e._v("#")]),e._v(" testInsertBatch")]),e._v(" "),t("p",[e._v("To test the responsiveness of insertBatch()")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertBatch(RowBatch rowBatch)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("The method name has been changed to testInsertTablet() in 0.10 version")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertTablet(Tablet tablet)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("h3",{attrs:{id:"new-interfaces"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#new-interfaces"}},[e._v("#")]),e._v(" New Interfaces")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void open(boolean enableRPCCompression)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Open a session, with a parameter to specify whether to enable RPC compression.\nPlease pay attention that this RPC compression status of client must comply with the status of IoTDB server")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecord(String deviceId, long time, List<String> measurements,\n      List<TSDataType> types, List<Object> values)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("Insert one record, in a way that user has to provide the type information of each measurement, which is different from the original insertRecord() interface.\nThe values should be provided in their primitive types. This interface is more proficient than the one without type parameters.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertRecords(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, \n                   List<List<TSDataType>> typesList, List<List<Object>> valuesList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("Insert multiple records with type parameters. This interface is more proficient than the one without type parameters.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertTablet(Tablet tablet, boolean sorted)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v('An additional insertTablet() interface that providing a "sorted" parameter indicating if the tablet is in order. A sorted tablet may accelerate the insertion process.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertTablets(Map<String, Tablet> tablets)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("A new insertTablets() for inserting multiple tablets.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void insertTablets(Map<String, Tablet> tablets, boolean sorted)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v('insertTablets() with an additional "sorted" parameter.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void testInsertRecord(String deviceId, long time, List<String> measurements, List<TSDataType> types, \n                      List<Object> values)\nvoid testInsertRecords(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, \n                      List<List<TSDataType>> typesList, List<List<Object>> valuesList)\nvoid testInsertTablet(Tablet tablet, boolean sorted)\nvoid testInsertTablets(Map<String, Tablet> tablets)\nvoid testInsertTablets(Map<String, Tablet> tablets, boolean sorted)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br")])]),t("p",[e._v("The above interfaces are newly added to test responsiveness of new insert interfaces.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void createTimeseries(String path, TSDataType dataType, TSEncoding encoding, CompressionType compressor, \t\n                      Map<String, String> props, Map<String, String> tags, Map<String, String> attributes, \n                      String measurementAlias)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("Create a timeseries with path, datatype, encoding and compression. Additionally, users can provide props, tags, attributes and measurementAlias。")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("void createMultiTimeseries(List<String> paths, List<TSDataType> dataTypes, List<TSEncoding> encodings, \n                           List<CompressionType> compressors, List<Map<String, String>> propsList, \n                           List<Map<String, String>> tagsList, List<Map<String, String>> attributesList, \n                           List<String> measurementAliasList)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br")])]),t("p",[e._v("Create multiple timeseries with a single method. Users can provide props, tags, attributes and measurementAlias as well for detailed timeseries information.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("boolean checkTimeseriesExists(String path)\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Add a method to check whether the specific timeseries exists.")])])}),[],!1,null,null,null);s.default=i.exports}}]);