メインコンテンツまでスキップ

TQL と JDBC ドライバ

時系列エンジン(TSE)に外部からクエリを投入する2つの経路です — クエリ言語は TQL、 接続手段は JDBC ドライバです。

一言要約
드라이버 plantpulse.timeseries.tql.TQLDriver
URL jdbc:ts://<호스트>:7800
계정 tse / (설치가 정한 비밀번호)

TQL は4つのうちの1つです​

データゲートウェイ(:5500)は**クエリ言語でバックエンドを選択します。**どのエンジンに接続するか を意識しなくて済む構造で、TQL が時系列エンジンを担当します。

言語バックエンド用途
PQLPostgreSQLマスタデータ・設定(mm_*)
CQLAster TSDB時系列生データ・集計(tm_*)
SQLSparkレイクハウス・大容量分析
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.driverplantpulse.timeseries.tql.TQLDriver
jdbc.tse.urljdbc:ts://<호스트>:${PP_TSE_PORT}
jdbc.tse.usernametse
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초 です。

クライアントのデフォルトは 7801(TLS)、JDBC は 7800(平文)

両者は異なります。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 クライアント — 上記セクション

関連項目​