diff --git a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java index 73321ad02..dadbf5720 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java @@ -32,6 +32,7 @@ import org.apache.tsfile.write.chunk.TableChunkGroupWriterImpl; import org.apache.tsfile.write.schema.Schema; import org.apache.tsfile.write.writer.TsFileIOWriter; +import org.apache.tsfile.write.writer.TsFileOutput; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,9 +86,21 @@ abstract class AbstractTableModelTsFileWriter implements ITsFileWriter { @TsFileApi protected AbstractTableModelTsFileWriter(File file, long chunkGroupSizeThreshold) throws IOException { + this(new TsFileIOWriter(file), chunkGroupSizeThreshold); + } + + @TsFileApi + protected AbstractTableModelTsFileWriter(TsFileOutput output, long chunkGroupSizeThreshold) + throws IOException { + this(new TsFileIOWriter(output), chunkGroupSizeThreshold); + } + + @TsFileApi + protected AbstractTableModelTsFileWriter( + TsFileIOWriter tsFileIOWriter, long chunkGroupSizeThreshold) { Schema schema = new Schema(); TSFileConfig conf = TSFileDescriptor.getInstance().getConfig(); - this.fileWriter = new TsFileIOWriter(file); + this.fileWriter = tsFileIOWriter; fileWriter.setSchema(schema); this.pageSize = conf.getPageSizeInByte(); diff --git a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java index 66fca2cfc..40ba65494 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/DeviceTableModelWriter.java @@ -31,6 +31,7 @@ import org.apache.tsfile.utils.WriteUtils; import org.apache.tsfile.write.record.Tablet; import org.apache.tsfile.write.schema.IMeasurementSchema; +import org.apache.tsfile.write.writer.TsFileOutput; import java.io.File; import java.io.IOException; @@ -48,6 +49,12 @@ public DeviceTableModelWriter(File file, TableSchema tableSchema, long memoryThr registerTableSchema(tableSchema); } + public DeviceTableModelWriter( + TsFileOutput tsFileOutput, TableSchema tableSchema, long memoryThreshold) throws IOException { + super(tsFileOutput, memoryThreshold); + registerTableSchema(tableSchema); + } + /** * Write the tablet in to the TsFile with the table-view. The method will try to split the tablet * by device.