You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yo...@apache.org on 2025/09/11 05:41:01 UTC
(iotdb) 02/02: Update AINodeInferenceSQLIT.java
This is an automated email from the ASF dual-hosted git repository.
yongzao pushed a commit to branch revert-transformer-update
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5c237882b5a8ec5ecaa35b0d29e5f1ef4181ea5f
Author: Yongzao <53...@qq.com>
AuthorDate: Thu Sep 11 13:40:52 2025 +0800
Update AINodeInferenceSQLIT.java
---
.../iotdb/ainode/it/AINodeInferenceSQLIT.java | 114 +++++++++++++++------
1 file changed, 82 insertions(+), 32 deletions(-)
diff --git a/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java b/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java
index c18e24a793a..2fcc180a3e3 100644
--- a/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/ainode/it/AINodeInferenceSQLIT.java
@@ -56,26 +56,12 @@ public class AINodeInferenceSQLIT {
"CREATE TIMESERIES root.AI.s1 WITH DATATYPE=DOUBLE, ENCODING=RLE",
"CREATE TIMESERIES root.AI.s2 WITH DATATYPE=INT32, ENCODING=RLE",
"CREATE TIMESERIES root.AI.s3 WITH DATATYPE=INT64, ENCODING=RLE",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(1,1.0,2.0,3,4)",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(2,2.0,3.0,4,5)",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(3,3.0,4.0,5,6)",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(4,4.0,5.0,6,7)",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(5,5.0,6.0,7,8)",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(6,6.0,7.0,8,9)",
- "insert into root.AI(timestamp,s0,s1,s2,s3) values(7,7.0,8.0,9,10)",
};
static String[] WRITE_SQL_IN_TABLE =
new String[] {
"CREATE DATABASE root",
"CREATE TABLE root.AI (s0 FLOAT FIELD, s1 DOUBLE FIELD, s2 INT32 FIELD, s3 INT64 FIELD)",
- "insert into root.AI(time,s0,s1,s2,s3) values(1,1.0,2.0,3,4)",
- "insert into root.AI(time,s0,s1,s2,s3) values(2,2.0,3.0,4,5)",
- "insert into root.AI(time,s0,s1,s2,s3) values(3,3.0,4.0,5,6)",
- "insert into root.AI(time,s0,s1,s2,s3) values(4,4.0,5.0,6,7)",
- "insert into root.AI(time,s0,s1,s2,s3) values(5,5.0,6.0,7,8)",
- "insert into root.AI(time,s0,s1,s2,s3) values(6,6.0,7.0,8,9)",
- "insert into root.AI(time,s0,s1,s2,s3) values(7,7.0,8.0,9,10)",
};
@BeforeClass
@@ -84,6 +70,24 @@ public class AINodeInferenceSQLIT {
EnvFactory.getEnv().initClusterEnvironment(1, 1);
prepareData(WRITE_SQL_IN_TREE);
prepareTableData(WRITE_SQL_IN_TABLE);
+ try (Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TREE_SQL_DIALECT);
+ Statement statement = connection.createStatement()) {
+ for (int i = 0; i < 2880; i++) {
+ statement.execute(
+ String.format(
+ "INSERT INTO root.AI(timestamp,s0,s1,s2,s3) VALUES(%d,%f,%f,%d,%d)",
+ i, (float) i, (double) i, i, i));
+ }
+ }
+ try (Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TABLE_SQL_DIALECT);
+ Statement statement = connection.createStatement()) {
+ for (int i = 0; i < 2880; i++) {
+ statement.execute(
+ String.format(
+ "INSERT INTO root.AI(time,s0,s1,s2,s3) VALUES(%d,%f,%f,%d,%d)",
+ i, (float) i, (double) i, i, i));
+ }
+ }
}
@AfterClass
@@ -109,6 +113,29 @@ public class AINodeInferenceSQLIT {
}
public void callInferenceTest(Statement statement) throws SQLException {
+ // SQL0: Invoke timer-sundial and timer-xl to inference, the result should success
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "CALL INFERENCE(sundial, \"select s1 from root.AI\", generateTime=true, predict_length=720)")) {
+ ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+ checkHeader(resultSetMetaData, "Time,output0");
+ int count = 0;
+ while (resultSet.next()) {
+ count++;
+ }
+ assertEquals(720, count);
+ }
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "CALL INFERENCE(timer_xl, \"select s2 from root.AI\", generateTime=true, predict_length=256)")) {
+ ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+ checkHeader(resultSetMetaData, "Time,output0");
+ int count = 0;
+ while (resultSet.next()) {
+ count++;
+ }
+ assertEquals(256, count);
+ }
// SQL1: user-defined model inferences multi-columns with generateTime=true
String sql1 =
"CALL INFERENCE(identity, \"select s0,s1,s2,s3 from root.AI\", generateTime=true)";
@@ -171,15 +198,15 @@ public class AINodeInferenceSQLIT {
// assertEquals(3, count);
// }
- try (ResultSet resultSet = statement.executeQuery(sql4)) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- checkHeader(resultSetMetaData, "Time,output0");
- int count = 0;
- while (resultSet.next()) {
- count++;
- }
- assertEquals(6, count);
- }
+ // try (ResultSet resultSet = statement.executeQuery(sql4)) {
+ // ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+ // checkHeader(resultSetMetaData, "Time,output0");
+ // int count = 0;
+ // while (resultSet.next()) {
+ // count++;
+ // }
+ // assertEquals(6, count);
+ // }
}
@Test
@@ -219,6 +246,29 @@ public class AINodeInferenceSQLIT {
public void selectForecastTestInTable() throws SQLException {
try (Connection connection = EnvFactory.getEnv().getConnection(BaseEnv.TABLE_SQL_DIALECT);
Statement statement = connection.createStatement()) {
+ // SQL0: Invoke timer-sundial and timer-xl to forecast, the result should success
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT * FROM FORECAST(model_id=>'sundial', input=>(SELECT time,s1 FROM root.AI) ORDER BY time, output_length=>720)")) {
+ ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+ checkHeader(resultSetMetaData, "time,s1");
+ int count = 0;
+ while (resultSet.next()) {
+ count++;
+ }
+ assertEquals(720, count);
+ }
+ try (ResultSet resultSet =
+ statement.executeQuery(
+ "SELECT * FROM FORECAST(model_id=>'timer_xl', input=>(SELECT time,s2 FROM root.AI) ORDER BY time, output_length=>256)")) {
+ ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+ checkHeader(resultSetMetaData, "time,s2");
+ int count = 0;
+ while (resultSet.next()) {
+ count++;
+ }
+ assertEquals(256, count);
+ }
// SQL1: user-defined model inferences multi-columns with generateTime=true
String sql1 =
"SELECT * FROM FORECAST(model_id=>'identity', input=>(SELECT time,s0,s1,s2,s3 FROM root.AI) ORDER BY time, output_length=>7)";
@@ -280,15 +330,15 @@ public class AINodeInferenceSQLIT {
// assertEquals(3, count);
// }
- try (ResultSet resultSet = statement.executeQuery(sql4)) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- checkHeader(resultSetMetaData, "time,s0");
- int count = 0;
- while (resultSet.next()) {
- count++;
- }
- assertEquals(6, count);
- }
+ // try (ResultSet resultSet = statement.executeQuery(sql4)) {
+ // ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
+ // checkHeader(resultSetMetaData, "time,s0");
+ // int count = 0;
+ // while (resultSet.next()) {
+ // count++;
+ // }
+ // assertEquals(6, count);
+ // }
}
}
}