[
https://issues.apache.org/jira/browse/IOTDB-122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tian Jiang closed IOTDB-122.
----------------------------
> Support prepared insertion
> --------------------------
>
> Key: IOTDB-122
> URL: https://issues.apache.org/jira/browse/IOTDB-122
> Project: Apache IoTDB
> Issue Type: New Feature
> Reporter: Tian Jiang
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> As some have mentioned, sql parser(antlr) may consume about 40% of time in
> ingestion, especially when small sqls executed sent frequently. Luckily,
> IoTDB insertion sqls are currently all alike and simple, there are 4 most
> meaningful parts of such sqls: deviceId, measurements, values and time. For
> such a simple structure, using tools like antlr may be just too heavy.
> Intuitively, PreparedStatement in Standard JDBC interface can be just used
> for reliving parsing overhead when sqls are similar. I will describe how
> PreparedStatement works as follow (this is still left to be implemented):
> 1. The user wants to create a prepared insert statement and called
> `connection.prepareStatement(“Insert”)`;
> 2. The connection matches the parameter string with some templates, finds out
> it is an insertion and returns an IoTDBPreparedInsertStatement pStmt.
> 3. The user calls `pStmt.setDevice(“root.device1”); pStmt.setTime(100);
> pStmt.setMeasurements(measurementArray); pStmt.setValues(valueArray);` to set
> parameters for next insertion.
> 4. The user calls `pStmt.execute()` to execute an insertion.
> 5. The PreparedInsertStatement creates a TSInsertionReq, puts deviceId,
> measurements, values and time into this request and sends this request to the
> server.
> 6. The server receives the request, extracts parameters from the request and
> executes an insertion directly through database engine and return a
> TSInsertionResp to the user.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)