TQL と JDBC ドライバ
時系列エンジン(TSE)に外部からクエリを投入する2つの経路です — クエリ言語は TQL、 接続手段は JDBC ドライバです。
드라이버 plantpulse.timeseries.tql.TQLDriver
URL jdbc:ts://<호스트>:7800
계정 tse / (설치가 정한 비밀번호)
TQL は4つのうちの1つです
データゲートウェイ(:5500)は**クエリ言語でバックエンドを選択します。**どのエンジンに接続するか
を意識しなくて済む構造で、TQL が時系列エンジンを担当します。
| 言語 | バックエンド | 用途 |
|---|---|---|
| PQL | PostgreSQL | マスタデータ・設定(mm_*) |
| CQL | Aster TSDB | 時系列生データ・集計(tm_*) |
| SQL | Spark | レイクハウス・大容量分析 |
| TQL | 時系列エンジン(TSE) | 時間ウィンドウ集計・ギャップフィル |
ゲートウェイへ送信する際は、ヘッダで言語を指定します。
curl -sk -X POST https://<호스트>:5501/api/v1/query \
-H 'X-Lang: TQL' \
-H 'X-API-Key: <data.gateway.api.key>' \
-H 'Content-Type: text/plain' \
--data "SELECT LAST('1 DAYS', 'END') FROM CHANNEL1.PUMP1.TEMP_0001 \
WHERE timestamp BETWEEN '2022-01-01 00:00:00.000' AND '2030-12-31 23:59:59.999'"
レスポンスは {"result":"SUCCESS","data":[...]} 形式です。
5500 で送ると 5501 で 302 になります5500 は平文、5501 は TLS です。平文で送ってもリダイレクトされるため、最初から
5501 で送る方が往復が1つ減ります。
テーブル名は«パス»です
TQL の FROM 句はリレーショナルテーブル名ではなく、タグパスです。
FROM <채널>.<설비>.<태그>
예: CHANNEL1.PUMP1.TEMP_0001
時間範囲は WHERE timestamp BETWEEN … AND … で指定し、文字列リテラルは
'YYYY-MM-DD HH:mm:ss.SSS' です。
JDBC で接続する
BI ツール・バッチ・自作プログラムは JDBC を使用します。
Class.forName("plantpulse.timeseries.tql.TQLDriver");
try (Connection c = DriverManager.getConnection(
"jdbc:ts://192.168.0.41:7800", "tse", "<password>");
Statement st = c.createStatement();
ResultSet rs = st.executeQuery(
"SELECT LAST('1 DAYS','END') FROM CHANNEL1.PUMP1.TEMP_0001 "
+ "WHERE timestamp BETWEEN '2026-09-01 00:00:00.000' "
+ "AND '2026-09-02 00:00:00.000'")) {
while (rs.next()) System.out.println(rs.getString(1));
}
設定で指定する場合は plantpulse-jdbc.properties の jdbc.tse.* を使用します。
| キー | 値 |
|---|---|
jdbc.tse.driver | plantpulse.timeseries.tql.TQLDriver |
jdbc.tse.url | jdbc:ts://<호스트>:${PP_TSE_PORT} |
jdbc.tse.username | tse |
jdbc.tse.password | インストール時に設定された値 |
オプションキーとして jdbc.tse.pool.initial|min|max と jdbc.tse.query.timeout|fetch-size があります。
jdbc.tse.url を tss(7801)に変更しないでくださいTQL JDBC ドライバは平文 TSE リスナー(7800) を使用します。TSE クライアントはグローバルに
平文 ts/7800 がデフォルトです(2026-08)。
tss/7801 に設定すると、JDBC 接続失敗 → データゲートウェイ起動失敗 → /api/v1/* 全て
404 → analytics カタログ 404 に波及します。そのため ts と PP_TSE_PORT で固定されて
います → プロパティリファレンス
TSE クライアント (Java)
JDBC が読み取り中心であるのに対し、TSE クライアントは書き込みまで行うネイティブライブラリです。 プラットフォーム自身がメトリクスを投入する際に使用するものと同じです。
plantpulse-platform:plantpulse-timeseries-engine-client
2種類あります
| クラス | 内容 | 用途 |
|---|---|---|
TSEClient | 書き込みをバッファリングする store-and-forward | デフォルト。エンジンが一時的に切断されても書き込みを失いません |
DirectTSEClient | バッファなしの生 HTTP | バッファが妨げになる場合(テスト・使い捨てツール) |
TSEClient はコンストラクタが DirectTSEClient と同一であるため、そのまま差し替え可能です。
バッファワーカースレッドは最初のバッファリング書き込みで遅延して起動するため、クエリのみ行うクライアントはスレッドを
追加で使用しません。
接続
import plantpulse.timeseries.engine.client.TSEClient;
// protocol · host · port · user · password
TSEClient client = new TSEClient("https", "192.168.0.41", 7801, "tse", "<password>");
// URL 한 줄로도 됩니다
TSEClient client2 = new TSEClient("https://192.168.0.41:7801");
デフォルト値は https・7801・タイムアウト 60초 です。
両者は異なります。TSE クライアントは DEFAULT_PROTOCOL=https・DEFAULT_PORT=7801 で、
JDBC ドライバは平文 7800 です(上記 danger 参照)。同一エンジンの2つのリスナーです。
値の書き込み
import plantpulse.timeseries.engine.client.builder.MetricBuilder;
MetricBuilder builder = MetricBuilder.getInstance();
builder.addMetric("PLANTPULSE.LINE1.PUMP1.TEMP")
.addDataPoint(System.currentTimeMillis(), 42.7)
.addTag("site", "SITE_00001");
client.pushMetrics(builder);
値の読み取り
import plantpulse.timeseries.engine.client.builder.QueryBuilder;
QueryBuilder q = QueryBuilder.getInstance();
// 범위와 메트릭을 지정한 뒤
QueryResponse res = client.query(q);
JSON を直接作成した場合は client.query(String jsonText) でそのまま送信できます。
その他の機能
| 操作 | メソッド |
|---|---|
| メトリクス名一覧 | getMetricNames() |
| エンジン状態 | getStatus()・getStatusCheck() |
| ロールアップ(事前集計)タスク管理 | createRollupTask()・getRollupTasks()・deleteRollupTask() |
| メトリクス削除 | deleteMetric(name)・delete(QueryBuilder) |
| メタデータ | getMetricMetadata()・setMetricMetadata()・deleteMetricMetadata() |
| タグクエリ | queryTags(QueryTagBuilder) |
どちらの経路を選ぶか
| 状況 | 使用するもの |
|---|---|
| アプリで4つのバックエンドを1つの窓口に | ゲートウェイ POST /api/v1/query + X-Lang |
| Java プログラムで TSE のみ | JDBC (jdbc:ts://) |
| PlantPulse Dashboard・BI ツール | JDBC → ダッシュボード作成 |
| クライアントライブラリで簡単に | Data Gateway クライアント の tql() |
| Java から TSE への書き込みまで | TSE クライアント — 上記セクション |
関連項目
- 時系列関数 — バケット・ギャップフィル・補間
- Data Gateway クライアント — Java ラッパー
- クエリコンソール — ブラウザで直接