本文面嚮應用開發人員概要介紹了如何基於Lindorm時序引擎開發應用程式。
應用開發步驟
一般來說,開發人員需要按照如下步驟進行開發。
1. 選擇SDK
Lindorm提供了以SQL為主的多種形態介面,方便開發人員編寫訪問時序引擎的應用程式。
Java語言開發的應用程式:Lindorm提供Java Native SDK和JDBC 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的應用程式,您可以按照以下步驟進行應用遷移:
應用適配
修改應用程式中的連接字串,串連的目標從原有的OpenTSDB或時間序列資料庫TSDB改為Lindorm時序引擎。Lindorm時序引擎連接字串的擷取方法請參見查看串連地址。
結合Lindorm時序引擎的能力修改應用程式。
基於HTTP API開發的應用程式:Lindorm時序引擎支援的HTTP API基本相容時間序列資料庫TSDB的API。
基於時間序列資料庫TSDB的SDK開發的Java應用程式:Lindorm時序引擎相容了時間序列資料庫TSDB的90%以上的能力,基本可以無縫遷移。
使用多值模型寫入:資料預設寫入default資料庫。Schema約束策略預設為無約束,即不會自動建立時序資料表。如果需要使用SQL查詢資料,可以手動建立時序資料表或將Schema約束原則設定為弱約束。時序引擎基於SQL提供了更多的時序特性功能和更好的效能,推薦開發人員使用SQL查詢資料。
使用OpenTSDB或單值模型寫入:Schema約束策略為無約束,即無法建立時序資料表,且不相容SQL查詢。
應用代碼串連到Lindorm時序引擎進行測試,測試無誤後即可上線運行。
資料移轉
支援時間序列資料庫TSDB全量遷移至Lindorm時序引擎,具體操作,請參見TSDB全量遷移至時序引擎。
使用Prometheus的應用開發步驟
時序引擎支援remote write和remote read介面作為遠端儲存,並提供原生PromQL查詢能力,具體操作,請參見通過Prometheus訪問時序引擎。
使用InfluxDB的應用開發步驟
時序引擎支援InfluxDB相容的行協議寫入,具體操作,請參見行協議參考。