This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch tsFile_v4
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/tsFile_v4 by this push:
new 6f99016a Replace MeasurmentId with interface Fix empty deviceId
initialization
6f99016a is described below
commit 6f99016a10456262b0c3b9aa89476609a486f6fc
Author: Tian Jiang <[email protected]>
AuthorDate: Mon Apr 15 13:03:01 2024 +0800
Replace MeasurmentId with interface
Fix empty deviceId initialization
---
.../tsfile/TsFileWriteAlignedWithTSRecord.java | 4 +-
.../tsfile/TsFileWriteAlignedWithTablet.java | 6 +-
.../org/apache/tsfile/TsFileWriteWithTSRecord.java | 4 +-
.../org/apache/tsfile/TsFileWriteWithTablet.java | 4 +-
.../tsfile/file/metadata/LogicalTableSchema.java | 9 +-
.../tsfile/file/metadata/StringArrayDeviceID.java | 4 +
.../apache/tsfile/file/metadata/TableSchema.java | 13 +--
.../apache/tsfile/read/TsFileSequenceReader.java | 22 +++--
.../apache/tsfile/read/common/block/TsBlock.java | 3 +-
.../org/apache/tsfile/utils/MeasurementGroup.java | 13 +--
.../apache/tsfile/utils/TsFileGeneratorUtils.java | 16 ++--
.../java/org/apache/tsfile/write/TsFileWriter.java | 105 ++++++++-------------
.../write/chunk/AlignedChunkGroupWriterImpl.java | 13 +--
.../tsfile/write/chunk/IChunkGroupWriter.java | 5 +-
.../chunk/NonAlignedChunkGroupWriterImpl.java | 6 +-
.../org/apache/tsfile/write/record/Tablet.java | 33 +++----
.../org/apache/tsfile/write/schema/Schema.java | 6 +-
.../write/writer/RestorableTsFileIOWriter.java | 11 ++-
.../tsfile/read/TsFileSequenceReaderTest.java | 8 +-
.../org/apache/tsfile/tableview/TableViewTest.java | 15 +--
.../org/apache/tsfile/utils/FileGenerator.java | 3 +-
.../tsfile/utils/TsFileGeneratorForTest.java | 5 +-
.../tsfile/write/DefaultSchemaTemplateTest.java | 5 +-
.../tsfile/write/MetadataIndexConstructorTest.java | 5 +-
.../apache/tsfile/write/TsFileIOWriterTest.java | 7 +-
.../apache/tsfile/write/TsFileWriteApiTest.java | 26 ++---
.../org/apache/tsfile/write/TsFileWriterTest.java | 9 +-
.../java/org/apache/tsfile/write/WriteTest.java | 5 +-
.../org/apache/tsfile/write/record/TabletTest.java | 5 +-
.../write/schema/converter/SchemaBuilderTest.java | 4 +-
.../write/writer/RestorableTsFileIOWriterTest.java | 4 +-
31 files changed, 190 insertions(+), 188 deletions(-)
diff --git
a/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTSRecord.java
b/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTSRecord.java
index d218fc94..3b376a2c 100644
---
a/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTSRecord.java
+++
b/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTSRecord.java
@@ -55,7 +55,7 @@ public class TsFileWriteAlignedWithTSRecord {
}
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(
new MeasurementSchema(Constant.SENSOR_1, TSDataType.INT64,
TSEncoding.RLE));
measurementSchemas.add(
@@ -76,7 +76,7 @@ public class TsFileWriteAlignedWithTSRecord {
private static void writeAligned(
TsFileWriter tsFileWriter,
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long rowSize,
long startTime,
long startValue)
diff --git
a/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTablet.java
b/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTablet.java
index d82acc62..c5113f54 100644
--- a/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTablet.java
+++ b/examples/src/main/java/org/apache/tsfile/TsFileWriteAlignedWithTablet.java
@@ -59,7 +59,7 @@ public class TsFileWriteAlignedWithTablet {
}
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(new MeasurementSchema(SENSOR_1, TSDataType.TEXT,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema(SENSOR_2, TSDataType.TEXT,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema(SENSOR_3, TSDataType.TEXT,
TSEncoding.PLAIN));
@@ -79,7 +79,7 @@ public class TsFileWriteAlignedWithTablet {
private static void writeAlignedWithTablet(
TsFileWriter tsFileWriter,
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long rowNum,
long startTime,
long startValue)
@@ -117,7 +117,7 @@ public class TsFileWriteAlignedWithTablet {
tsFileWriter.registerTimeseries(
new Path(DEVICE_2), new MeasurementSchema(SENSOR_2, TSDataType.INT64,
TSEncoding.RLE));
// construct Tablet
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(new MeasurementSchema(SENSOR_1, TSDataType.INT64,
TSEncoding.RLE));
measurementSchemas.add(new MeasurementSchema(SENSOR_2, TSDataType.INT64,
TSEncoding.RLE));
Tablet tablet = new Tablet(DEVICE_2, measurementSchemas);
diff --git
a/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTSRecord.java
b/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTSRecord.java
index 3d0d7ff7..46a49622 100644
--- a/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTSRecord.java
+++ b/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTSRecord.java
@@ -56,7 +56,7 @@ public class TsFileWriteWithTSRecord {
}
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
schemas.add(new MeasurementSchema(Constant.SENSOR_1, TSDataType.INT64,
TSEncoding.RLE));
schemas.add(new MeasurementSchema(Constant.SENSOR_2, TSDataType.INT64,
TSEncoding.RLE));
schemas.add(new MeasurementSchema(Constant.SENSOR_3, TSDataType.INT64,
TSEncoding.RLE));
@@ -75,7 +75,7 @@ public class TsFileWriteWithTSRecord {
private static void write(
TsFileWriter tsFileWriter,
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long rowSize,
long startTime,
long startValue)
diff --git
a/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTablet.java
b/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTablet.java
index 2461f1da..1109b6cc 100644
--- a/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTablet.java
+++ b/examples/src/main/java/org/apache/tsfile/TsFileWriteWithTablet.java
@@ -53,7 +53,7 @@ public class TsFileWriteWithTablet {
}
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(
new MeasurementSchema(Constant.SENSOR_1, TSDataType.TEXT,
TSEncoding.PLAIN));
measurementSchemas.add(
@@ -75,7 +75,7 @@ public class TsFileWriteWithTablet {
private static void writeWithTablet(
TsFileWriter tsFileWriter,
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long rowNum,
long startTime,
long startValue)
diff --git
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/LogicalTableSchema.java
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/LogicalTableSchema.java
index d25fb8c6..e61008b8 100644
---
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/LogicalTableSchema.java
+++
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/LogicalTableSchema.java
@@ -23,6 +23,7 @@ import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.file.metadata.enums.CompressionType;
import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.write.record.Tablet.ColumnType;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import java.util.ArrayList;
@@ -46,8 +47,8 @@ public class LogicalTableSchema extends TableSchema {
this.maxLevel = Math.max(this.maxLevel,
chunkGroupMetadata.getDevice().segmentNum());
}
- private List<MeasurementSchema> generateIdColumns() {
- List<MeasurementSchema> generatedIdColumns = new ArrayList<>();
+ private List<IMeasurementSchema> generateIdColumns() {
+ List<IMeasurementSchema> generatedIdColumns = new ArrayList<>();
for (int i = 0; i < maxLevel; i++) {
generatedIdColumns.add(
new MeasurementSchema(
@@ -58,12 +59,12 @@ public class LogicalTableSchema extends TableSchema {
/** Once called, the schema is no longer updatable. */
@Override
- public List<MeasurementSchema> getColumnSchemas() {
+ public List<IMeasurementSchema> getColumnSchemas() {
if (!updatable) {
return columnSchemas;
}
- List<MeasurementSchema> allColumns = new ArrayList<>(generateIdColumns());
+ List<IMeasurementSchema> allColumns = new ArrayList<>(generateIdColumns());
List<ColumnType> allColumnTypes = ColumnType.nCopy(ColumnType.ID,
allColumns.size());
allColumns.addAll(columnSchemas);
allColumnTypes.addAll(columnTypes);
diff --git
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
index a19b26d2..c882481f 100644
---
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
+++
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
@@ -154,6 +154,10 @@ public class StringArrayDeviceID implements IDeviceID {
public static StringArrayDeviceID deserialize(InputStream stream) throws
IOException {
final int cnt = ReadWriteIOUtils.readInt(stream);
+ if (cnt == 0) {
+ return new StringArrayDeviceID(new String[] {""});
+ }
+
String[] segments = new String[cnt];
for (int i = 0; i < cnt; i++) {
final int stringSize = ReadWriteIOUtils.readInt(stream);
diff --git
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableSchema.java
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableSchema.java
index 7005d779..28ebe767 100644
--- a/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableSchema.java
+++ b/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableSchema.java
@@ -22,6 +22,7 @@ package org.apache.tsfile.file.metadata;
import org.apache.tsfile.compatibility.DeserializeConfig;
import org.apache.tsfile.utils.ReadWriteIOUtils;
import org.apache.tsfile.write.record.Tablet.ColumnType;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import java.io.IOException;
@@ -36,7 +37,7 @@ public class TableSchema {
// the tableName is not serialized since the TableSchema is always stored in
a Map, from whose
// key the tableName can be known
protected String tableName;
- protected List<MeasurementSchema> columnSchemas;
+ protected List<IMeasurementSchema> columnSchemas;
protected List<ColumnType> columnTypes;
protected boolean updatable = false;
@@ -51,7 +52,7 @@ public class TableSchema {
}
public TableSchema(
- String tableName, List<MeasurementSchema> columnSchemas,
List<ColumnType> columnTypes) {
+ String tableName, List<IMeasurementSchema> columnSchemas,
List<ColumnType> columnTypes) {
this.tableName = tableName;
this.columnSchemas = columnSchemas;
this.columnTypes = columnTypes;
@@ -78,7 +79,7 @@ public class TableSchema {
});
}
- public MeasurementSchema findColumnSchema(String columnName) {
+ public IMeasurementSchema findColumnSchema(String columnName) {
final int columnIndex = findColumnIndex(columnName);
return columnIndex >= 0 ? columnSchemas.get(columnIndex) : null;
}
@@ -99,7 +100,7 @@ public class TableSchema {
}
}
- public List<MeasurementSchema> getColumnSchemas() {
+ public List<IMeasurementSchema> getColumnSchemas() {
return columnSchemas;
}
@@ -112,7 +113,7 @@ public class TableSchema {
if (columnSchemas != null) {
cnt += ReadWriteIOUtils.write(columnSchemas.size(), out);
for (int i = 0; i < columnSchemas.size(); i++) {
- MeasurementSchema columnSchema = columnSchemas.get(i);
+ IMeasurementSchema columnSchema = columnSchemas.get(i);
ColumnType columnType = columnTypes.get(i);
cnt += columnSchema.serializeTo(out);
cnt += ReadWriteIOUtils.write(columnType.ordinal(), out);
@@ -126,7 +127,7 @@ public class TableSchema {
public static TableSchema deserialize(ByteBuffer buffer, DeserializeConfig
context) {
final int tableNum = buffer.getInt();
- List<MeasurementSchema> measurementSchemas = new ArrayList<>(tableNum);
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>(tableNum);
List<ColumnType> columnTypes = new ArrayList<>();
for (int i = 0; i < tableNum; i++) {
MeasurementSchema measurementSchema =
diff --git
a/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
b/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
index 1e656910..edd7e421 100644
--- a/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
@@ -70,6 +70,7 @@ import org.apache.tsfile.utils.TsPrimitiveType;
import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
+import org.apache.tsfile.write.schema.Schema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1888,7 +1889,7 @@ public class TsFileSequenceReader implements
AutoCloseable {
*/
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity
warning
public long selfCheck(
- Map<Path, IMeasurementSchema> newSchema,
+ Schema schema,
List<ChunkGroupMetadata> chunkGroupMetadataList,
boolean fastFinish)
throws IOException {
@@ -2095,10 +2096,9 @@ public class TsFileSequenceReader implements
AutoCloseable {
truncatedSize = this.position() - 1;
if (lastDeviceId != null) {
// schema of last chunk group
- if (newSchema != null) {
+ if (schema != null) {
for (IMeasurementSchema tsSchema : measurementSchemaList) {
- newSchema.putIfAbsent(
- new Path(lastDeviceId, tsSchema.getMeasurementId(),
true), tsSchema);
+ schema.registerTimeseries(lastDeviceId, tsSchema);
}
}
measurementSchemaList = new ArrayList<>();
@@ -2114,10 +2114,9 @@ public class TsFileSequenceReader implements
AutoCloseable {
truncatedSize = this.position() - 1;
if (lastDeviceId != null) {
// schema of last chunk group
- if (newSchema != null) {
+ if (schema != null) {
for (IMeasurementSchema tsSchema : measurementSchemaList) {
- newSchema.putIfAbsent(
- new Path(lastDeviceId, tsSchema.getMeasurementId(),
true), tsSchema);
+ schema.registerTimeseries(lastDeviceId, tsSchema);
}
}
measurementSchemaList = new ArrayList<>();
@@ -2137,10 +2136,9 @@ public class TsFileSequenceReader implements
AutoCloseable {
// ChunkGroupFooter is complete.
if (lastDeviceId != null) {
// schema of last chunk group
- if (newSchema != null) {
+ if (schema != null) {
for (IMeasurementSchema tsSchema : measurementSchemaList) {
- newSchema.putIfAbsent(
- new Path(lastDeviceId, tsSchema.getMeasurementId(), true),
tsSchema);
+ schema.registerTimeseries(lastDeviceId, tsSchema);
}
}
// last chunk group Metadata
@@ -2158,6 +2156,10 @@ public class TsFileSequenceReader implements
AutoCloseable {
this.position(),
e.getMessage());
}
+
+ for (ChunkGroupMetadata chunkGroupMetadata : chunkGroupMetadataList) {
+ schema.updateTableSchema(chunkGroupMetadata);
+ }
// Despite the completeness of the data section, we will discard current
FileMetadata
// so that we can continue to write data into this tsfile.
return truncatedSize;
diff --git
a/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlock.java
b/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlock.java
index 2774a2c3..bd1f1e86 100644
--- a/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlock.java
+++ b/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlock.java
@@ -29,6 +29,7 @@ import org.apache.tsfile.read.reader.IPointReader;
import org.apache.tsfile.utils.RamUsageEstimator;
import org.apache.tsfile.utils.TsPrimitiveType;
import org.apache.tsfile.write.UnSupportedDataTypeException;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import java.util.Arrays;
@@ -578,7 +579,7 @@ public class TsBlock {
Column[] columns = new Column[columnNames.size()];
for (int i = 0; i < columnNames.size(); i++) {
final String columnName = columnNames.get(i);
- final MeasurementSchema columnSchema =
schema.findColumnSchema(columnName);
+ final IMeasurementSchema columnSchema =
schema.findColumnSchema(columnName);
columns[i] = ColumnFactory.create(columnSchema.getType(), blockSize);
}
return new TsBlock(timeColumn, columns);
diff --git a/tsfile/src/main/java/org/apache/tsfile/utils/MeasurementGroup.java
b/tsfile/src/main/java/org/apache/tsfile/utils/MeasurementGroup.java
index 996e3476..16c6880c 100644
--- a/tsfile/src/main/java/org/apache/tsfile/utils/MeasurementGroup.java
+++ b/tsfile/src/main/java/org/apache/tsfile/utils/MeasurementGroup.java
@@ -18,6 +18,7 @@
*/
package org.apache.tsfile.utils;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import java.io.Serializable;
@@ -27,22 +28,22 @@ import java.util.Map;
public class MeasurementGroup implements Serializable {
private boolean isAligned;
- private Map<String, MeasurementSchema> measurementSchemaMap;
+ private Map<String, IMeasurementSchema> measurementSchemaMap;
public MeasurementGroup(boolean isAligned) {
this.isAligned = isAligned;
measurementSchemaMap = new HashMap<>();
}
- public MeasurementGroup(boolean isAligned, List<MeasurementSchema>
measurementSchemas) {
+ public MeasurementGroup(boolean isAligned, List<IMeasurementSchema>
measurementSchemas) {
this.isAligned = isAligned;
measurementSchemaMap = new HashMap<>();
- for (MeasurementSchema schema : measurementSchemas) {
+ for (IMeasurementSchema schema : measurementSchemas) {
measurementSchemaMap.put(schema.getMeasurementId(), schema);
}
}
- public MeasurementGroup(boolean isAligned, Map<String, MeasurementSchema>
measurementSchemaMap) {
+ public MeasurementGroup(boolean isAligned, Map<String, IMeasurementSchema>
measurementSchemaMap) {
this.isAligned = isAligned;
this.measurementSchemaMap = measurementSchemaMap;
}
@@ -55,11 +56,11 @@ public class MeasurementGroup implements Serializable {
isAligned = aligned;
}
- public Map<String, MeasurementSchema> getMeasurementSchemaMap() {
+ public Map<String, IMeasurementSchema> getMeasurementSchemaMap() {
return measurementSchemaMap;
}
- public void setMeasurementSchemaMap(Map<String, MeasurementSchema>
measurementSchemaMap) {
+ public void setMeasurementSchemaMap(Map<String, IMeasurementSchema>
measurementSchemaMap) {
this.measurementSchemaMap = measurementSchemaMap;
}
}
diff --git
a/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
b/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
index d029dd63..a8e1e259 100644
--- a/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
+++ b/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
@@ -51,7 +51,7 @@ public class TsFileGeneratorUtils {
public static void writeWithTsRecord(
TsFileWriter tsFileWriter,
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long rowSize,
long startTime,
long startValue,
@@ -76,7 +76,7 @@ public class TsFileGeneratorUtils {
public static void writeWithTablet(
TsFileWriter tsFileWriter,
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long rowNum,
long startTime,
long startValue,
@@ -139,7 +139,7 @@ public class TsFileGeneratorUtils {
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
// register align timeseries
- List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
for (int i = 0; i < measurementNum; i++) {
alignedMeasurementSchemas.add(
new MeasurementSchema("s" + i, TSDataType.INT64,
TSEncoding.PLAIN));
@@ -162,7 +162,7 @@ public class TsFileGeneratorUtils {
}
// register nonAlign timeseries
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
for (int i = 0; i < measurementNum; i++) {
measurementSchemas.add(
new MeasurementSchema("s" + i, TSDataType.INT64,
TSEncoding.PLAIN));
@@ -211,7 +211,7 @@ public class TsFileGeneratorUtils {
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
// register align timeseries
- List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
for (int i = 0; i < measurementNum; i++) {
alignedMeasurementSchemas.add(
new MeasurementSchema("s" + i, TSDataType.INT64,
TSEncoding.PLAIN));
@@ -256,7 +256,7 @@ public class TsFileGeneratorUtils {
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
// register nonAlign timeseries
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
for (int i = 0; i < measurementNum; i++) {
measurementSchemas.add(new MeasurementSchema("s" + i,
TSDataType.INT64, TSEncoding.PLAIN));
}
@@ -300,7 +300,7 @@ public class TsFileGeneratorUtils {
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
// register align timeseries
- List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
for (int i = 0; i < measurementIndex.size(); i++) {
alignedMeasurementSchemas.add(
new MeasurementSchema(
@@ -358,7 +358,7 @@ public class TsFileGeneratorUtils {
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
// register nonAlign timeseries
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
for (int i = 0; i < measurementIndex.size(); i++) {
measurementSchemas.add(
new MeasurementSchema(
diff --git a/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
b/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
index 6b4ef019..a8e00946 100644
--- a/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
+++ b/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
@@ -58,15 +58,17 @@ import java.util.Map;
/**
* TsFileWriter is the entrance for writing processing. It receives a record
and send it to
* responding chunk group write. It checks memory size for all writing
processing along its strategy
- * and flush data stored in memory to OutputStream. At the end of writing,
user should call {@code
- * close()} method to flush the last data outside and close the normal
outputStream and error
+ * and flush data stored in memory to OutputStream. At the end of writing,
user should call
+ * {@code close()} method to flush the last data outside and close the normal
outputStream and error
* outputStream.
*/
public class TsFileWriter implements AutoCloseable {
protected static final TSFileConfig config =
TSFileDescriptor.getInstance().getConfig();
private static final Logger LOG =
LoggerFactory.getLogger(TsFileWriter.class);
- /** IO writer of this TsFile. */
+ /**
+ * IO writer of this TsFile.
+ */
private final TsFileIOWriter fileWriter;
private final int pageSize;
@@ -89,7 +91,9 @@ public class TsFileWriter implements AutoCloseable {
private Map<IDeviceID, IChunkGroupWriter> groupWriters = new HashMap<>();
- /** min value of threshold of data points num check. */
+ /**
+ * min value of threshold of data points num check.
+ */
private long recordCountForNextMemCheck = 100;
private long chunkGroupSizeThreshold;
@@ -117,7 +121,7 @@ public class TsFileWriter implements AutoCloseable {
/**
* init this TsFileWriter.
*
- * @param file the File to be written by this TsFileWriter
+ * @param file the File to be written by this TsFileWriter
* @param schema the schema of this TsFile
*/
public TsFileWriter(File file, Schema schema) throws IOException {
@@ -137,9 +141,9 @@ public class TsFileWriter implements AutoCloseable {
/**
* init this TsFileWriter.
*
- * @param file the File to be written by this TsFileWriter
+ * @param file the File to be written by this TsFileWriter
* @param schema the schema of this TsFile
- * @param conf the configuration of this TsFile
+ * @param conf the configuration of this TsFile
*/
public TsFileWriter(File file, Schema schema, TSFileConfig conf) throws
IOException {
this(new TsFileIOWriter(file), schema, conf);
@@ -149,8 +153,8 @@ public class TsFileWriter implements AutoCloseable {
* init this TsFileWriter.
*
* @param fileWriter the io writer of this TsFile
- * @param schema the schema of this TsFile
- * @param conf the configuration of this TsFile
+ * @param schema the schema of this TsFile
+ * @param conf the configuration of this TsFile
*/
protected TsFileWriter(TsFileIOWriter fileWriter, Schema schema,
TSFileConfig conf)
throws IOException {
@@ -161,43 +165,11 @@ public class TsFileWriter implements AutoCloseable {
this.fileWriter = fileWriter;
if (fileWriter instanceof RestorableTsFileIOWriter) {
- Map<Path, IMeasurementSchema> schemaMap =
+ schema =
((RestorableTsFileIOWriter) fileWriter).getKnownSchema();
- Map<IDeviceID, MeasurementGroup> measurementGroupMap = new HashMap<>();
- for (Map.Entry<Path, IMeasurementSchema> entry : schemaMap.entrySet()) {
- IMeasurementSchema measurementSchema = entry.getValue();
- if (measurementSchema instanceof VectorMeasurementSchema) {
- final IDeviceID deviceID =
-
IDeviceID.Factory.DEFAULT_FACTORY.create(entry.getKey().getDeviceString());
- MeasurementGroup group =
- measurementGroupMap.getOrDefault(deviceID, new
MeasurementGroup(true));
- List<String> measurementList =
measurementSchema.getSubMeasurementsList();
- for (int i = 0; i < measurementList.size(); i++) {
- group
- .getMeasurementSchemaMap()
- .put(
- measurementList.get(i),
- new MeasurementSchema(
- measurementList.get(i),
-
measurementSchema.getSubMeasurementsTSDataTypeList().get(i),
-
measurementSchema.getSubMeasurementsTSEncodingList().get(i)));
- }
- measurementGroupMap.put(deviceID, group);
- } else {
- final IDeviceID deviceID =
-
IDeviceID.Factory.DEFAULT_FACTORY.create(entry.getKey().getDeviceString());
- MeasurementGroup group =
- measurementGroupMap.getOrDefault(deviceID, new
MeasurementGroup(false));
- group
- .getMeasurementSchemaMap()
- .put(measurementSchema.getMeasurementId(), (MeasurementSchema)
measurementSchema);
- measurementGroupMap.put(deviceID, group);
- }
- }
- getSchema().setRegisteredTimeseries(measurementGroupMap);
- } else {
- fileWriter.setSchema(schema);
}
+ fileWriter.setSchema(schema);
+
this.pageSize = conf.getPageSizeInByte();
this.chunkGroupSizeThreshold = conf.getGroupSizeInByte();
config.setTSFileStorageFs(conf.getTSFileStorageFs());
@@ -211,7 +183,7 @@ public class TsFileWriter implements AutoCloseable {
}
public void registerSchemaTemplate(
- String templateName, Map<String, MeasurementSchema> template, boolean
isAligned) {
+ String templateName, Map<String, IMeasurementSchema> template, boolean
isAligned) {
getSchema().registerSchemaTemplate(templateName, new
MeasurementGroup(isAligned, template));
}
@@ -235,14 +207,16 @@ public class TsFileWriter implements AutoCloseable {
}
@Deprecated
- public void registerTimeseries(Path devicePath, MeasurementSchema
measurementSchema)
+ public void registerTimeseries(Path devicePath, IMeasurementSchema
measurementSchema)
throws WriteProcessException {
registerTimeseries(
IDeviceID.Factory.DEFAULT_FACTORY.create(devicePath.getDeviceString()),
measurementSchema);
}
- /** Register nonAligned timeseries by single. */
- public void registerTimeseries(IDeviceID deviceID, MeasurementSchema
measurementSchema)
+ /**
+ * Register nonAligned timeseries by single.
+ */
+ public void registerTimeseries(IDeviceID deviceID, IMeasurementSchema
measurementSchema)
throws WriteProcessException {
MeasurementGroup measurementGroup;
if (getSchema().containsDevice(deviceID)) {
@@ -269,8 +243,8 @@ public class TsFileWriter implements AutoCloseable {
@Deprecated
/** Register nonAligned timeseries by groups. */
- public void registerTimeseries(Path devicePath, List<MeasurementSchema>
measurementSchemas) {
- for (MeasurementSchema schema : measurementSchemas) {
+ public void registerTimeseries(Path devicePath, List<IMeasurementSchema>
measurementSchemas) {
+ for (IMeasurementSchema schema : measurementSchemas) {
try {
registerTimeseries(
IDeviceID.Factory.DEFAULT_FACTORY.create(devicePath.getDeviceString()), schema);
@@ -280,17 +254,18 @@ public class TsFileWriter implements AutoCloseable {
}
}
- public void registerAlignedTimeseries(Path devicePath,
List<MeasurementSchema> measurementSchemas)
+ public void registerAlignedTimeseries(Path devicePath,
List<IMeasurementSchema> measurementSchemas)
throws WriteProcessException {
registerAlignedTimeseries(
IDeviceID.Factory.DEFAULT_FACTORY.create(devicePath.getDeviceString()),
measurementSchemas);
}
+
/**
* Register aligned timeseries. Once the device is registered for aligned
timeseries, it cannot be
* expanded.
*/
public void registerAlignedTimeseries(
- IDeviceID deviceID, List<MeasurementSchema> measurementSchemas) throws
WriteProcessException {
+ IDeviceID deviceID, List<IMeasurementSchema> measurementSchemas) throws
WriteProcessException {
if (getSchema().containsDevice(deviceID)) {
if (getSchema().getSeriesSchema(deviceID).isAligned()) {
throw new WriteProcessException(
@@ -319,7 +294,7 @@ public class TsFileWriter implements AutoCloseable {
IChunkGroupWriter groupWriter = tryToInitialGroupWriter(deviceID,
isAligned);
// initial all SeriesWriters of measurements in this TSRecord
- List<MeasurementSchema> measurementSchemas;
+ List<IMeasurementSchema> measurementSchemas;
if (getSchema().containsDevice(deviceID)) {
measurementSchemas =
checkIsAllMeasurementsInGroup(
@@ -358,12 +333,12 @@ public class TsFileWriter implements AutoCloseable {
throw new NoTableException(tableName);
}
- for (MeasurementSchema writingColumnSchema : tablet.getSchemas()) {
+ for (IMeasurementSchema writingColumnSchema : tablet.getSchemas()) {
final int columnIndex =
tableSchema.findColumnIndex(writingColumnSchema.getMeasurementId());
if (columnIndex < 0) {
throw new
NoMeasurementException(writingColumnSchema.getMeasurementId());
}
- final MeasurementSchema registeredColumnSchema =
+ final IMeasurementSchema registeredColumnSchema =
tableSchema.getColumnSchemas().get(columnIndex);
if
(!writingColumnSchema.getType().equals(registeredColumnSchema.getType())) {
throw new ConflictDataTypeException(
@@ -377,7 +352,7 @@ public class TsFileWriter implements AutoCloseable {
final IDeviceID deviceID =
IDeviceID.Factory.DEFAULT_FACTORY.create(tablet.insertTargetName);
IChunkGroupWriter groupWriter = tryToInitialGroupWriter(deviceID,
isAligned);
- List<MeasurementSchema> schemas = tablet.getSchemas();
+ List<IMeasurementSchema> schemas = tablet.getSchemas();
if (getSchema().containsDevice(deviceID)) {
checkIsAllMeasurementsInGroup(getSchema().getSeriesSchema(deviceID),
schemas, isAligned);
if (isAligned) {
@@ -411,7 +386,7 @@ public class TsFileWriter implements AutoCloseable {
*/
private void checkIsAllMeasurementsInGroup(
MeasurementGroup measurementGroup,
- List<MeasurementSchema> measurementSchemas,
+ List<IMeasurementSchema> measurementSchemas,
boolean isAligned)
throws NoMeasurementException {
if (isAligned && !measurementGroup.isAligned()) {
@@ -419,7 +394,7 @@ public class TsFileWriter implements AutoCloseable {
} else if (!isAligned && measurementGroup.isAligned()) {
throw new NoMeasurementException("nonAligned");
}
- for (MeasurementSchema measurementSchema : measurementSchemas) {
+ for (IMeasurementSchema measurementSchema : measurementSchemas) {
if (!measurementGroup
.getMeasurementSchemaMap()
.containsKey(measurementSchema.getMeasurementId())) {
@@ -432,8 +407,10 @@ public class TsFileWriter implements AutoCloseable {
}
}
- /** Check whether all measurements of dataPoints list are in the
measurementGroup. */
- private List<MeasurementSchema> checkIsAllMeasurementsInGroup(
+ /**
+ * Check whether all measurements of dataPoints list are in the
measurementGroup.
+ */
+ private List<IMeasurementSchema> checkIsAllMeasurementsInGroup(
List<DataPoint> dataPoints, MeasurementGroup measurementGroup, boolean
isAligned)
throws NoMeasurementException {
if (isAligned && !measurementGroup.isAligned()) {
@@ -441,7 +418,7 @@ public class TsFileWriter implements AutoCloseable {
} else if (!isAligned && measurementGroup.isAligned()) {
throw new NoMeasurementException("nonAligned");
}
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
for (DataPoint dataPoint : dataPoints) {
if
(!measurementGroup.getMeasurementSchemaMap().containsKey(dataPoint.getMeasurementId()))
{
if (isAligned) {
@@ -486,7 +463,7 @@ public class TsFileWriter implements AutoCloseable {
*
* @param record - record responding a data line
* @return true -size of tsfile or metadata reaches the threshold. false -
otherwise
- * @throws IOException exception in IO
+ * @throws IOException exception in IO
* @throws WriteProcessException exception in write process
*/
public boolean write(TSRecord record) throws IOException,
WriteProcessException {
@@ -511,7 +488,7 @@ public class TsFileWriter implements AutoCloseable {
* write a tablet
*
* @param tablet - multiple time series of one device that share a time
column
- * @throws IOException exception in IO
+ * @throws IOException exception in IO
* @throws WriteProcessException exception in write process
*/
public boolean write(Tablet tablet) throws IOException,
WriteProcessException {
@@ -577,7 +554,7 @@ public class TsFileWriter implements AutoCloseable {
* outputStream.
*
* @return true - size of tsfile or metadata reaches the threshold. false -
otherwise. But this
- * function just return false, the Override of IoTDB may return true.
+ * function just return false, the Override of IoTDB may return true.
* @throws IOException exception in IO
*/
public boolean flushAllChunkGroups() throws IOException {
diff --git
a/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
b/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
index 08054c22..9bea331d 100644
---
a/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
+++
b/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
@@ -31,6 +31,7 @@ import org.apache.tsfile.utils.Binary;
import org.apache.tsfile.write.UnSupportedDataTypeException;
import org.apache.tsfile.write.record.Tablet;
import org.apache.tsfile.write.record.datapoint.DataPoint;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.writer.TsFileIOWriter;
@@ -69,11 +70,11 @@ public class AlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
}
@Override
- public void tryToAddSeriesWriter(MeasurementSchema measurementSchema) throws
IOException {
+ public void tryToAddSeriesWriter(IMeasurementSchema measurementSchema)
throws IOException {
tryToAddSeriesWriterInternal(measurementSchema);
}
- public ValueChunkWriter tryToAddSeriesWriterInternal(MeasurementSchema
measurementSchema)
+ public ValueChunkWriter tryToAddSeriesWriterInternal(IMeasurementSchema
measurementSchema)
throws IOException {
ValueChunkWriter valueChunkWriter =
valueChunkWriterMap.get(measurementSchema.getMeasurementId());
@@ -92,8 +93,8 @@ public class AlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
}
@Override
- public void tryToAddSeriesWriter(List<MeasurementSchema> measurementSchemas)
throws IOException {
- for (MeasurementSchema schema : measurementSchemas) {
+ public void tryToAddSeriesWriter(List<IMeasurementSchema>
measurementSchemas) throws IOException {
+ for (IMeasurementSchema schema : measurementSchemas) {
if (!valueChunkWriterMap.containsKey(schema.getMeasurementId())) {
ValueChunkWriter valueChunkWriter =
new ValueChunkWriter(
@@ -172,12 +173,12 @@ public class AlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
Tablet tablet, int startRowIndex, int endRowIndex, int startColIndex,
int endColIndex)
throws WriteProcessException, IOException {
int pointCount = 0;
- List<MeasurementSchema> measurementSchemas = tablet.getSchemas();
+ List<IMeasurementSchema> measurementSchemas = tablet.getSchemas();
List<ValueChunkWriter> emptyValueChunkWriters = new ArrayList<>();
// TODO: should we allow duplicated measurements in a Tablet?
Set<String> existingMeasurements =
measurementSchemas.stream()
- .map(MeasurementSchema::getMeasurementId)
+ .map(IMeasurementSchema::getMeasurementId)
.collect(Collectors.toSet());
for (Map.Entry<String, ValueChunkWriter> entry :
valueChunkWriterMap.entrySet()) {
if (!existingMeasurements.contains(entry.getKey())) {
diff --git
a/tsfile/src/main/java/org/apache/tsfile/write/chunk/IChunkGroupWriter.java
b/tsfile/src/main/java/org/apache/tsfile/write/chunk/IChunkGroupWriter.java
index f63c8950..e0932474 100644
--- a/tsfile/src/main/java/org/apache/tsfile/write/chunk/IChunkGroupWriter.java
+++ b/tsfile/src/main/java/org/apache/tsfile/write/chunk/IChunkGroupWriter.java
@@ -21,6 +21,7 @@ package org.apache.tsfile.write.chunk;
import org.apache.tsfile.exception.write.WriteProcessException;
import org.apache.tsfile.write.record.Tablet;
import org.apache.tsfile.write.record.datapoint.DataPoint;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.writer.TsFileIOWriter;
@@ -82,13 +83,13 @@ public interface IChunkGroupWriter {
*
* @param measurementSchema a measurement descriptor containing the message
of the series
*/
- void tryToAddSeriesWriter(MeasurementSchema measurementSchema) throws
IOException;
+ void tryToAddSeriesWriter(IMeasurementSchema measurementSchema) throws
IOException;
/**
* given a measurement descriptor list, create corresponding writers and put
into this
* ChunkGroupWriter.
*/
- void tryToAddSeriesWriter(List<MeasurementSchema> measurementSchemas) throws
IOException;
+ void tryToAddSeriesWriter(List<IMeasurementSchema> measurementSchemas)
throws IOException;
/**
* get the serialized size of current chunkGroup header + all chunks.
Notice, the value does not
diff --git
a/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
b/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
index 3512b8ce..799dc21e 100644
---
a/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
+++
b/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
@@ -57,14 +57,14 @@ public class NonAlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
}
@Override
- public void tryToAddSeriesWriter(MeasurementSchema schema) {
+ public void tryToAddSeriesWriter(IMeasurementSchema schema) {
if (!chunkWriters.containsKey(schema.getMeasurementId())) {
this.chunkWriters.put(schema.getMeasurementId(), new
ChunkWriterImpl(schema));
}
}
@Override
- public void tryToAddSeriesWriter(List<MeasurementSchema> schemas) {
+ public void tryToAddSeriesWriter(List<IMeasurementSchema> schemas) {
for (IMeasurementSchema schema : schemas) {
if (!chunkWriters.containsKey(schema.getMeasurementId())) {
this.chunkWriters.put(schema.getMeasurementId(), new
ChunkWriterImpl(schema));
@@ -103,7 +103,7 @@ public class NonAlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
Tablet tablet, int startRowIndex, int endRowIndex, int startColIndex,
int endColIndex)
throws WriteProcessException, IOException {
int maxPointCount = 0, pointCount;
- List<MeasurementSchema> timeseries = tablet.getSchemas();
+ List<IMeasurementSchema> timeseries = tablet.getSchemas();
for (int column = startColIndex; column < endColIndex; column++) {
String measurementId = timeseries.get(column).getMeasurementId();
TSDataType tsDataType = timeseries.get(column).getType();
diff --git a/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java
b/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java
index 1049752b..0baad826 100644
--- a/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java
+++ b/tsfile/src/main/java/org/apache/tsfile/write/record/Tablet.java
@@ -29,6 +29,7 @@ import org.apache.tsfile.utils.BytesUtils;
import org.apache.tsfile.utils.PublicBAOS;
import org.apache.tsfile.utils.ReadWriteIOUtils;
import org.apache.tsfile.write.UnSupportedDataTypeException;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import java.io.DataOutputStream;
@@ -59,7 +60,7 @@ public class Tablet {
public String insertTargetName;
/** The list of {@link MeasurementSchema}s for creating the {@link Tablet} */
- private List<MeasurementSchema> schemas;
+ private List<IMeasurementSchema> schemas;
/**
* Marking the type of each column, namely ID or MEASUREMENT. Notice: the ID
columns must be the
* FIRST ones.
@@ -91,11 +92,11 @@ public class Tablet {
* @param schemas the list of {@link MeasurementSchema}s for creating the
tablet, only
* measurementId and type take effects
*/
- public Tablet(String insertTargetName, List<MeasurementSchema> schemas) {
+ public Tablet(String insertTargetName, List<IMeasurementSchema> schemas) {
this(insertTargetName, schemas, DEFAULT_SIZE);
}
- public Tablet(String insertTargetName, List<MeasurementSchema> schemas, int
maxRowNumber) {
+ public Tablet(String insertTargetName, List<IMeasurementSchema> schemas, int
maxRowNumber) {
this(
insertTargetName,
schemas,
@@ -104,7 +105,7 @@ public class Tablet {
}
public Tablet(
- String insertTargetName, List<MeasurementSchema> schemas,
List<ColumnType> columnTypes) {
+ String insertTargetName, List<IMeasurementSchema> schemas,
List<ColumnType> columnTypes) {
this(insertTargetName, schemas, columnTypes, DEFAULT_SIZE);
}
@@ -120,7 +121,7 @@ public class Tablet {
*/
public Tablet(
String insertTargetName,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
List<ColumnType> columnTypes,
int maxRowNumber) {
this.insertTargetName = insertTargetName;
@@ -149,7 +150,7 @@ public class Tablet {
*/
public Tablet(
String insertTargetName,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
long[] timestamps,
Object[] values,
BitMap[] bitMaps,
@@ -166,7 +167,7 @@ public class Tablet {
public Tablet(
String insertTargetName,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
List<ColumnType> columnTypes,
long[] timestamps,
Object[] values,
@@ -187,7 +188,7 @@ public class Tablet {
private void constructMeasurementIndexMap() {
int indexInSchema = 0;
- for (MeasurementSchema schema : schemas) {
+ for (IMeasurementSchema schema : schemas) {
measurementIndex.put(schema.getMeasurementId(), indexInSchema);
indexInSchema++;
}
@@ -197,7 +198,7 @@ public class Tablet {
this.insertTargetName = insertTargetName;
}
- public void setSchemas(List<MeasurementSchema> schemas) {
+ public void setSchemas(List<IMeasurementSchema> schemas) {
this.schemas = schemas;
}
@@ -214,7 +215,7 @@ public class Tablet {
public void addValue(String measurementId, int rowIndex, Object value) {
int indexOfSchema = measurementIndex.get(measurementId);
- MeasurementSchema measurementSchema = schemas.get(indexOfSchema);
+ IMeasurementSchema measurementSchema = schemas.get(indexOfSchema);
addValueOfDataType(measurementSchema.getType(), rowIndex, indexOfSchema,
value);
}
@@ -281,7 +282,7 @@ public class Tablet {
}
}
- public List<MeasurementSchema> getSchemas() {
+ public List<IMeasurementSchema> getSchemas() {
return schemas;
}
@@ -312,7 +313,7 @@ public class Tablet {
// value column
values = new Object[valueColumnsSize];
int columnIndex = 0;
- for (MeasurementSchema schema : schemas) {
+ for (IMeasurementSchema schema : schemas) {
TSDataType dataType = schema.getType();
values[columnIndex] = createValueColumnOfDataType(dataType);
columnIndex++;
@@ -355,7 +356,7 @@ public class Tablet {
public int getTotalValueOccupation() {
int valueOccupation = 0;
int columnIndex = 0;
- for (MeasurementSchema schema : schemas) {
+ for (IMeasurementSchema schema : schemas) {
valueOccupation += calOccupationOfOneColumn(schema.getType(),
columnIndex);
columnIndex++;
}
@@ -422,7 +423,7 @@ public class Tablet {
ReadWriteIOUtils.write(BytesUtils.boolToByte(schemas != null), stream);
if (schemas != null) {
ReadWriteIOUtils.write(schemas.size(), stream);
- for (MeasurementSchema schema : schemas) {
+ for (IMeasurementSchema schema : schemas) {
if (schema == null) {
ReadWriteIOUtils.write(BytesUtils.boolToByte(false), stream);
} else {
@@ -529,7 +530,7 @@ public class Tablet {
// deserialize schemas
int schemaSize = 0;
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
boolean isSchemasNotNull =
BytesUtils.byteToBool(ReadWriteIOUtils.readByte(byteBuffer));
if (isSchemasNotNull) {
schemaSize = ReadWriteIOUtils.readInt(byteBuffer);
@@ -559,7 +560,7 @@ public class Tablet {
// deserialize values
TSDataType[] dataTypes =
-
schemas.stream().map(MeasurementSchema::getType).toArray(TSDataType[]::new);
+
schemas.stream().map(IMeasurementSchema::getType).toArray(TSDataType[]::new);
Object[] values = new Object[schemaSize];
boolean isValuesNotNull =
BytesUtils.byteToBool(ReadWriteIOUtils.readByte(byteBuffer));
if (isValuesNotNull) {
diff --git a/tsfile/src/main/java/org/apache/tsfile/write/schema/Schema.java
b/tsfile/src/main/java/org/apache/tsfile/write/schema/Schema.java
index 7f09ce77..a20fd00e 100644
--- a/tsfile/src/main/java/org/apache/tsfile/write/schema/Schema.java
+++ b/tsfile/src/main/java/org/apache/tsfile/write/schema/Schema.java
@@ -56,12 +56,12 @@ public class Schema implements Serializable {
}
@Deprecated
- public void registerTimeseries(Path devicePath, MeasurementSchema
measurementSchema) {
+ public void registerTimeseries(Path devicePath, IMeasurementSchema
measurementSchema) {
registerTimeseries(
IDeviceID.Factory.DEFAULT_FACTORY.create(devicePath.getDeviceString()),
measurementSchema);
}
// This method can only register nonAligned timeseries.
- public void registerTimeseries(IDeviceID deviceID, MeasurementSchema
measurementSchema) {
+ public void registerTimeseries(IDeviceID deviceID, IMeasurementSchema
measurementSchema) {
MeasurementGroup group =
registeredTimeseries.getOrDefault(deviceID, new
MeasurementGroup(false));
group.getMeasurementSchemaMap().put(measurementSchema.getMeasurementId(),
measurementSchema);
@@ -109,7 +109,7 @@ public class Schema implements Serializable {
if (!schemaTemplates.containsKey(templateName)) {
return;
}
- Map<String, MeasurementSchema> template =
+ Map<String, IMeasurementSchema> template =
schemaTemplates.get(templateName).getMeasurementSchemaMap();
boolean isAligned = schemaTemplates.get(templateName).isAligned();
registerMeasurementGroup(deviceId, new MeasurementGroup(isAligned,
template));
diff --git
a/tsfile/src/main/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriter.java
b/tsfile/src/main/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriter.java
index d5c1b44f..11fecab1 100644
---
a/tsfile/src/main/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriter.java
+++
b/tsfile/src/main/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriter.java
@@ -31,6 +31,7 @@ import org.apache.tsfile.read.TsFileSequenceReader;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.write.schema.IMeasurementSchema;
+import org.apache.tsfile.write.schema.Schema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,7 +60,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
private static final Logger logger = LoggerFactory.getLogger("FileMonitor");
private long truncatedSize = -1;
- private Map<Path, IMeasurementSchema> knownSchemas = new HashMap<>();
+ private Schema schema = new Schema();
private int lastFlushedChunkGroupIndex = 0;
@@ -109,7 +110,7 @@ public class RestorableTsFileIOWriter extends
TsFileIOWriter {
if (file.exists()) {
try (TsFileSequenceReader reader = new
TsFileSequenceReader(file.getAbsolutePath(), false)) {
- truncatedSize = reader.selfCheck(knownSchemas, chunkGroupMetadataList,
true);
+ truncatedSize = reader.selfCheck(schema, chunkGroupMetadataList, true);
minPlanIndex = reader.getMinPlanIndex();
maxPlanIndex = reader.getMaxPlanIndex();
if (truncatedSize == TsFileCheckStatus.COMPLETE_FILE) {
@@ -167,8 +168,8 @@ public class RestorableTsFileIOWriter extends
TsFileIOWriter {
return truncatedSize;
}
- public Map<Path, IMeasurementSchema> getKnownSchema() {
- return knownSchemas;
+ public Schema getKnownSchema() {
+ return schema;
}
/**
@@ -254,7 +255,7 @@ public class RestorableTsFileIOWriter extends
TsFileIOWriter {
}
public void addSchema(Path path, IMeasurementSchema schema) {
- knownSchemas.put(path, schema);
+ this.schema.registerTimeseries(path.getIDeviceID(), schema);
}
@Override
diff --git
a/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
b/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
index b07e76ed..c65a7fdb 100644
--- a/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/read/TsFileSequenceReaderTest.java
@@ -35,8 +35,10 @@ import org.apache.tsfile.utils.FileGenerator;
import org.apache.tsfile.utils.Pair;
import org.apache.tsfile.utils.TsFileGeneratorUtils;
import org.apache.tsfile.write.TsFileWriter;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
+import org.apache.tsfile.write.schema.Schema;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -148,14 +150,14 @@ public class TsFileSequenceReaderTest {
// create tsfile with empty page
try (TsFileWriter tsFileWriter = new TsFileWriter(testFile)) {
// register aligned timeseries
- List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
alignedMeasurementSchemas.add(
new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN));
alignedMeasurementSchemas.add(
new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.PLAIN));
tsFileWriter.registerAlignedTimeseries(new Path("d1"),
alignedMeasurementSchemas);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// only write s1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
TsFileGeneratorUtils.writeWithTsRecord(
@@ -173,7 +175,7 @@ public class TsFileSequenceReaderTest {
try (TsFileSequenceReader reader = new TsFileSequenceReader(FILE_PATH)) {
Assert.assertEquals(
TsFileCheckStatus.COMPLETE_FILE,
- reader.selfCheck(new HashMap<>(), new ArrayList<>(), false));
+ reader.selfCheck(new Schema(), new ArrayList<>(), false));
}
}
}
diff --git
a/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
b/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
index 530e8326..7bd62b8a 100644
--- a/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
@@ -46,6 +46,7 @@ import org.apache.tsfile.write.record.TSRecord;
import org.apache.tsfile.write.record.Tablet;
import org.apache.tsfile.write.record.Tablet.ColumnType;
import org.apache.tsfile.write.record.datapoint.LongDataPoint;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.commons.io.FileUtils;
@@ -99,7 +100,7 @@ public class TableViewTest {
final List<String> columns =
testTableSchema.getColumnSchemas().stream()
- .map(MeasurementSchema::getMeasurementId)
+ .map(IMeasurementSchema::getMeasurementId)
.collect(Collectors.toList());
final TsBlockReader reader =
tableQueryExecutor.query(testTableSchema.getTableName(), columns,
null, null, null);
@@ -139,7 +140,7 @@ public class TableViewTest {
final List<String> columns =
testTableSchema.getColumnSchemas().stream()
- .map(MeasurementSchema::getMeasurementId)
+ .map(IMeasurementSchema::getMeasurementId)
.collect(Collectors.toList());
for (int i = 0; i < tableNum; i++) {
@@ -165,7 +166,7 @@ public class TableViewTest {
writer.registerTableSchema(testTableSchema);
// tree-view registration
final IDeviceID deviceID = Factory.DEFAULT_FACTORY.create("root.a.b.c.d1");
- List<MeasurementSchema> treeSchemas = new ArrayList<>();
+ List<IMeasurementSchema> treeSchemas = new ArrayList<>();
for (int i = 0; i < measurementSchemaNum; i++) {
final MeasurementSchema measurementSchema =
new MeasurementSchema(
@@ -199,7 +200,7 @@ public class TableViewTest {
List<String> columns =
testTableSchema.getColumnSchemas().stream()
- .map(MeasurementSchema::getMeasurementId)
+ .map(IMeasurementSchema::getMeasurementId)
.collect(Collectors.toList());
TsBlockReader reader =
tableQueryExecutor.query(testTableSchema.getTableName(), columns,
null, null, null);
@@ -245,7 +246,7 @@ public class TableViewTest {
List<String> columns =
treeSchemas.stream()
- .map(MeasurementSchema::getMeasurementId)
+ .map(IMeasurementSchema::getMeasurementId)
.collect(Collectors.toList());
TsBlockReader reader =
tableQueryExecutor.query(deviceID.getTableName(), columns, null,
null, null);
@@ -294,7 +295,7 @@ public class TableViewTest {
tableSchema.getColumnTypes());
for (int i = 0; i < num; i++) {
tablet.addTimestamp(i, offset + i);
- for (MeasurementSchema columnSchema : tableSchema.getColumnSchemas()) {
+ for (IMeasurementSchema columnSchema : tableSchema.getColumnSchemas()) {
tablet.addValue(columnSchema.getMeasurementId(), i,
getValue(columnSchema.getType(), i));
}
}
@@ -314,7 +315,7 @@ public class TableViewTest {
}
private TableSchema genTableSchema(int tableNum) {
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
List<ColumnType> columnTypes = new ArrayList<>();
for (int i = 0; i < idSchemaNum; i++) {
diff --git a/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
b/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
index 09f7d140..d3386655 100755
--- a/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
+++ b/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
@@ -27,6 +27,7 @@ import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.write.TsFileWriter;
import org.apache.tsfile.write.record.TSRecord;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.schema.Schema;
@@ -266,7 +267,7 @@ public class FileGenerator {
private static void generateTestSchema() {
schema = new Schema();
- List<MeasurementSchema> schemaList = new ArrayList<>();
+ List<IMeasurementSchema> schemaList = new ArrayList<>();
schemaList.add(
new MeasurementSchema(
"s1", TSDataType.INT32,
TSEncoding.valueOf(config.getValueEncoder())));
diff --git
a/tsfile/src/test/java/org/apache/tsfile/utils/TsFileGeneratorForTest.java
b/tsfile/src/test/java/org/apache/tsfile/utils/TsFileGeneratorForTest.java
index cba45990..52f2951e 100755
--- a/tsfile/src/test/java/org/apache/tsfile/utils/TsFileGeneratorForTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/utils/TsFileGeneratorForTest.java
@@ -31,6 +31,7 @@ import org.apache.tsfile.fileSystem.fsFactory.FSFactory;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.write.TsFileWriter;
import org.apache.tsfile.write.record.TSRecord;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.schema.Schema;
@@ -296,7 +297,7 @@ public class TsFileGeneratorForTest {
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
// register align timeseries
- List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
alignedMeasurementSchemas.add(
new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN,
CompressionType.LZ4));
alignedMeasurementSchemas.add(
@@ -307,7 +308,7 @@ public class TsFileGeneratorForTest {
tsFileWriter.registerAlignedTimeseries(new Path("d1"),
alignedMeasurementSchemas);
// register nonAlign timeseries
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(
new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.PLAIN,
CompressionType.LZ4));
measurementSchemas.add(
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/DefaultSchemaTemplateTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/DefaultSchemaTemplateTest.java
index 6fa667cc..d57cf30a 100644
---
a/tsfile/src/test/java/org/apache/tsfile/write/DefaultSchemaTemplateTest.java
+++
b/tsfile/src/test/java/org/apache/tsfile/write/DefaultSchemaTemplateTest.java
@@ -28,6 +28,7 @@ import org.apache.tsfile.read.expression.QueryExpression;
import org.apache.tsfile.read.query.dataset.QueryDataSet;
import org.apache.tsfile.utils.TsFileGeneratorForTest;
import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.junit.Assert;
@@ -53,11 +54,11 @@ public class DefaultSchemaTemplateTest {
MeasurementSchema s1 = new MeasurementSchema("s1", TSDataType.INT64,
TSEncoding.PLAIN);
MeasurementSchema s2 = new MeasurementSchema("s2", TSDataType.INT64,
TSEncoding.PLAIN);
- List<MeasurementSchema> schemaList = new ArrayList<>();
+ List<IMeasurementSchema> schemaList = new ArrayList<>();
schemaList.add(s1);
schemaList.add(s2);
- Map<String, MeasurementSchema> schema = new HashMap<>();
+ Map<String, IMeasurementSchema> schema = new HashMap<>();
schema.put("s1", s1);
schema.put("s2", s2);
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/MetadataIndexConstructorTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/MetadataIndexConstructorTest.java
index 09d211fc..db0990c4 100644
---
a/tsfile/src/test/java/org/apache/tsfile/write/MetadataIndexConstructorTest.java
+++
b/tsfile/src/test/java/org/apache/tsfile/write/MetadataIndexConstructorTest.java
@@ -41,6 +41,7 @@ import org.apache.tsfile.write.record.TSRecord;
import org.apache.tsfile.write.record.Tablet;
import org.apache.tsfile.write.record.datapoint.DataPoint;
import org.apache.tsfile.write.record.datapoint.LongDataPoint;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.schema.Schema;
@@ -458,8 +459,8 @@ public class MetadataIndexConstructorTest {
vectorPrefix + generateIndexString(vectorIndex,
vectorMeasurement.length);
logger.info("generating vector {}...", vectorName);
int measurementNum = vectorMeasurement[i][vectorIndex];
- List<MeasurementSchema> schemas = new ArrayList<>();
- List<MeasurementSchema> tabletSchema = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> tabletSchema = new ArrayList<>();
for (int measurementIndex = 0; measurementIndex < measurementNum;
measurementIndex++) {
String measurementName =
measurementPrefix + generateIndexString(measurementIndex,
measurementNum);
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/TsFileIOWriterTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/TsFileIOWriterTest.java
index f60d9cf5..331d7aab 100644
--- a/tsfile/src/test/java/org/apache/tsfile/write/TsFileIOWriterTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/write/TsFileIOWriterTest.java
@@ -35,6 +35,7 @@ import org.apache.tsfile.file.metadata.utils.TestHelper;
import org.apache.tsfile.read.TsFileSequenceReader;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.utils.MeasurementGroup;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.schema.Schema;
import org.apache.tsfile.write.schema.VectorMeasurementSchema;
@@ -68,11 +69,11 @@ public class TsFileIOWriterTest {
TsFileIOWriter writer = new TsFileIOWriter(new File(FILE_PATH));
// file schema
- MeasurementSchema measurementSchema =
TestHelper.createSimpleMeasurementSchema(SENSOR_1);
+ IMeasurementSchema measurementSchema =
TestHelper.createSimpleMeasurementSchema(SENSOR_1);
VectorMeasurementSchema vectorMeasurementSchema =
new VectorMeasurementSchema(
"", new String[] {"s1", "s2"}, new TSDataType[] {TSDataType.INT64,
TSDataType.INT64});
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
schemas.add(new MeasurementSchema("s1", TSDataType.INT64, TSEncoding.RLE));
schemas.add(new MeasurementSchema("s2", TSDataType.INT64, TSEncoding.RLE));
MeasurementGroup group = new MeasurementGroup(true, schemas);
@@ -169,7 +170,7 @@ public class TsFileIOWriterTest {
Assert.assertEquals(2, cnt);
}
- private void writeChunkGroup(TsFileIOWriter writer, MeasurementSchema
measurementSchema)
+ private void writeChunkGroup(TsFileIOWriter writer, IMeasurementSchema
measurementSchema)
throws IOException {
for (int i = 0; i < CHUNK_GROUP_NUM; i++) {
// chunk group
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriteApiTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriteApiTest.java
index ffb3b01b..a1ec2aa1 100644
--- a/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriteApiTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriteApiTest.java
@@ -59,8 +59,8 @@ import java.util.List;
public class TsFileWriteApiTest {
private final File f =
FSFactoryProducer.getFSFactory().getFile("TsFileWriteTest.tsfile");
private final String deviceId = "root.sg.d1";
- private final List<MeasurementSchema> alignedMeasurementSchemas = new
ArrayList<>();
- private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ private final List<IMeasurementSchema> alignedMeasurementSchemas = new
ArrayList<>();
+ private final List<IMeasurementSchema> measurementSchemas = new
ArrayList<>();
private int oldChunkGroupSize =
TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte();
private int oldMaxNumOfPointsInPage =
TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
@@ -109,7 +109,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(measurementSchemas.get(0));
writeMeasurementScheams.add(measurementSchemas.get(1));
@@ -137,7 +137,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
writeMeasurementScheams.add(alignedMeasurementSchemas.get(1));
@@ -165,7 +165,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(measurementSchemas.get(0));
writeMeasurementScheams.add(measurementSchemas.get(1));
@@ -193,7 +193,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
TsFileGeneratorUtils.writeWithTablet(
@@ -220,7 +220,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
writeMeasurementScheams.add(alignedMeasurementSchemas.get(1));
@@ -247,7 +247,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
writeMeasurementScheams.add(alignedMeasurementSchemas.get(1));
@@ -273,7 +273,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
writeMeasurementScheams.add(alignedMeasurementSchemas.get(1));
@@ -314,7 +314,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example 1
writeMeasurementScheams.add(measurementSchemas.get(0));
writeMeasurementScheams.add(measurementSchemas.get(1));
@@ -448,7 +448,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(0));
writeMeasurementScheams.add(alignedMeasurementSchemas.get(1));
@@ -499,7 +499,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerAlignedTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
// example1
writeMeasurementScheams.add(alignedMeasurementSchemas.get(3));
writeMeasurementScheams.add(alignedMeasurementSchemas.get(2));
@@ -611,7 +611,7 @@ public class TsFileWriteApiTest {
try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
registerTimeseries(tsFileWriter);
- List<MeasurementSchema> writeMeasurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> writeMeasurementSchemas = new ArrayList<>();
writeMeasurementSchemas.add(measurementSchemas.get(0));
TsFileGeneratorUtils.writeWithTsRecord(
diff --git a/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriterTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriterTest.java
index 7f3c278f..7d6c380c 100644
--- a/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriterTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/write/TsFileWriterTest.java
@@ -36,6 +36,7 @@ import org.apache.tsfile.write.record.TSRecord;
import org.apache.tsfile.write.record.Tablet;
import org.apache.tsfile.write.record.datapoint.FloatDataPoint;
import org.apache.tsfile.write.record.datapoint.IntDataPoint;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.junit.After;
@@ -106,7 +107,7 @@ public class TsFileWriterTest {
Assert.assertEquals("given nonAligned timeseries .d1.s1 has been
registered.", e.getMessage());
}
try {
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
schemas.add(
new MeasurementSchema("s1", TSDataType.FLOAT, TSEncoding.RLE,
CompressionType.SNAPPY));
writer.registerAlignedTimeseries(new Path("d1"), schemas);
@@ -114,7 +115,7 @@ public class TsFileWriterTest {
Assert.assertEquals(
"given device .d1 has been registered for nonAligned timeseries.",
e.getMessage());
}
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
schemas.add(
new MeasurementSchema("s2", TSDataType.INT32, TSEncoding.RLE,
CompressionType.SNAPPY));
schemas.add(
@@ -123,7 +124,7 @@ public class TsFileWriterTest {
// Register aligned timeseries "d2.s1" , "d2.s2", "d2.s3"
try {
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(new MeasurementSchema("s1", TSDataType.TEXT,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema("s2", TSDataType.TEXT,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema("s3", TSDataType.TEXT,
TSEncoding.PLAIN));
@@ -133,7 +134,7 @@ public class TsFileWriterTest {
fail(e.getMessage());
}
try {
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(new MeasurementSchema("s4", TSDataType.TEXT,
TSEncoding.PLAIN));
writer.registerAlignedTimeseries(new Path("d2"), measurementSchemas);
} catch (WriteProcessException e) {
diff --git a/tsfile/src/test/java/org/apache/tsfile/write/WriteTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/WriteTest.java
index d97ae61d..99b0b5db 100755
--- a/tsfile/src/test/java/org/apache/tsfile/write/WriteTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/write/WriteTest.java
@@ -31,6 +31,7 @@ import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.utils.RecordUtils;
import org.apache.tsfile.utils.StringContainer;
import org.apache.tsfile.write.record.TSRecord;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.apache.tsfile.write.schema.Schema;
@@ -60,7 +61,7 @@ public class WriteTest {
private String outputDataFile;
private String errorOutputDataFile;
private Random rm = new Random();
- private ArrayList<MeasurementSchema> measurementArray;
+ private ArrayList<IMeasurementSchema> measurementArray;
private ArrayList<Path> pathArray;
private Schema schema;
private int stageSize = 4;
@@ -250,7 +251,7 @@ public class WriteTest {
}
// test duplicate measurement adding
Path path = pathArray.get(measurementArray.size() - 1);
- MeasurementSchema dupTimeseries =
measurementArray.get(measurementArray.size() - 1);
+ IMeasurementSchema dupTimeseries =
measurementArray.get(measurementArray.size() - 1);
try {
tsFileWriter.registerTimeseries(new Path(path.getDeviceString()),
dupTimeseries);
} catch (WriteProcessException e) {
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java
index 07412e8d..dd9f38b1 100644
--- a/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/write/record/TabletTest.java
@@ -22,6 +22,7 @@ package org.apache.tsfile.write.record;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.utils.BitMap;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
import org.apache.tsfile.write.schema.MeasurementSchema;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class TabletTest {
@Test
public void testSerializationAndDeSerialization() {
String deviceId = "root.sg";
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(new MeasurementSchema("s0", TSDataType.INT32,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema("s1", TSDataType.INT64,
TSEncoding.PLAIN));
@@ -74,7 +75,7 @@ public class TabletTest {
@Test
public void testSerializationAndDeSerializationWithMoreData() {
String deviceId = "root.sg";
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
measurementSchemas.add(new MeasurementSchema("s0", TSDataType.INT32,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema("s1", TSDataType.INT64,
TSEncoding.PLAIN));
measurementSchemas.add(new MeasurementSchema("s2", TSDataType.FLOAT,
TSEncoding.PLAIN));
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/schema/converter/SchemaBuilderTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/schema/converter/SchemaBuilderTest.java
index cdab89fb..70fc3fec 100644
---
a/tsfile/src/test/java/org/apache/tsfile/write/schema/converter/SchemaBuilderTest.java
+++
b/tsfile/src/test/java/org/apache/tsfile/write/schema/converter/SchemaBuilderTest.java
@@ -77,7 +77,7 @@ public class SchemaBuilderTest {
Map<String, String> props = new HashMap<>();
props.put(JsonFormatConstant.MAX_POINT_NUMBER, "3");
Schema schema = new Schema();
- Map<String, MeasurementSchema> template = new HashMap<>();
+ Map<String, IMeasurementSchema> template = new HashMap<>();
template.put(
"s4",
new MeasurementSchema(
@@ -113,7 +113,7 @@ public class SchemaBuilderTest {
Map<String, String> props = new HashMap<>();
props.put(JsonFormatConstant.MAX_POINT_NUMBER, "3");
Schema schema = new Schema();
- Map<String, MeasurementSchema> template = new HashMap<>();
+ Map<String, IMeasurementSchema> template = new HashMap<>();
template.put(
"s4",
new MeasurementSchema(
diff --git
a/tsfile/src/test/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriterTest.java
b/tsfile/src/test/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriterTest.java
index d6d0f942..74c793ac 100644
---
a/tsfile/src/test/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriterTest.java
+++
b/tsfile/src/test/java/org/apache/tsfile/write/writer/RestorableTsFileIOWriterTest.java
@@ -254,7 +254,7 @@ public class RestorableTsFileIOWriterTest {
writer = new TsFileWriter(rWriter);
writer.close();
assertNotEquals(TsFileIOWriter.MAGIC_STRING_BYTES.length,
rWriter.getTruncatedSize());
- assertEquals(89, rWriter.getTruncatedSize());
+ assertEquals(100, rWriter.getTruncatedSize());
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);
@@ -290,7 +290,7 @@ public class RestorableTsFileIOWriterTest {
writer = new TsFileWriter(rWriter);
writer.close();
assertNotEquals(TsFileIOWriter.MAGIC_STRING_BYTES.length,
rWriter.getTruncatedSize());
- assertEquals(89, rWriter.getTruncatedSize());
+ assertEquals(105, rWriter.getTruncatedSize());
rWriter.close();
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_NAME);