You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ge...@apache.org on 2020/11/02 07:54:10 UTC
[iotdb] 04/04: change doc
This is an automated email from the ASF dual-hosted git repository.
geniuspig pushed a commit to branch change_jdbc_to_session_in_csv
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6f9e44b9fe6a1000904cbc171d464dfad9ddf10c
Author: Boris <96...@qq.com>
AuthorDate: Mon Nov 2 15:53:41 2020 +0800
change doc
---
README.md | 22 +++------------------
README_ZH.md | 23 +++-------------------
.../main/java/org/apache/iotdb/tool/ExportCsv.java | 23 ++++++++++------------
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 1 +
4 files changed, 17 insertions(+), 52 deletions(-)
diff --git a/README.md b/README.md
index be83178..75e562f 100644
--- a/README.md
+++ b/README.md
@@ -334,25 +334,13 @@ After being built, the IoTDB cli is located at the folder "cli/target/iotdb-cli-
## Usage of import-csv.sh
-### Create metadata
-```
-SET STORAGE GROUP TO root.fit.d1;
-SET STORAGE GROUP TO root.fit.d2;
-SET STORAGE GROUP TO root.fit.p;
-CREATE TIMESERIES root.fit.d1.s1 WITH DATATYPE=INT32,ENCODING=RLE;
-CREATE TIMESERIES root.fit.d1.s2 WITH DATATYPE=TEXT,ENCODING=PLAIN;
-CREATE TIMESERIES root.fit.d2.s1 WITH DATATYPE=INT32,ENCODING=RLE;
-CREATE TIMESERIES root.fit.d2.s3 WITH DATATYPE=INT32,ENCODING=RLE;
-CREATE TIMESERIES root.fit.p.s1 WITH DATATYPE=INT32,ENCODING=RLE;
-```
-
### An example of import csv file
```
Time,root.fit.d1.s1,root.fit.d1.s2,root.fit.d2.s1,root.fit.d2.s3,root.fit.p.s1
-1,100,'hello',200,300,400
-2,500,'world',600,700,800
-3,900,'IoTDB',1000,1100,1200
+1,100,hello,200,300,400
+2,500,world,600,700,800
+3,900,IoTDB,1000,1100,1200
```
### Run import shell
@@ -364,10 +352,6 @@ Time,root.fit.d1.s1,root.fit.d1.s2,root.fit.d2.s1,root.fit.d2.s3,root.fit.p.s1
> tools\import-csv.bat -h <ip> -p <port> -u <username> -pw <password> -f <xxx.csv>
```
-### Error data file
-
-`csvInsertError.error`
-
## Usage of export-csv.sh
### Run export shell
diff --git a/README_ZH.md b/README_ZH.md
index e7772bd..e04a154 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -335,26 +335,13 @@ server 可以使用 "ctrl-C" 或者执行下面的脚本:
## 使用 import-csv.sh
-### 创建元数据
-
-```
-SET STORAGE GROUP TO root.fit.d1;
-SET STORAGE GROUP TO root.fit.d2;
-SET STORAGE GROUP TO root.fit.p;
-CREATE TIMESERIES root.fit.d1.s1 WITH DATATYPE=INT32,ENCODING=RLE;
-CREATE TIMESERIES root.fit.d1.s2 WITH DATATYPE=TEXT,ENCODING=PLAIN;
-CREATE TIMESERIES root.fit.d2.s1 WITH DATATYPE=INT32,ENCODING=RLE;
-CREATE TIMESERIES root.fit.d2.s3 WITH DATATYPE=INT32,ENCODING=RLE;
-CREATE TIMESERIES root.fit.p.s1 WITH DATATYPE=INT32,ENCODING=RLE;
-```
-
### 从 csv 文件导入数据的示例
```
Time,root.fit.d1.s1,root.fit.d1.s2,root.fit.d2.s1,root.fit.d2.s3,root.fit.p.s1
-1,100,'hello',200,300,400
-2,500,'world',600,700,800
-3,900,'IoTDB',1000,1100,1200
+1,100,hello,200,300,400
+2,500,world,600,700,800
+3,900,IoTDB,1000,1100,1200
```
### 运行 import shell
@@ -366,10 +353,6 @@ Time,root.fit.d1.s1,root.fit.d1.s2,root.fit.d2.s1,root.fit.d2.s3,root.fit.p.s1
> tools\import-csv.bat -h <ip> -p <port> -u <username> -pw <password> -f <xxx.csv>
```
-### 错误的数据文件
-
-`csvInsertError.error`
-
## 使用 export-csv.sh
### 运行 export shell
diff --git a/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java b/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java
index f30ddbc..881e866 100644
--- a/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java
+++ b/cli/src/main/java/org/apache/iotdb/tool/ExportCsv.java
@@ -41,8 +41,8 @@ import org.apache.iotdb.cli.AbstractCli;
import org.apache.iotdb.exception.ArgsErrorException;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.session.Session;
import org.apache.iotdb.session.SessionDataSet;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.Field;
import org.apache.iotdb.tsfile.read.common.RowRecord;
@@ -111,7 +111,12 @@ public class ExportCsv extends AbstractCsvTool {
String sqlFile = commandLine.getOptionValue(SQL_FILE_ARGS);
String sql;
-
+ session = new Session(host, Integer.parseInt(port), username, password);
+ try {
+ session.open(false);
+ } catch (IoTDBConnectionException e) {
+ e.printStackTrace();
+ }
try {
setTimeZone();
} catch (IoTDBConnectionException | StatementExecutionException e) {
@@ -246,7 +251,7 @@ public class ExportCsv extends AbstractCsvTool {
return;
}
} catch (IOException e) {
- System.out.println("Cannot create dump file " + path + "because: " + e.getMessage());
+ System.out.println("Cannot create dump file " + path + " " + "because: " + e.getMessage());
return;
}
System.out.println("Start to export data from sql statement: " + sql);
@@ -322,21 +327,13 @@ public class ExportCsv extends AbstractCsvTool {
if ("null".equals(fields.get(j).getStringValue())) {
bw.write(",");
} else {
- if(fields.get(j).getDataType() == TSDataType.TEXT) {
- bw.write("'" + fields.get(j).getBinaryV().toString() + "'" + ",");
- } else {
- bw.write(fields.get(j).getStringValue() + ",");
- }
+ bw.write(fields.get(j).getStringValue() + ",");
}
}
if ("null".equals(fields.get(fields.size() - 1).getStringValue())) {
bw.write("\n");
} else {
- if(fields.get(fields.size() - 1).getDataType() == TSDataType.TEXT) {
- bw.write("'" + fields.get(fields.size() - 1).getBinaryV().toString() + "'" + "\n");
- } else {
- bw.write(fields.get(fields.size() - 1).getStringValue() + "\n");
- }
+ bw.write(fields.get(fields.size() - 1).getStringValue() + "\n");
}
}
}
diff --git a/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java b/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
index 266add5..2b215d9 100644
--- a/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
+++ b/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
@@ -134,6 +134,7 @@ public class ImportCsv extends AbstractCsvTool {
cols = line.split(",");
for(String device: deviceToMeasurementsAndPositions.keySet()) {
devices.add(device);
+ times.add(Long.parseLong(cols[0]));
Map<String, Integer> measurementsAndPositions = deviceToMeasurementsAndPositions.get(device);
List<String> measurements = new ArrayList<>();
List<String> values = new ArrayList<>();