diff --git a/datax-example/datax-example-iotdb/pom.xml b/datax-example/datax-example-iotdb/pom.xml
new file mode 100644
index 00000000..f6857e06
--- /dev/null
+++ b/datax-example/datax-example-iotdb/pom.xml
@@ -0,0 +1,85 @@
+
+
+
+ datax-example
+ com.alibaba.datax
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+
+ datax-example-iotdb
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ com.alibaba.datax
+ iotdbreader
+ 0.0.1-SNAPSHOT
+ compile
+
+
+ com.alibaba.datax
+ iotdbwriter
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+ com.alibaba.datax
+ datax-example-core
+ 0.0.1-SNAPSHOT
+
+
+ com.alibaba.datax
+ streamreader
+ 0.0.1-SNAPSHOT
+
+
+ com.alibaba.datax
+ streamwriter
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+ com.alibaba.datax
+ txtfilereader
+ 0.0.1-SNAPSHOT
+ compile
+
+
+ com.alibaba.datax
+ txtfilewriter
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+ com.alibaba.datax
+ mysqlreader
+ 0.0.1-SNAPSHOT
+ compile
+
+
+ com.alibaba.datax
+ mysqlwriter
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.31
+
+
+
+
+
\ No newline at end of file
diff --git a/datax-example/datax-example-iotdb/src/test/java/com/alibaba/datax/example/iotdb/TestCreateData.java b/datax-example/datax-example-iotdb/src/test/java/com/alibaba/datax/example/iotdb/TestCreateData.java
new file mode 100644
index 00000000..c521d4d8
--- /dev/null
+++ b/datax-example/datax-example-iotdb/src/test/java/com/alibaba/datax/example/iotdb/TestCreateData.java
@@ -0,0 +1,147 @@
+package com.alibaba.datax.example.iotdb;
+
+import org.apache.iotdb.isession.util.Version;
+import org.apache.iotdb.rpc.IoTDBConnectionException;
+import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.rpc.TSStatusCode;
+import org.apache.iotdb.session.Session;
+import org.apache.tsfile.enums.TSDataType;
+import org.apache.tsfile.file.metadata.enums.CompressionType;
+import org.apache.tsfile.file.metadata.enums.TSEncoding;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.*;
+
+public class TestCreateData {
+ private static Session session;
+ private static Random random = new Random();
+
+ @Test
+ public void createAndInsert()
+ throws IoTDBConnectionException, StatementExecutionException {
+ // 创建测试数据
+ // session init
+ session =
+ new Session.Builder()
+ // .host("192.168.150.100")
+ .host("172.20.31.61")
+ .port(6667)
+ .username("root")
+ .password("root")
+ .version(Version.V_0_13)
+ .build();
+
+ // open session, close RPCCompression
+ session.open(false);
+
+ // set session fetchSize
+ session.setFetchSize(10000);
+
+ // 创建测点并插入数据
+ String filePath = "src/test/resources/testData.txt";
+ String database = "root.cgn";
+ try {
+ session.createDatabase(database);
+ } catch (StatementExecutionException e) {
+ if (e.getStatusCode() != TSStatusCode.DATABASE_ALREADY_EXISTS.getStatusCode()) {
+ throw e;
+ }
+ }
+ String device = "root.cgn.device";
+ createAndInsert2(filePath, device);
+ }
+
+ private static void createAndInsert2(String filePath, String device)
+ throws IoTDBConnectionException, StatementExecutionException {
+ // 读取文件(文件中无表头)
+ // 点的类型 点名 描述 量纲 量程下限 量程上限
+ // AX L2KRT008MA 测试性描述 % 0 1.00E+02
+ // AX L2ETY101MP 测试性描述 % 0 1.00E+02
+ List> res = new ArrayList<>();
+ try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
+ String line;
+ while ((line = br.readLine()) != null) {
+ String[] words = line.split("\\s+");
+ List wordList = new ArrayList<>(Arrays.asList(words));
+ res.add(wordList);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // 准备传入的参数,构造时间序列
+ List paths = new ArrayList<>();
+ List measurements = new ArrayList<>();
+ List isDoubleList = new ArrayList<>();
+ List tsDataTypes = new ArrayList<>();
+ List tsEncodings = new ArrayList<>();
+ List compressionTypes = new ArrayList<>();
+ List