Interface Definitions
March 4, 2025About 3 min
Interface Definitions
Write Interface
ITsFileWriter
Used to write data to tsfile
interface ITsFileWriter extends AutoCloseable {
// Write data
void write(Tablet tablet);
// Close Write
void close();
}
TsFileWriterBuilder
Used to construct ITsFileWriter
class TsFileWriterBuilder {
// Build ITsFileWriter object
public ITsFileWriter build();
// target file
public TsFileWriterBuilder file(File file);
// Used to construct table structures
public TsFileWriterBuilder tableSchema(TableSchema schema);
// Used to limit the memory size of objects
public TsFileWriterBuilder memoryThreshold(long memoryThreshold);
}
TableSchema
Describe the data structure of the table schema
class TableSchema {
// Constructor function
public TableSchema(String tableName, List<ColumnSchema> columnSchemaList);
}
class ColumnSchema {
// Constructor function
public ColumnSchema(String columnName, TSDataType dataType, ColumnCategory columnCategory);
// Get column names
public String getColumnName();
// Get the data type of the column
public TSDataType getDataType();
// Get column category
public Tablet.ColumnCategory getColumnCategory();
}
class ColumnSchemaBuilder {
// Build ColumnSchema object
public ColumnSchema build();
// Column Name
public ColumnSchemaBuilder name(String columnName);
// The data type of the column
public ColumnSchemaBuilder dataType(TSDataType columnType);
// Column category
public ColumnSchemaBuilder category(ColumnCategory columnCategory);
// Supported types
enum TSDataType {
BOOLEAN,
INT32,
INT64,
FLOAT,
DOUBLE,
TIMESTAMP,
TEXT,
DATE,
BLOB,
STRING;
}
// Supported column categories
enum ColumnCategory {
TAG,
FIELD
}
}
Tablet
Write column memory structure
class Tablet {
// Constructor function
public Tablet(List<String> columnNameList, List<TSDataType> dataTypeList);
public Tablet(List<String> columnNameList, List<TSDataType> dataTypeList, int maxRowNum);
// Interface for adding timestamps
void addTimestamp(int rowIndex, long timestamp);
// Interface for adding values
// Add values based on column names
void addValue(int rowIndex, String columnName, int val);
void addValue(int rowIndex, String columnName, long val);
void addValue(int rowIndex, String columnName, float val);
void addValue(int rowIndex, String columnName, double val);
void addValue(int rowIndex, String columnName, boolean val);
void addValue(int rowIndex, String columnName, String val);
void addValue(int rowIndex, String columnName, byte[] val);
void addValue(int rowIndex, String columnName, LocalDate val);
// Add values based on index position
void addValue(int rowIndex, int columnIndex, int val);
void addValue(int rowIndex, int columnIndex, long val);
void addValue(int rowIndex, int columnIndex, float val);
void addValue(int rowIndex, int columnIndex, double val);
void addValue(int rowIndex, int columnIndex, boolean val);
void addValue(int rowIndex, int columnIndex, String val);
void addValue(int rowIndex, int columnIndex, byte[] val);
void addValue(int rowIndex, int columnIndex, LocalDate val);
}
Read Interface
ITsFileReader
Used to query data in tsfile
interface ITsFileReader extends AutoCloseable {
// Used to execute queries and return results
ResultSet query(String tableName, List<String> columnNames, long startTime, long endTime);
// Return the schema of the table named tableName in tsfile
Optional<TableSchema> getTableSchemas(String tableName);
// Retrieve schema information for all tables in the tsfile
List<TableSchema> getAllTableSchema();
// Close query
void close();
}
TsFileReaderBuilder
Used to construct ITsFileWriter
class TsFileReaderBuilder {
// Build ITsFileReader object
public ITsFileReader build();
// target file
public TsFileReaderBuilder file(File file);
}
ResultSet
The result set of the query
interface ResultSet extends AutoCloseable {
// Move the cursor to the next row and return whether there is still data
boolean next();
// Get the value of the current row and a certain column
int getInt(String columnName);
int getInt(int columnIndex);
long getLong(String columnName);
long getLong(int columnIndex);
float getFloat(String columnName);
float getFloat(int columnIndex);
double getDouble(String columnName);
double getDouble(int columnIndex);
boolean getBoolean(String columnName);
boolean getBoolean(int columnIndex);
String getString(String columnName);
String getString(int columnIndex);
LocalDate getDate(String columnName);
LocalDate getDate(int columnIndex);
byte[] getBinary(String columnName);
byte[] getBinary(int columnIndex);
// Determine whether a column is NULL in the current row
boolean isNull(String columnName);
boolean isNull(int columnIndex);
// Close the current structure set
void close();
// Obtain the header of the result set
ResultSetMetadata getMetadata();
}
ResultSetMetadata
Used to obtain metadata for the result set
interface ResultSetMetadata {
// Obtain the column name of the Nth column in the result set
String getColumnName(int columnIndex);
// Obtain the data type of the Nth column in the result set
TSDataType getColumnType(int columnIndex);
}