文档

时序引擎应用开发简介

更新时间:

本文面向应用开发者概要介绍了如何基于Lindorm时序引擎开发应用程序。

应用开发步骤

一般来说,开发者需要按照如下步骤进行开发。

1. 选择SDK

Lindorm提供了以SQL为主的多种形态接口,方便开发者编写访问时序引擎的应用程序。

  • Java语言开发的应用程序:Lindorm提供Java Native SDKJDBC Driver

    推荐开发者使用Java Native SDK。因为其提供了更加高效易用的使用方法,支持底层连接管理、数据攒批写入、错误重试等功能,优化了数据传输编码,写入效率更高。

  • 其他语言开发的应用程序:Lindorm提供基于HTTP协议的API行协议写入

    推荐开发者使用行协议写入数据,并使用HTTP API提供的SQL接口进行数据查询。

2. 数据建模

针对业务场景进行数据建模,需要确定创建数据库和时序数据表,确定时序数据表的标签、时间戳和量测值,并根据数据特征确定PRIMARY KEY用于数据分片。关于数据模型,请参见数据模型

时序引擎提供了三种Schema约束策略,分别为强约束、弱约束、无约束,分别应对Schema和Schemaless的场景,详情请参见Schema约束

3. 数据写入

时序引擎支持Java Native SDK写入、行协议写入、标准SQL写入等多种写入方法,其中,Java Native SDK写入、行协议写入以及兼容TSDB接口的多值写入提供了Schema弱约束,以应对Schemaless场景下自动建表的需求。请根据业务情况选择数据写入方法。

4. 数据查询

时序引擎提供标准的SQL访问能力,并根据时序特性扩展了SQL时序特性,支持降采样、聚合、最新值查询等时序特性的查询能力。

5. 连续查询

连续查询应用于大数据查询的场景。通过创建连续查询对新写入的数据预聚合处理,减少实时查询的数据量,从而减少计算量并降低查询延迟。

6. 预降采样

预降采样应用于较长时间范围的数据查询场景。在数据写入时按照设置的规则将原始数据降低精度存储,降采样查询时,通过查询低精度数据来减少查询的数据量,从而降低查询延迟。

使用OpenTSDB或时间序列数据库TSDB的应用开发步骤

Lindorm时序引擎兼容相关接口,对于已有使用OpenTSDB或者时间序列数据库TSDB的应用程序,您可以按照以下步骤进行应用迁移:

  1. 应用适配

    1. 修改应用程序中的连接字符串,连接的目标从原有的OpenTSDB或时间序列数据库TSDB改为Lindorm时序引擎。Lindorm时序引擎连接字符串的获取方法请参见查看连接地址

    2. 结合Lindorm时序引擎的能力修改应用程序。

      • 基于HTTP API开发的应用程序:Lindorm时序引擎支持的HTTP API基本兼容时间序列数据库TSDB的API。更多信息,请参见HTTP API 概览

      • 基于时间序列数据库TSDB的SDK开发的Java应用程序:Lindorm时序引擎兼容了时间序列数据库TSDB的90%以上的能力,基本可以无缝迁移。

      • 使用多值模型写入:数据默认写入default数据库。Schema约束策略默认为无约束,即不会自动创建时序数据表。如果需要使用SQL查询数据,可以手动创建时序数据表或将Schema约束策略设置为弱约束。时序引擎基于SQL提供了更多的时序特性功能和更好的性能,推荐开发者使用SQL查询数据。

      • 使用OpenTSDB或单值模型写入:Schema约束策略为无约束,即无法创建时序数据表,且不兼容SQL查询。

    3. 应用代码连接到Lindorm时序引擎进行测试,测试无误后即可上线运行。

  2. 数据迁移

    支持时间序列数据库TSDB全量迁移至Lindorm时序引擎,具体操作,请参见TSDB全量迁移至时序引擎

使用Prometheus的应用开发步骤

时序引擎支持remote write和remote read接口作为远端存储,并提供原生PromQL查询能力,具体操作,请参见通过Prometheus访问时序引擎

使用InfluxDB的应用开发步骤

时序引擎支持InfluxDB兼容的行协议写入,具体操作,请参见行协议参考

  • 本页导读 (1)
文档反馈