You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2023/04/03 13:21:25 UTC
[iotdb] 01/02: modify iotdb server
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch mlnode/test
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit bf171eff727a59895ed439d08ea45b65657dc154
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Mon Apr 3 16:05:01 2023 +0800
modify iotdb server
---
.../iotdb/commons/model/ModelHyperparameter.java | 10 +++++
.../iotdb/commons/model/ModelInformation.java | 9 +++-
.../iotdb/commons/model/TrailInformation.java | 7 ++-
.../db/mpp/common/header/ColumnHeaderConstant.java | 8 ++--
.../db/mpp/common/header/DatasetHeaderFactory.java | 4 +-
.../config/metadata/model/ShowModelsTask.java | 51 +++++++++++++---------
.../config/metadata/model/ShowTrailsTask.java | 29 ++++++++----
.../ConcatExpressionWithSuffixPathsVisitor.java | 3 +-
.../db/mpp/plan/parser/StatementGenerator.java | 49 ++++++++++-----------
9 files changed, 105 insertions(+), 65 deletions(-)
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelHyperparameter.java b/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelHyperparameter.java
index 151a6b7c59..ed5a3cbb3c 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelHyperparameter.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelHyperparameter.java
@@ -26,6 +26,8 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
public class ModelHyperparameter {
@@ -53,6 +55,14 @@ public class ModelHyperparameter {
return stringBuilder.toString();
}
+ public List<String> toStringList() {
+ List<String> resultList = new ArrayList<>();
+ for (Map.Entry<String, String> keyValuePair : keyValueMap.entrySet()) {
+ resultList.add(keyValuePair.getKey() + "=" + keyValuePair.getValue());
+ }
+ return resultList;
+ }
+
public void serialize(DataOutputStream stream) throws IOException {
ReadWriteIOUtils.write(keyValueMap, stream);
}
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelInformation.java b/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelInformation.java
index a8cff6968d..522f609e51 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelInformation.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/model/ModelInformation.java
@@ -270,10 +270,17 @@ public class ModelInformation {
if (bestTrailId != null) {
TrailInformation bestTrail = trailMap.get(bestTrailId);
- ReadWriteIOUtils.write(bestTrail.getModelHyperparameter().toString(), stream);
ReadWriteIOUtils.write(bestTrail.getModelPath(), stream);
+
+ List<String> modelHyperparameterList = bestTrail.getModelHyperparameter().toStringList();
+ ReadWriteIOUtils.write(modelHyperparameterList.size(), stream);
+ for (String hyperparameter : modelHyperparameterList) {
+ ReadWriteIOUtils.write(hyperparameter, stream);
+ }
} else {
ReadWriteIOUtils.write("UNKNOWN", stream);
+
+ ReadWriteIOUtils.write(1, stream);
ReadWriteIOUtils.write("UNKNOWN", stream);
}
return ByteBuffer.wrap(buffer.getBuf(), 0, buffer.size());
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/model/TrailInformation.java b/node-commons/src/main/java/org/apache/iotdb/commons/model/TrailInformation.java
index 8551534d41..56de20671e 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/model/TrailInformation.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/model/TrailInformation.java
@@ -27,6 +27,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
+import java.util.List;
import java.util.Map;
public class TrailInformation {
@@ -68,8 +69,12 @@ public class TrailInformation {
PublicBAOS buffer = new PublicBAOS();
DataOutputStream stream = new DataOutputStream(buffer);
ReadWriteIOUtils.write(trailId, stream);
- ReadWriteIOUtils.write(modelHyperparameter.toString(), stream);
ReadWriteIOUtils.write(modelPath, stream);
+ List<String> modelHyperparameterList = modelHyperparameter.toStringList();
+ ReadWriteIOUtils.write(modelHyperparameterList.size(), stream);
+ for (String hyperparameter : modelHyperparameterList) {
+ ReadWriteIOUtils.write(hyperparameter, stream);
+ }
return ByteBuffer.wrap(buffer.getBuf(), 0, buffer.size());
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
index 9093cf3f27..ded93fc3df 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
@@ -412,12 +412,12 @@ public class ColumnHeaderConstant {
new ColumnHeader(MODEL_TYPE, TSDataType.TEXT),
new ColumnHeader(QUERY_BODY, TSDataType.TEXT),
new ColumnHeader(STATE, TSDataType.TEXT),
- new ColumnHeader(HYPERPARAMETER, TSDataType.TEXT),
- new ColumnHeader(MODEL_PATH, TSDataType.TEXT));
+ new ColumnHeader(MODEL_PATH, TSDataType.TEXT),
+ new ColumnHeader(HYPERPARAMETER, TSDataType.TEXT));
public static final List<ColumnHeader> showTrailsColumnHeaders =
ImmutableList.of(
new ColumnHeader(TRAIL_ID, TSDataType.TEXT),
- new ColumnHeader(HYPERPARAMETER, TSDataType.TEXT),
- new ColumnHeader(MODEL_PATH, TSDataType.TEXT));
+ new ColumnHeader(MODEL_PATH, TSDataType.TEXT),
+ new ColumnHeader(HYPERPARAMETER, TSDataType.TEXT));
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
index e5670729f2..c7b07431d0 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
@@ -170,10 +170,10 @@ public class DatasetHeaderFactory {
}
public static DatasetHeader getShowModelsHeader() {
- return new DatasetHeader(ColumnHeaderConstant.showModelsColumnHeaders, false);
+ return new DatasetHeader(ColumnHeaderConstant.showModelsColumnHeaders, true);
}
public static DatasetHeader getShowTrailsHeader() {
- return new DatasetHeader(ColumnHeaderConstant.showTrailsColumnHeaders, false);
+ return new DatasetHeader(ColumnHeaderConstant.showTrailsColumnHeaders, true);
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
index 7fd719e0fd..750e0dd5ae 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
@@ -36,6 +36,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -57,29 +58,37 @@ public class ShowModelsTask implements IConfigTask {
.collect(Collectors.toList());
TsBlockBuilder builder = new TsBlockBuilder(outputDataTypes);
for (ByteBuffer modelInfo : modelInfoList) {
+ String modelId = ReadWriteIOUtils.readString(modelInfo);
+ String modelTask = ReadWriteIOUtils.readString(modelInfo);
+ String modelType = ReadWriteIOUtils.readString(modelInfo);
+ String queryBody = ReadWriteIOUtils.readString(modelInfo);
+ String trainingState = ReadWriteIOUtils.readString(modelInfo);
+ String modelPath = ReadWriteIOUtils.readString(modelInfo);
+
+ int listSize = ReadWriteIOUtils.readInt(modelInfo);
+ List<String> modelHyperparameter = new ArrayList<>();
+ for (int i = 0; i < listSize; i++) {
+ modelHyperparameter.add(ReadWriteIOUtils.readString(modelInfo));
+ }
+
builder.getTimeColumnBuilder().writeLong(0L);
- builder
- .getColumnBuilder(0)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
- builder
- .getColumnBuilder(1)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
- builder
- .getColumnBuilder(2)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
- builder
- .getColumnBuilder(3)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
- builder
- .getColumnBuilder(4)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
- builder
- .getColumnBuilder(5)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
- builder
- .getColumnBuilder(6)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(modelInfo)));
+ builder.getColumnBuilder(0).writeBinary(Binary.valueOf(modelId));
+ builder.getColumnBuilder(1).writeBinary(Binary.valueOf(modelTask));
+ builder.getColumnBuilder(2).writeBinary(Binary.valueOf(modelType));
+ builder.getColumnBuilder(3).writeBinary(Binary.valueOf(queryBody));
+ builder.getColumnBuilder(4).writeBinary(Binary.valueOf(trainingState));
+ builder.getColumnBuilder(5).writeBinary(Binary.valueOf(modelPath));
+ builder.getColumnBuilder(6).writeBinary(Binary.valueOf(modelHyperparameter.get(0)));
builder.declarePosition();
+
+ for (int i = 1; i < listSize; i++) {
+ builder.getTimeColumnBuilder().writeLong(0L);
+ for (int columnIndex = 0; columnIndex <= 5; columnIndex++) {
+ builder.getColumnBuilder(columnIndex).writeBinary(Binary.valueOf(""));
+ }
+ builder.getColumnBuilder(6).writeBinary(Binary.valueOf(modelHyperparameter.get(i)));
+ builder.declarePosition();
+ }
}
DatasetHeader datasetHeader = DatasetHeaderFactory.getShowModelsHeader();
future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS, builder.build(), datasetHeader));
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowTrailsTask.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowTrailsTask.java
index a428c27794..ddb9a5e385 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowTrailsTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowTrailsTask.java
@@ -36,6 +36,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -61,17 +62,27 @@ public class ShowTrailsTask implements IConfigTask {
.collect(Collectors.toList());
TsBlockBuilder builder = new TsBlockBuilder(outputDataTypes);
for (ByteBuffer trailInfo : trailInfoList) {
+ String trailId = ReadWriteIOUtils.readString(trailInfo);
+ String modelPath = ReadWriteIOUtils.readString(trailInfo);
+ int listSize = ReadWriteIOUtils.readInt(trailInfo);
+ List<String> modelHyperparameter = new ArrayList<>();
+ for (int i = 0; i < listSize; i++) {
+ modelHyperparameter.add(ReadWriteIOUtils.readString(trailInfo));
+ }
+
builder.getTimeColumnBuilder().writeLong(0L);
- builder
- .getColumnBuilder(0)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(trailInfo)));
- builder
- .getColumnBuilder(1)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(trailInfo)));
- builder
- .getColumnBuilder(2)
- .writeBinary(Binary.valueOf(ReadWriteIOUtils.readString(trailInfo)));
+ builder.getColumnBuilder(0).writeBinary(Binary.valueOf(trailId));
+ builder.getColumnBuilder(1).writeBinary(Binary.valueOf(modelPath));
+ builder.getColumnBuilder(2).writeBinary(Binary.valueOf(modelHyperparameter.get(0)));
builder.declarePosition();
+
+ for (int i = 1; i < listSize; i++) {
+ builder.getTimeColumnBuilder().writeLong(0L);
+ builder.getColumnBuilder(0).writeBinary(Binary.valueOf(""));
+ builder.getColumnBuilder(1).writeBinary(Binary.valueOf(""));
+ builder.getColumnBuilder(2).writeBinary(Binary.valueOf(modelHyperparameter.get(i)));
+ builder.declarePosition();
+ }
}
DatasetHeader datasetHeader = DatasetHeaderFactory.getShowTrailsHeader();
future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS, builder.build(), datasetHeader));
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ConcatExpressionWithSuffixPathsVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ConcatExpressionWithSuffixPathsVisitor.java
index 4afbe910ee..a8e565e7da 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ConcatExpressionWithSuffixPathsVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ConcatExpressionWithSuffixPathsVisitor.java
@@ -60,8 +60,7 @@ public class ConcatExpressionWithSuffixPathsVisitor
}
List<List<Expression>> childExpressionsList = new ArrayList<>();
cartesianProduct(extendedExpressions, childExpressionsList, 0, new ArrayList<>());
- return reconstructFunctionExpressions(
- (FunctionExpression) functionExpression, childExpressionsList);
+ return reconstructFunctionExpressions(functionExpression, childExpressionsList);
}
@Override
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
index e3951749d4..422617162d 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
@@ -109,7 +109,6 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
/** Convert SQL and RPC requests to {@link Statement}. */
public class StatementGenerator {
@@ -843,30 +842,30 @@ public class StatementGenerator {
new ResultColumn(
new TimeSeriesOperand(new PartialPath("", false)), ResultColumn.ColumnType.RAW));
- WhereCondition whereCondition = new WhereCondition();
- String queryFilter = fetchTimeseriesReq.getQueryFilter();
- String[] times = queryFilter.split(",");
- int predictNum = 0;
- LessThanExpression rightPredicate = null;
- GreaterEqualExpression leftPredicate = null;
- if (!Objects.equals(times[0], "-1")) {
- leftPredicate =
- new GreaterEqualExpression(
- new TimestampOperand(), new ConstantOperand(TSDataType.INT64, times[0]));
- predictNum += 1;
- }
- if (!Objects.equals(times[1], "-1")) {
- rightPredicate =
- new LessThanExpression(
- new TimestampOperand(), new ConstantOperand(TSDataType.INT64, times[1]));
- predictNum += 2;
- }
- whereCondition.setPredicate(
- predictNum == 3
- ? new LogicAndExpression(leftPredicate, rightPredicate)
- : (predictNum == 1 ? leftPredicate : rightPredicate));
-
- queryStatement.setWhereCondition(whereCondition);
+ // WhereCondition whereCondition = new WhereCondition();
+ // String queryFilter = fetchTimeseriesReq.getQueryFilter();
+ // String[] times = queryFilter.split(",");
+ // int predictNum = 0;
+ // LessThanExpression rightPredicate = null;
+ // GreaterEqualExpression leftPredicate = null;
+ // if (!Objects.equals(times[0], "-1")) {
+ // leftPredicate =
+ // new GreaterEqualExpression(
+ // new TimestampOperand(), new ConstantOperand(TSDataType.INT64, times[0]));
+ // predictNum += 1;
+ // }
+ // if (!Objects.equals(times[1], "-1")) {
+ // rightPredicate =
+ // new LessThanExpression(
+ // new TimestampOperand(), new ConstantOperand(TSDataType.INT64, times[1]));
+ // predictNum += 2;
+ // }
+ // whereCondition.setPredicate(
+ // predictNum == 3
+ // ? new LogicAndExpression(leftPredicate, rightPredicate)
+ // : (predictNum == 1 ? leftPredicate : rightPredicate));
+ //
+ // queryStatement.setWhereCondition(whereCondition);
queryStatement.setFromComponent(fromComponent);
queryStatement.setSelectComponent(selectComponent);
return queryStatement;