【クエストディービー】

QuestDB とは?

最終更新:
💡 時刻付きの記録を、SQLでまとめて調べる

時系列データの保存・分析に特化したSQLデータベース。列指向の保存と時間によるデータの分割を使い、センサーの記録や金融取引などを扱う。

📌 このページのポイント
センサーの記録をSQLで分析 センサー QuestDB:列ごとに保存 時刻 温度 機器 09:00:00 23.5 A 09:00:01 23.6 A 09:00:02 23.4 A SQLで1時間の平均を集計 SAMPLE BY 1h 09:00 の平均:23.5 ℃ 同じ日の3件を集計した例
時刻・温度・機器を列ごとに保存し、SQLで時間ごとに集計する。図の3件はいずれも同じ日の記録。
ひよこ ひよこ
ペンギン先生、時系列データベースって普通のDBと何が違うの?
ペンギン先生 ペンギン先生
センサーの温度や株価の取引のように、時刻付きで届くデータを保存・分析するために設計したDBだよ。QuestDBは列指向で保存し、時間でデータを分割して、必要な期間や列を読む分析を支えるんだ。普通のRDBでも時系列を扱えるので、用途とデータで使い分けるよ。
ひよこ ひよこ
QuestDBはSQLが使えるって聞いたんだけど、それって普通と同じなの?
ペンギン先生 ペンギン先生
SELECTや集計関数などのSQLに、時系列向けの拡張を加えているよ。例えば平均値の集計にSAMPLE BY 1hを付けると1時間ごとにまとめられる。LATEST ON timestamp PARTITION BY deviceなら機器ごとの最新行を取得できる。どちらも基準にする時刻列を指定したテーブルが前提だよ。
ひよこ ひよこ
列指向って何なの?行指向と何が違うの?
ペンギン先生 ペンギン先生
行指向は1件分の値をまとめて、列指向は同じ列の値をまとめて保存するんだ。「温度の平均」を求めるときに温度など必要な列だけを読みやすいのが利点だよ。ただし常に何倍も速いわけではなく、クエリ・データ量・機器などで結果は変わる。
ひよこ ひよこ
IoTや金融以外にはどんな使い方があるの?
ペンギン先生 ペンギン先生
時刻付きの監視値やイベント記録の分析にも使えるよ。GrafanaなどのBIツールから問い合わせたり、既存の収集ツールのInfluxDB Line Protocolでデータを取り込んだりできる。使うツールの接続方式や対応機能を確認しよう。
ひよこ ひよこ
PostgreSQLのツールが使えるなら、PostgreSQLと同じなの?
ペンギン先生 ペンギン先生
同じ製品ではないよ。PostgreSQLの通信方式に対応しているので、そのドライバなどで接続できるんだ。ただしSQLの方言や対応機能は違う。例えばQuestDBのこの接続方式ではDELETE文やBLOB転送が非対応だから、既存アプリがそのまま動くとは限らないよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「QuestDB」って出てきたら「時系列データの保存・分析に特化したSQLデータベース」と思えばだいたいOK!
📖 おまけ:英語の意味
「QuestDB」 = 時系列SQLデータベースの製品名
💬 QuestDBという名前のデータベース製品だよ。時刻を軸にした保存とSQLによる分析を特徴としている。

参考資料

← 用語集にもどる