/*
* 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.engine.compaction;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.engine.compaction.execute.performer.impl.ReadPointCompactionPerformer;
import org.apache.iotdb.db.engine.compaction.execute.task.CrossSpaceCompactionTask;
import org.apache.iotdb.db.engine.compaction.execute.task.InnerSpaceCompactionTask;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
import org.apache.iotdb.db.exception.StorageEngineException;
import org.apache.iotdb.db.query.control.FileReaderManager;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
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.TimeValuePair;
import org.apache.iotdb.tsfile.read.common.TimeRange;
import org.apache.iotdb.tsfile.write.chunk.AlignedChunkWriterImpl;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.createChunkWriter;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.createCompressionType;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.createDataType;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.createEncodingType;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.createTimeseries;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.testStorageGroup;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.writeAlignedChunk;
import static org.apache.iotdb.db.engine.compaction.utils.TsFileGeneratorUtils.writeOneAlignedPage;
import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
public class ReadPointAlignedCrossCompactionTest extends AbstractCompactionTest {
private final String oldThreadName = Thread.currentThread().getName();
@Before
public void setUp()
throws IOException, WriteProcessException, MetadataException, InterruptedException {
super.setUp();
IoTDBDescriptor.getInstance().getConfig().setTargetChunkSize(512);
IoTDBDescriptor.getInstance().getConfig().setTargetChunkPointNum(100);
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(30);
TSFileDescriptor.getInstance().getConfig().setMaxDegreeOfIndexNode(3);
Thread.currentThread().setName("pool-1-IoTDB-Compaction-Worker-1");
}
@After
public void tearDown() throws IOException, StorageEngineException {
super.tearDown();
Thread.currentThread().setName(oldThreadName);
for (TsFileResource tsFileResource : seqResources) {
FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath());
}
for (TsFileResource tsFileResource : unseqResources) {
FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath());
}
}
@Test
public void test1() throws MetadataException, IOException {
List<PartialPath> timeserisPathList = new ArrayList<>();
List<TSDataType> tsDataTypes = new ArrayList<>();
// seq file 1
int deviceNum = 10;
int measurementNum = 10;
TsFileResource resource = createEmptyFileAndResource(true);
try (TsFileIOWriter tsFileIOWriter = new TsFileIOWriter(resource.getTsFile())) {
// write the data in device
for (int deviceIndex = 0; deviceIndex < deviceNum; deviceIndex++) {
tsFileIOWriter.startChunkGroup(COMPACTION_TEST_SG + PATH_SEPARATOR + "d" + deviceIndex);
List<TSDataType> dataTypes = createDataType(measurementNum);
List<TSEncoding> encodings = createEncodingType(measurementNum);
List<CompressionType> compressionTypes = createCompressionType(measurementNum);
List<Integer> measurementIndexes = new ArrayList<>();
for (int i = 0; i < measurementNum; i++) {
measurementIndexes.add(i);
}
List<PartialPath> timeseriesPath =
createTimeseries(deviceIndex, measurementIndexes, dataTypes, true);
List<TimeRange> pages = new ArrayList<>();
pages.add(new TimeRange(0L, 300L));
pages.add(new TimeRange(500L, 600L));
for (IChunkWriter iChunkWriter :
createChunkWriter(timeseriesPath, dataTypes, encodings, compressionTypes, true)) {
writeAlignedChunk((AlignedChunkWriterImpl) iChunkWriter, tsFileIOWriter, pages, true);
}
tsFileIOWriter.endChunkGroup();
resource.updateStartTime(COMPACTION_TEST_SG + PATH_SEPARATOR + "d" + deviceIndex, 0);
resource.updateEndTime(COMPACTION_TEST_SG + PATH_SEPARATOR + "d" + deviceIndex, 599);
timeserisPathList.addAll(timeseriesPath);
tsDataTypes.addAll(dataTypes);
}
tsFileIOWriter.endFile();
}
resource.serialize();
seqResources.add(resource);
// unseq file 1
deviceNum = 15;
measurementNum = 5;
resource = createEmptyFileAndResource(false);
try (TsFileIOWriter tsFileIOWriter = new TsFileIOWriter(resource.getTsFile())) {
// write the data in device
for (int deviceIndex = 0; deviceIndex < deviceNum; deviceIndex++) {
tsFileIOWriter.startChunkGroup(COMPACTION_TEST_SG + PATH_SEPARATOR + "d" + deviceIndex);
List<TSDataType> dataTypes = createDataType(measurementNum);
List<TSEncoding> encodings = createEncodingType(measurementNum);
List<CompressionType> compressionTypes = createCompressionType(measurementNum);
List<Integer> measurementIndexes = new ArrayList<>();
for (int i = 0; i < measurementNum; i++) {
measurementIndexes.add(i);
}
List<PartialPath> timeseriesPath =
createTimeseries(deviceIndex, measurementIndexes, dataTypes, true);
List<TimeRange> pages = new ArrayList<>();
pages.add(new TimeRange(200L, 2200L));
for (IChunkWriter iChunkWriter :
createChunkWriter(timeseriesPath, dataTypes, encodings, compressionTypes, true)) {
writeAlignedChunk((AlignedChunkWriterImpl) iChunkWriter, tsFileIOWriter, pages, false);
}
tsFileIOWriter.endChunkGroup();
resource.updateStartTime(COMPACTION_TEST_SG + PATH_SEPARATOR + "d" + deviceIndex, 200);
resource.updateEndTime(COMPACTION_TEST_SG + PATH_SEPARATOR + "d" + deviceIndex, 2199);
timeserisPathList.addAll(timeseriesPath);
tsDataTypes.addAll(dataTypes);
}
tsFileIOWriter.endFil
没有合适的资源?快使用搜索试试~ 我知道了~
(Internet of Things Database) 是一款时序数据库管理系统,可以为用户提供数据收集、存储和分析等服务
共2000个文件
java:4369个
md:360个
png:174个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 33 浏览量
2023-06-04
16:35:08
上传
评论
收藏 43.23MB ZIP 举报
温馨提示
IoTDB (Internet of Things Database) 是一款时序数据库管理系统,可以为用户提供数据收集、存储和分析等服务。IoTDB由于其轻量级架构、高性能和高可用的特性,以及与 Hadoop 和 Spark 生态的无缝集成,满足了工业 IoT 领域中海量数据存储、高吞吐量数据写入和复杂数据查询分析的需求。IoTDB的主要特点如下:灵活的部署策略。硬件成本低。高效的目录结构。高吞吐量读写。丰富的查询语义。学习成本非常低。与先进的开放源码生态系统的无缝集成。
资源推荐
资源详情
资源评论
收起资源包目录
(Internet of Things Database) 是一款时序数据库管理系统,可以为用户提供数据收集、存储和分析等服务 (2000个子文件)
main.c 5KB
base64.c 4KB
Session.cpp 78KB
sessionIT.cpp 21KB
SessionExample.cpp 14KB
AlignedTimeseriesSessionExample.cpp 13KB
main.cpp 1KB
docsearch.css 1KB
plugin.go 14KB
iotdb_resource_handler.go 5KB
main.go 2KB
Magefile.go 1KB
Session.h 42KB
base64.h 1KB
ReadPointAlignedCrossCompactionTest.java 330KB
FastAlignedCrossCompactionTest.java 330KB
ReadPointNonAlignedCrossCompactionTest.java 330KB
FastNonAlignedCrossCompactionTest.java 330KB
ReadPointCompactionPerformerTest.java 259KB
IoTDBAlignedSeriesQueryIT.java 244KB
FastCrossCompactionPerformerTest.java 170KB
ASTVisitor.java 163KB
AnalyzeVisitor.java 145KB
DataRegion.java 128KB
CrossSpaceCompactionWithFastPerformerValidationTest.java 127KB
Session.java 125KB
IoTDBConfig.java 124KB
CrossSpaceCompactionWithReadPointPerformerValidationTest.java 120KB
OperatorTreeGenerator.java 120KB
SessionPool.java 119KB
ClusterConfigTaskExecutor.java 104KB
TsFileSequenceReader.java 90KB
IoTDBDescriptor.java 87KB
IoTDBDatabaseMetadata.java 86KB
IoTDBUDTFBuiltinScalarFunctionIT.java 83KB
ClientRPCServiceImpl.java 83KB
FastInnerCompactionPerformerTest.java 80KB
MergeSortOperatorTest.java 78KB
ConfigNodeClient.java 75KB
ConfigManager.java 74KB
CompactionSchedulerTest.java 74KB
CompactionSchedulerWithFastPerformerTest.java 73KB
DataNodeInternalRPCServiceImpl.java 72KB
OperatorMemoryTest.java 70KB
ConfigPhysicalPlanSerDeTest.java 70KB
IoTDBWithoutNullAllFilterIT.java 63KB
AnomalyIT.java 62KB
AlignedByDeviceTest.java 60KB
IoTDBWithoutNullAnyFilterIT.java 60KB
SizeTieredCompactionRecoverTest.java 60KB
TsFileProcessor.java 59KB
ReadChunkCompactionPerformerNoAlignedTest.java 56KB
InnerSeqCompactionWithFastPerformerTest.java 56KB
TsFileIOWriterMemoryControlTest.java 55KB
InnerSeqCompactionWithReadChunkPerformerTest.java 54KB
SchemaRegionSchemaFileImpl.java 53KB
SeriesScanUtil.java 53KB
IoTDBOrderByWithAlignByDeviceIT.java 52KB
SchemaRegionMemoryImpl.java 52KB
SourceRewriter.java 52KB
LogicalPlanBuilder.java 51KB
IoTDBSessionSimpleIT.java 51KB
PartitionManager.java 51KB
CrossSpaceCompactionWithFastPerformerTest.java 50KB
CrossSpaceCompactionWithReadPointPerformerTest.java 50KB
AnalyzeTest.java 50KB
MultiTsFileDeviceIteratorTest.java 50KB
IoTDBTagIT.java 50KB
IoTDBOrderByIT.java 50KB
LinearFillOperatorTest.java 47KB
InnerUnseqCompactionWithReadPointPerformerTest.java 47KB
InnerUnseqCompactionWithFastPerformerTest.java 47KB
TsFileOpBlockTest.java 46KB
DataRegionTest.java 45KB
QueryLogicalPlanUtil.java 45KB
TsFileOpBlock.java 44KB
IoTDBAlignByDeviceIT.java 44KB
RawDataAggregationOperatorTest.java 43KB
MTreeBelowSGCachedImpl.java 43KB
SerializeUtilsTest.java 42KB
SchemaRegionBasicTest.java 42KB
FastCompactionPerformerNoAlignedTest.java 42KB
RewriteCompactionFileSelectorTest.java 42KB
RewriteCrossSpaceCompactionRecoverTest.java 42KB
AggregationDistributionTest.java 42KB
MTreeBelowSGMemoryImpl.java 42KB
IoTDBSimpleQueryIT.java 42KB
AlignedTVList.java 42KB
StatementGenerator.java 41KB
TsFileResource.java 41KB
SeriesScanCostMetricSet.java 40KB
SessionConnection.java 40KB
ConfigNodeConfig.java 40KB
ExpressionAnalyzer.java 40KB
SchemaFileTest.java 40KB
PartitionInfo.java 39KB
ProcedureManager.java 39KB
ConfigNodeRPCServiceProcessor.java 38KB
PipelineBuilderTest.java 38KB
LogicalPlanVisitor.java 38KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6732
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 简单的Python示例,演示了如何使用TCP/IP协议进行基本的客户端和服务器通信
- 考试.sql
- keil2 + proteus + 8051.exe
- 1961ee27df03bd4595d28e24b00dde4e_744c805f7e4fb4d40fa3f695bfbab035_8(1).c
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
- windows注册表编辑工具
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
- 校园通行码预约管理系统20240522075502
- 车类型数据集6250张VOC+YOLO格式.zip
- The PyTorch implementation of STGCN.STGCN-main.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功