全部產品
Search
文件中心

Lindorm:開發指南

更新時間:Dec 05, 2024

本文面嚮應用開發人員概要介紹了如何基於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。

      • 基於時間序列資料庫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相容的行協議寫入,具體操作,請參見行協議參考