You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2019/04/20 17:07:56 UTC
[incubator-iotdb] 01/01: add an IT for testing query data using an
embeded IoTDB engine
This is an automated email from the ASF dual-hosted git repository.
hxd pushed a commit to branch add_query_unclosed_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 5824a39645e8c5c1587c43fdb9a5b9be1bc4eedd
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Sun Apr 21 01:07:26 2019 +0800
add an IT for testing query data using an embeded IoTDB engine
---
.../integration/QueryDataFromUnclosedTsFileIT.java | 103 +++++++++++++++++++++
1 file changed, 103 insertions(+)
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/QueryDataFromUnclosedTsFileIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/QueryDataFromUnclosedTsFileIT.java
new file mode 100644
index 0000000..33dba88
--- /dev/null
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/QueryDataFromUnclosedTsFileIT.java
@@ -0,0 +1,103 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.integration;
+
+import static org.apache.iotdb.db.utils.EnvironmentUtils.TEST_QUERY_CONTEXT;
+import static org.apache.iotdb.db.utils.EnvironmentUtils.TEST_QUERY_JOB_ID;
+
+import java.io.IOException;
+import java.util.Collections;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.engine.filenode.FileNodeManager;
+import org.apache.iotdb.db.exception.FileNodeManagerException;
+import org.apache.iotdb.db.exception.MetadataArgsErrorException;
+import org.apache.iotdb.db.exception.PathErrorException;
+import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.db.metadata.MManager;
+import org.apache.iotdb.db.query.context.QueryContext;
+import org.apache.iotdb.db.query.control.QueryResourceManager;
+import org.apache.iotdb.db.query.executor.EngineQueryRouter;
+import org.apache.iotdb.db.utils.EnvironmentUtils;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.iotdb.tsfile.read.common.Path;
+import org.apache.iotdb.tsfile.read.common.RowRecord;
+import org.apache.iotdb.tsfile.read.expression.QueryExpression;
+import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
+import org.apache.iotdb.tsfile.write.record.TSRecord;
+import org.apache.iotdb.tsfile.write.record.datapoint.IntDataPoint;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class QueryDataFromUnclosedTsFileIT {
+
+ long bufferWriteFileSize;
+ FileNodeManager sgManager;
+ MManager mManager;
+ EngineQueryRouter queryManager;
+ @Before
+ public void setUp() throws IOException, FileNodeManagerException, StartupException {
+ EnvironmentUtils.cleanEnv();
+ EnvironmentUtils.envSetUp();
+ TEST_QUERY_JOB_ID = QueryResourceManager.getInstance().assignJobId();
+ TEST_QUERY_CONTEXT = new QueryContext(TEST_QUERY_JOB_ID);
+ bufferWriteFileSize = IoTDBDescriptor.getInstance().getConfig().getBufferwriteFileSizeThreshold();
+ //IoTDBDescriptor.getInstance().getConfig().setBufferwriteFileSizeThreshold(100);
+ sgManager = FileNodeManager.getInstance();
+ mManager = MManager.getInstance();
+ queryManager = new EngineQueryRouter();
+ }
+
+ @After
+ public void tearDown() throws FileNodeManagerException, IOException {
+ IoTDBDescriptor.getInstance().getConfig().setBufferwriteFileSizeThreshold(bufferWriteFileSize);;
+
+ EnvironmentUtils.cleanEnv();
+
+ }
+
+ @Test
+ public void test()
+ throws FileNodeManagerException, IOException, PathErrorException, MetadataArgsErrorException {
+ mManager.setStorageLevelToMTree("root.test");
+ mManager.addPathToMTree("root.test.d1.s1", TSDataType.INT32, TSEncoding.RLE, CompressionType.SNAPPY, Collections.emptyMap());
+ mManager.addPathToMTree("root.test.d2.s1", TSDataType.INT32, TSEncoding.RLE, CompressionType.SNAPPY, Collections.emptyMap());
+ sgManager.addTimeSeries(new Path("root.test.d1", "s1"), TSDataType.INT32, TSEncoding.RLE, CompressionType.SNAPPY, Collections
+ .emptyMap());
+ sgManager.addTimeSeries(new Path("root.test.d2", "s1"), TSDataType.INT32, TSEncoding.RLE, CompressionType.SNAPPY, Collections
+ .emptyMap());
+ long time = System.currentTimeMillis();
+ for (int i=0; i < 20000; i++) {
+ sgManager.insert(new TSRecord(i, "root.test.d1").addTuple(new IntDataPoint("s1", i)), false);
+ sgManager.insert(new TSRecord(i, "root.test.d2").addTuple(new IntDataPoint("s1", i)), false);
+ }
+ QueryExpression qe = QueryExpression
+ .create(Collections.singletonList(new Path("root.test.d1", "s1")), null);
+ QueryDataSet result = queryManager.query(qe, TEST_QUERY_CONTEXT);
+ while (result.hasNext()) {
+ result.next();
+ //System.out.println(record.getTimestamp() + "," + record.getFields().get(0).getIntV());
+ }
+
+ }
+
+}