时序引擎应用开发简介

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

应用开发步骤

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

  1. 选择SDK:Lindorm提供了以SQL为主的多种形态接口,方便用户编写访问时序引擎的应用程序。

  • 对于Java语言开发的应用程序提供了Native SDK、JDBC Driver两种方式写入数据。Native SDK提供了更加高效易用的操作方法,支持底层连接管理、数据攒批写入、错误重试等功能,对数据传输编码进行了优化,写入效率更高。推荐开发者使用Native SDK方式写入数据。

  • 对于其他语言开发的应用程序提供基于HTTP协议的API、行协议写入两种方式写入数据。推荐开发者使用行协议写入数据,并使用API接口访问数据。

四种写入方式的参考文档如下表所示。

写入方式

相关文档

Native SDK写入

Java Native SDK

JDBC Driver写入

Java JDBC Driver开发手册

基于HTTP协议的API写入

HTTP API SQL接口开发手册

行协议写入

行协议写入

  1. 数据建模

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

  1. 数据写入

时序引擎支持Native SDK写入、行协议写入、标准SQL写入等写入方法,您可以根据业务情况选择合适的数据写入方法。时序引擎提供了三种Schema约束策略,分别为强约束、弱约束、无约束。Native SDK和行协议两种写入方式,可以将Schema约束策略设置为弱约束。 关于Schema约束策略,请参见关于时序数据的Schema约束

  1. 数据查询

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

  1. 连续查询

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

  1. 预降采样

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

使用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%以上的能力,基本可以无缝迁移。

      • 使用API写入:数据默认写入default数据库。Schema约束策略默认为无约束,即不会自动创建时序数据表。如果您需要使用SQL查询数据,可以手动创建时序数据表或将Schema约束策略设置为弱约束。基于SQL提供了更多的时序特性功能表达,并对性能进行了优化,推荐开发者使用SQL查询数据。

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

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

  2. 数据迁移

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

使用Prometheus的应用开发步骤

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

使用InfluxDB的应用开发步骤

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

阿里云首页 云原生多模数据库Lindorm 相关技术圈