Skip to content

Commit b0501ae

Browse files
authored
Pipe IT: Avoid IoTDBPipeTypeConversionIT from creating too many DataRegions and SchemaRegions (#13378)
1 parent 996ce09 commit b0501ae

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeTypeConversionIT.java

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public class IoTDBPipeTypeConversionIT extends AbstractPipeDualManualIT {
5454
// Test for converting BOOLEAN to OtherType
5555
@Test
5656
public void testBooleanToOtherTypeConversion() {
57+
createDataPipe();
5758
executeAndVerifyTypeConversion(TSDataType.BOOLEAN, TSDataType.INT32);
5859
executeAndVerifyTypeConversion(TSDataType.BOOLEAN, TSDataType.INT64);
5960
executeAndVerifyTypeConversion(TSDataType.BOOLEAN, TSDataType.FLOAT);
@@ -68,6 +69,7 @@ public void testBooleanToOtherTypeConversion() {
6869
// Test for converting INT32 to OtherType
6970
@Test
7071
public void testInt32ToOtherTypeConversion() {
72+
createDataPipe();
7173
executeAndVerifyTypeConversion(TSDataType.INT32, TSDataType.BOOLEAN);
7274
executeAndVerifyTypeConversion(TSDataType.INT32, TSDataType.INT64);
7375
executeAndVerifyTypeConversion(TSDataType.INT32, TSDataType.FLOAT);
@@ -82,6 +84,7 @@ public void testInt32ToOtherTypeConversion() {
8284
// Test for converting INT64 to OtherType
8385
@Test
8486
public void testInt64ToOtherTypeConversion() {
87+
createDataPipe();
8588
executeAndVerifyTypeConversion(TSDataType.INT64, TSDataType.BOOLEAN);
8689
executeAndVerifyTypeConversion(TSDataType.INT64, TSDataType.INT32);
8790
executeAndVerifyTypeConversion(TSDataType.INT64, TSDataType.FLOAT);
@@ -96,6 +99,7 @@ public void testInt64ToOtherTypeConversion() {
9699
// Test for converting FLOAT to OtherType
97100
@Test
98101
public void testFloatToOtherTypeConversion() {
102+
createDataPipe();
99103
executeAndVerifyTypeConversion(TSDataType.FLOAT, TSDataType.BOOLEAN);
100104
executeAndVerifyTypeConversion(TSDataType.FLOAT, TSDataType.INT32);
101105
executeAndVerifyTypeConversion(TSDataType.FLOAT, TSDataType.INT64);
@@ -110,6 +114,7 @@ public void testFloatToOtherTypeConversion() {
110114
// Test for converting DOUBLE to OtherType
111115
@Test
112116
public void testDoubleToOtherTypeConversion() {
117+
createDataPipe();
113118
executeAndVerifyTypeConversion(TSDataType.DOUBLE, TSDataType.BOOLEAN);
114119
executeAndVerifyTypeConversion(TSDataType.DOUBLE, TSDataType.INT32);
115120
executeAndVerifyTypeConversion(TSDataType.DOUBLE, TSDataType.INT64);
@@ -124,6 +129,7 @@ public void testDoubleToOtherTypeConversion() {
124129
// Test for converting TEXT to OtherType
125130
@Test
126131
public void testTextToOtherTypeConversion() {
132+
createDataPipe();
127133
executeAndVerifyTypeConversion(TSDataType.TEXT, TSDataType.BLOB);
128134
executeAndVerifyTypeConversion(TSDataType.TEXT, TSDataType.STRING);
129135
executeAndVerifyTypeConversion(TSDataType.TEXT, TSDataType.BOOLEAN);
@@ -138,6 +144,7 @@ public void testTextToOtherTypeConversion() {
138144
// Test for converting TIMESTAMP to OtherType
139145
@Test
140146
public void testTimestampToOtherTypeConversion() {
147+
createDataPipe();
141148
executeAndVerifyTypeConversion(TSDataType.TIMESTAMP, TSDataType.BOOLEAN);
142149
executeAndVerifyTypeConversion(TSDataType.TIMESTAMP, TSDataType.INT32);
143150
executeAndVerifyTypeConversion(TSDataType.TIMESTAMP, TSDataType.INT64);
@@ -152,6 +159,7 @@ public void testTimestampToOtherTypeConversion() {
152159
// Test for converting DATE to OtherType
153160
@Test
154161
public void testDateToOtherTypeConversion() {
162+
createDataPipe();
155163
executeAndVerifyTypeConversion(TSDataType.DATE, TSDataType.BOOLEAN);
156164
executeAndVerifyTypeConversion(TSDataType.DATE, TSDataType.INT32);
157165
executeAndVerifyTypeConversion(TSDataType.DATE, TSDataType.INT64);
@@ -165,6 +173,7 @@ public void testDateToOtherTypeConversion() {
165173
// Test for converting BLOB to OtherType
166174
@Test
167175
public void testBlobToOtherTypeConversion() {
176+
createDataPipe();
168177
executeAndVerifyTypeConversion(TSDataType.BLOB, TSDataType.TEXT);
169178
executeAndVerifyTypeConversion(TSDataType.BLOB, TSDataType.STRING);
170179
executeAndVerifyTypeConversion(TSDataType.BLOB, TSDataType.BOOLEAN);
@@ -179,6 +188,7 @@ public void testBlobToOtherTypeConversion() {
179188
// Test for converting STRING to OtherType
180189
@Test
181190
public void testStringToOtherTypeConversion() {
191+
createDataPipe();
182192
executeAndVerifyTypeConversion(TSDataType.STRING, TSDataType.TEXT);
183193
executeAndVerifyTypeConversion(TSDataType.STRING, TSDataType.BLOB);
184194
executeAndVerifyTypeConversion(TSDataType.STRING, TSDataType.BOOLEAN);
@@ -193,8 +203,8 @@ private void executeAndVerifyTypeConversion(TSDataType source, TSDataType target
193203
List<Pair> pairs = prepareTypeConversionTest(source, target);
194204
TestUtils.assertDataEventuallyOnEnv(
195205
receiverEnv,
196-
String.format("select * from root.%s2%s.**", source.name(), target.name()),
197-
String.format("Time,root.%s2%s.test.status,", source.name(), target.name()),
206+
String.format("select status from root.test.%s2%s", source.name(), target.name()),
207+
String.format("Time,root.test.%s2%s.status,", source.name(), target.name()),
198208
createExpectedResultSet(pairs, source, target),
199209
30);
200210
}
@@ -206,17 +216,8 @@ private List<Pair> prepareTypeConversionTest(TSDataType sourceType, TSDataType t
206216
createTimeSeries(sourceTypeName, targetTypeName, sourceTypeName, senderEnv);
207217
createTimeSeries(sourceTypeName, targetTypeName, targetTypeName, receiverEnv);
208218

209-
createDataPipe(sourceTypeName, targetTypeName);
210-
211219
List<Pair> pairs = createTestDataForType(sourceTypeName);
212220

213-
// wait pipe start
214-
try {
215-
Thread.sleep(2000);
216-
} catch (InterruptedException e) {
217-
throw new RuntimeException(e);
218-
}
219-
220221
executeDataInsertions(pairs, sourceType, targetType);
221222
return pairs;
222223
}
@@ -225,25 +226,20 @@ private void createTimeSeries(
225226
String sourceTypeName, String targetTypeName, String dataType, BaseEnv env) {
226227
String timeSeriesCreationQuery =
227228
String.format(
228-
"create timeseries root.%s2%s.test.status with datatype=%s,encoding=PLAIN",
229+
"create timeseries root.test.%s2%s.status with datatype=%s,encoding=PLAIN",
229230
sourceTypeName, targetTypeName, dataType);
230231
TestUtils.tryExecuteNonQueriesWithRetry(
231232
env, Collections.singletonList(timeSeriesCreationQuery));
232233
}
233234

234-
private void createDataPipe(String sourceTypeName, String targetTypeName) {
235+
private void createDataPipe() {
235236
String sql =
236237
String.format(
237-
"create pipe %s2%s"
238-
+ " with source ('source'='iotdb-source','source.path'='root.%s2%s.**','realtime.mode'='forced-log','realtime.enable'='true','history.enable'='false')"
238+
"create pipe test"
239+
+ " with source ('source'='iotdb-source','source.path'='root.test.**','realtime.mode'='forced-log','realtime.enable'='true','history.enable'='false')"
239240
+ " with processor ('processor'='do-nothing-processor')"
240241
+ " with sink ('node-urls'='%s:%s','batch.enable'='false','sink.format'='tablet')",
241-
sourceTypeName,
242-
targetTypeName,
243-
sourceTypeName,
244-
targetTypeName,
245-
receiverEnv.getIP(),
246-
receiverEnv.getPort());
242+
receiverEnv.getIP(), receiverEnv.getPort());
247243
TestUtils.tryExecuteNonQueriesWithRetry(senderEnv, Collections.singletonList(sql));
248244
}
249245

@@ -311,7 +307,7 @@ private List<String> createInsertStatementsForString(
311307
for (Pair pair : testData) {
312308
executes.add(
313309
String.format(
314-
"insert into root.%s2%s.test(timestamp,status) values (%s,'%s');",
310+
"insert into root.test.%s2%s(timestamp,status) values (%s,'%s');",
315311
sourceType,
316312
targetType,
317313
pair.left,
@@ -327,7 +323,7 @@ private List<String> createInsertStatementsForNumeric(
327323
for (Pair pair : testData) {
328324
executes.add(
329325
String.format(
330-
"insert into root.%s2%s.test(timestamp,status) values (%s,%s);",
326+
"insert into root.test.%s2%s(timestamp,status) values (%s,%s);",
331327
sourceType, targetType, pair.left, pair.right));
332328
}
333329
executes.add("flush");
@@ -340,7 +336,7 @@ private List<String> createInsertStatementsForTimestamp(
340336
for (Pair pair : testData) {
341337
executes.add(
342338
String.format(
343-
"insert into root.%s2%s.test(timestamp,status) values (%s,%s);",
339+
"insert into root.test.%s2%s(timestamp,status) values (%s,%s);",
344340
sourceType, targetType, pair.left, pair.right));
345341
}
346342
executes.add("flush");
@@ -353,7 +349,7 @@ private List<String> createInsertStatementsForLocalDate(
353349
for (Pair pair : testData) {
354350
executes.add(
355351
String.format(
356-
"insert into root.%s2%s.test(timestamp,status) values (%s,'%s');",
352+
"insert into root.test.%s2%s(timestamp,status) values (%s,'%s');",
357353
sourceType, targetType, pair.left, DateUtils.formatDate((Integer) pair.right)));
358354
}
359355
executes.add("flush");
@@ -367,7 +363,7 @@ private List<String> createInsertStatementsForBlob(
367363
String value = BytesUtils.parseBlobByteArrayToString(((Binary) pair.right).getValues());
368364
executes.add(
369365
String.format(
370-
"insert into root.%s2%s.test(timestamp,status) values (%s,X'%s');",
366+
"insert into root.test.%s2%s(timestamp,status) values (%s,X'%s');",
371367
sourceType, targetType, pair.left, value.substring(2)));
372368
}
373369
executes.add("flush");

0 commit comments

Comments
 (0)