Used to write data to tsfile
interface ITsFileWriter extends AutoCloseable { // Write data void write(Tablet tablet); // Close Write void close(); }
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); }
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 } }
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); }
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(); }
Used to construct ITsFileWriter
class TsFileReaderBuilder { // Build ITsFileReader object public ITsFileReader build(); // target file public TsFileReaderBuilder file(File file); }
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(); }
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); }