English | 中文

TsFile Java Document

使用

在 Maven 中添加 TsFile 依赖

当前发布版本是 2.1.0,可以这样引用

<dependencies>
    <dependency>
      <groupId>org.apache.tsfile</groupId>
      <artifactId>tsfile</artifactId>
      <version>2.1.0</version>
    </dependency>
<dependencies>

TsFile Java API

数据写入

数据写入主要通过 TsFileWriter 完成。

  1. 创建 TsFileWriter

     File f = new File("test.tsfile");
     TsFileWriter tsFileWriter = new TsFileWriter(f);
    
  2. 注册时间序列

    List<MeasurementSchema> schema1 = new ArrayList<>();
    schemas.add(new MeasurementSchema("电压", TSDataType.FLOAT));
    schemas.add(new MeasurementSchema("电流", TSDataType.FLOAT));
    tsFileWriter.registerTimeseries(new Path("太阳能板1"), schema1);
    
    List<MeasurementSchema> schema2 = new ArrayList<>();
    schemas.add(new MeasurementSchema("电压", TSDataType.FLOAT));
    schemas.add(new MeasurementSchema("电流", TSDataType.FLOAT));
    schemas.add(new MeasurementSchema("风速", TSDataType.FLOAT));
    tsFileWriter.registerTimeseries(new Path("风机1"), schema2);
    
  3. 写入数据

    TSRecord tsRecord = new TSRecord(1, "太阳能板1");
    tsRecord.addTuple(DataPoint.getDataPoint(TSDataType.FLOAT, "电压", 1.1f));
    tsRecord.addTuple(DataPoint.getDataPoint(TSDataType.FLOAT, "电流", 2.2f));
    tsFileWriter.write(tsRecord);
    
  4. 调用close方法来关闭文件,关闭后才能进行查询。

    tsFileWriter.close();
    

写入 TsFile 完整示例

构造 TSRecord 来写入数据

构造 Tablet 来写入数据

数据查询

数据查询主要通过 TsFileReader 完成。

  1. 创建 TsFileReader

    TsFileSequenceReader reader = new TsFileSequenceReader(path);
    TsFileReader tsFileReader = new TsFileReader(reader);
    
  2. 构造查询条件

       ArrayList<Path> paths = new ArrayList<>();
       paths.add(new Path("太阳能板1", "电压"));
       paths.add(new Path("太阳能板1", "电流"));
    
       IExpression timeFilter = BinaryExpression.and(
       new GlobalTimeExpression(TimeFilterApi.gtEq(1L)),
       new GlobalTimeExpression(TimeFilterApi.ltEq(10L)));
    
       QueryExpression queryExpression = QueryExpression.create(paths, timeFilter);
    
  3. 查询数据

    QueryDataSet queryDataSet = readTsFile.query(queryExpression);
    while (queryDataSet.hasNext()) {
         queryDataSet.next();
    }
    
  4. 关闭文件

    tsFileReader.close();
    

读取 TsFile 完整示例

查询数据

全文件读取

开发

前置条件

构建 Java 版的 TsFile,必须要安装以下依赖:

  1. Java >= 1.8 (1.8, 11 到 17 都经过验证. 请确保设置了环境变量).
  2. Maven >= 3.6.3 (如果要从源代码编译TsFile).

使用 maven 构建

mvn clean package -P with-java -DskipTests

安装到本地机器

mvn install -P with-java -DskipTests