我采用docker安装iotdb
#拉取镜像
docker pull apache/iotdb:latest
#启动容器
docker run -d --name iotdb -p 6667:6667 \
-v /data/iotdb:/iotdb/data \
-v /data/iotdb:/iotdb/logs \
apache/iotdb:latest /iotdb/bin/start-server.sh
引入maven原生接口
<dependency>
<groupId>org.apache.iotdb</groupId>
<artifactId>iotdb-session</artifactId>
<version>0.13.0</version>
</dependency>
测试用例
public class IotdbTestDemo {
private static String username="root";
private static String password="root";
private static String ip="127.0.0.1";
private static int port=6667;
private static int fetchSize=100000;
private static SessionPool session;
private static final String ROOT_TEST_DEVICE = "root.test.device";
public static SessionPool getSession(){
if (session == null) {
session = new SessionPool(ip, port, username, password, fetchSize);
}
return session;
}
/**
* 根据sql查询
*/
@Test
void contextLoads() throws StatementExecutionException, IoTDBConnectionException {
getSession();
SessionDataSetWrapper wrapper= session.executeQueryStatement("select 1 from root.test.deviceid limit 2",0);
List<String> columnNames = wrapper.getColumnNames();
List<String> list=new ArrayList<>();
while (wrapper.hasNext()) {
List<Field> fields = wrapper.next().getFields();
for (int i = 0; i < columnNames.size()-1; i++) {
list.add(columnNames.get(i+1)+":"+fields.get(i));
}
session.closeResultSet(wrapper);
session.close();
list.forEach(s -> System.out.println(s));
}
/**
* 插入数据 10000条
*/
@Test
void insertRecord() throws StatementExecutionException, IoTDBConnectionException, InterruptedException {
getSession();
int num=10;
List<String> keys = new ArrayList<>();
for (int i = 0; i <num ; i++) {
keys.add(i+"");
}
Random random = new Random();
List<String> values = new ArrayList<>();
for (int j = 0; j < num; j++) {
values.add(String.valueOf(random.nextDouble()));
}
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
session.insertRecord(tableName.toString(),System.currentTimeMillis(),keys,values);
}
long timeMillis = System.currentTimeMillis()-start;
System.out.println(timeMillis);
session.close();
}
/**
* 删除存储组
*/
@Test
void deleteStorageGroup() throws StatementExecutionException, IoTDBConnectionException {
getSession();
session.deleteStorageGroup("root.test.deviceid");
session.close();
}