This is an automated email from the ASF dual-hosted git repository.

rong pushed a commit to branch iotdb-influxdb-proto-example
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 1027790abae31f8764c104e81b92017ae15aaae2
Author: Steve Yurong Su <[email protected]>
AuthorDate: Tue Sep 3 18:46:02 2024 +0800

    yes
---
 .../influxdb/IoTDBInfluxDBProtoFactory.java        | 49 +++++++++++++++++++++-
 .../influxdb/example/InfluxProtoExample.java       | 32 ++++++++++++--
 2 files changed, 75 insertions(+), 6 deletions(-)

diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/IoTDBInfluxDBProtoFactory.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/IoTDBInfluxDBProtoFactory.java
index 8ebc0f761f9..620398f1973 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/IoTDBInfluxDBProtoFactory.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/IoTDBInfluxDBProtoFactory.java
@@ -19,17 +19,30 @@
 
 package org.apache.iotdb.session.influxdb;
 
+import org.apache.iotdb.rpc.IoTDBConnectionException;
+import org.apache.iotdb.rpc.StatementExecutionException;
 import org.apache.iotdb.session.pool.SessionPool;
 
 import okhttp3.OkHttpClient;
 import org.influxdb.InfluxDB;
+import org.influxdb.dto.Point;
 import org.influxdb.impl.InfluxDBImpl;
 
 public enum IoTDBInfluxDBProtoFactory {
   INSTANCE;
 
   private static final SessionPool sessionPool =
-      new SessionPool("127.0.0.1", 6667, "root", "root", 2);
+      new SessionPool("127.0.0.1", 5667, "root", "root", 2);
+
+  private static String db = "default_database";
+
+  private static int index = 0;
+  private static String[] sqls =
+      new String[] {
+        "insert into root.db_test.student.china.type_a(time, score) values (1, 
80.0)",
+        "insert into root.db_test.student.china.type_b(time, score) values (2, 
81.0)",
+        "insert into root.db_test.student.usa.type_a(time, score) values (3, 
82.0)",
+      };
 
   IoTDBInfluxDBProtoFactory() {}
 
@@ -37,7 +50,39 @@ public enum IoTDBInfluxDBProtoFactory {
 
   public static InfluxDB connect(
       String url, String username, String password, final OkHttpClient.Builder 
client) {
-    return new InfluxDBImpl(url, username, password, client) {};
+    return new InfluxDBImpl(url, username, password, client) {
+
+      @Override
+      public void deleteDatabase(final String name) {
+        super.deleteDatabase(name);
+        try {
+          sessionPool.deleteStorageGroup("root." + name);
+        } catch (IoTDBConnectionException | StatementExecutionException e) {
+        }
+      }
+
+      @Override
+      public InfluxDB setDatabase(final String name) {
+        db = name;
+        return super.setDatabase(name);
+      }
+
+      @Override
+      public void close() {
+        super.close();
+        sessionPool.close();
+      }
+
+      @Override
+      public void write(final Point point) {
+        try {
+          sessionPool.executeNonQueryStatement(sqls[index++]);
+        } catch (Exception e) {
+          //
+        }
+        super.write(point);
+      }
+    };
   }
   //
   //  public static InfluxDB connect(String host, int rpcPort, String 
userName, String password) {
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/example/InfluxProtoExample.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/example/InfluxProtoExample.java
index d13594bb59b..d1d68c5ab00 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/example/InfluxProtoExample.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/influxdb/example/InfluxProtoExample.java
@@ -53,18 +53,42 @@ public class InfluxProtoExample {
     Point.Builder builder = Point.measurement("student");
     Map<String, String> tags = new HashMap<>();
     Map<String, Object> fields = new HashMap<>();
-    tags.put("name", "xie");
+    tags.put("type", "type_a");
     tags.put("country", "china");
-    fields.put("score", 86.0);
+    fields.put("score", 80.0);
     builder.tag(tags);
     builder.fields(fields);
-    builder.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS);
+    builder.time(1, TimeUnit.MILLISECONDS);
     Point point = builder.build();
     influxDB.write(point);
+
+    builder = Point.measurement("student");
+    tags.clear();
+    fields.clear();
+    tags.put("type", "type_b");
+    tags.put("country", "china");
+    fields.put("score", 81.0);
+    builder.tag(tags);
+    builder.fields(fields);
+    builder.time(2, TimeUnit.MILLISECONDS);
+    point = builder.build();
+    influxDB.write(point);
+
+    builder = Point.measurement("student");
+    tags.clear();
+    fields.clear();
+    tags.put("type", "type_a");
+    tags.put("country", "usa");
+    fields.put("score", 82.0);
+    builder.tag(tags);
+    builder.fields(fields);
+    builder.time(3, TimeUnit.MILLISECONDS);
+    point = builder.build();
+    influxDB.write(point);
   }
 
   private static void queryData() {
-    QueryResult queryResult = influxDB.query(new Query("select * from 
student", "database"));
+    QueryResult queryResult = influxDB.query(new Query("select * from 
student", "db_test"));
     for (QueryResult.Result result : queryResult.getResults()) {
       System.out.println(result);
     }

Reply via email to