IoTDB Java API接口介绍
IoTDB提供了一个针对原生接口的连接池(SessionPool),使用该接口时,您只需要指定连接池的大小,就可以在使用时从池中获取连接。如果超过60s没有得到一个连接,就会打印一条警告日志,但是程序仍将继续等待。
当一个连接被用完后,该连接会自动返回池中等待下次被使用;当一个连接损坏后,该连接会从池中被删除,并重建一个连接重新执行用户的操作。
对于查询操作:
- 使用SessionPool进行查询时,得到的结果集是SessionDataSet的封装类SessionDataSetWrapper。
- 若对于一个查询的结果集,用户并没有遍历完且不再想继续遍历时,需要手动调用释放连接的操作closeResultSet。
- 若对一个查询的结果集遍历时出现异常,也需要手动调用释放连接的操作closeResultSet。
- 可以调用SessionDataSetWrapper的getColumnNames()方法得到结果集列名。
方法 |
说明 |
---|---|
|
初始化Session。 |
Session.open() |
开启Session。 |
Session.close() |
关闭Session。 |
void setStorageGroup(String storageGroupId) |
设置存储组。 |
|
删除单个或多个存储组。 |
|
创建单个或多个时间序列。 |
|
删除一个或多个时间序列。 |
|
删除一个或多个时间序列在某个时间点前或这个时间点的数据。 |
void insertRecord(String deviceId, long time, List<String> measurements, List<String> values) |
插入一个Record,一个Record是一个设备一个时间戳下多个测点的数据。服务器需要做类型推断,可能会有额外耗时。 |
void insertTablet(Tablet tablet) |
插入一个Tablet,Tablet是一个设备若干行非空数据块,每一行的列都相同。 |
void insertTablets(Map<String, Tablet> tablet) |
插入多个Tablet。 |
void insertRecords(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, List<List<String>> valuesList) |
插入多个Record。服务器需要做类型推断,可能会有额外耗时。 |
void insertRecord(String deviceId, long time, List<String> measurements, List<TSDataType> types, List<Object> values) |
插入一个Record,一个Record是一个设备一个时间戳下多个测点的数据。提供数据类型后,服务器不需要做类型推断,可以提高性能。 |
void insertRecords(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, List<List<TSDataType>> typesList, List<List<Object>> valuesList) |
插入多个Record。提供数据类型后,服务器不需要做类型推断,可以提高性能。 |
submitApplication(SubmitApplicationRequest request) |
Client通过此接口提交一个新的应用到RM。 |
void insertRecordsOfOneDevice(String deviceId, List<Long> times, List<List<String>> measurementsList, List<List<TSDataType>> typesList, List<List<Object>> valuesList) |
插入属于同一个device的多个Record。 |
SessionDataSet executeRawDataQuery(List<String> paths, long startTime, long endTime) |
原始数据查询。时间间隔包含开始时间,不包含结束时间。 |
SessionDataSet executeQueryStatement(String sql) |
执行查询语句。 |
void executeNonQueryStatement(String sql) |
执行非查询语句。 |
方法 |
说明 |
---|---|
|
测试testInsertRecords,不实际写入数据,只将数据传输到server即返回。 |
|
测试insertRecord,不实际写入数据,只将数据传输到server即返回。 |
void testInsertTablet(Tablet tablet) |
测试insertTablet,不实际写入数据,只将数据传输到server即返回。 |