【エイチタップ】

HTAP(ハイブリッドトランザクション分析処理) とは?

最終更新:
💡 取引処理と分析を同じDB基盤で

注文などの取引処理(OLTP)と、集計や分析(OLAP)を同じデータベース基盤で扱う考え方。別の分析基盤へ移すETLを減らせるが、内部でのデータ複製や読み取り待ちがなくなるとは限らない。

📌 このページのポイント
HTAP:取引と分析を扱うDB基盤 注文登録と売上集計を同じ基盤でTiDBの構成例TiDB(SQLの入口)取引分析TiKV行ストアTiFlash列ストア非同期複製複製するテーブルの指定が必要読む前に、必要な時点までの複製を確認
TiDBの実装例。青は取引、橙は分析、緑はTiKVからTiFlashへの非同期複製。読み取りで使うエンジンはクエリに応じて選ばれ、必要な複製を待つ場合がある。すべてのHTAPがこの構成になるわけではない。
ひよこ ひよこ
HTAPって何? OLTPとOLAPを合体させたものなの?
ペンギン先生 ペンギン先生
いい理解だよ。注文を登録するような取引処理と、売上を集計する分析処理を、同じデータベース基盤で扱う考え方なんだ。「1つのDB」といっても、物理的なサーバーが1台とは限らないよ。
ひよこ ひよこ
別の分析基盤にコピーしなくていいの?
ペンギン先生 ペンギン先生
取引用DBから分析基盤へETLで移す構成に比べて、その転送や管理を減らせるよ。ただし、HTAPでも内部でデータを複製する実装がある。「複製も待ち時間も一切ない」という意味ではないんだ。
ひよこ ひよこ
具体的にはどんな仕組みなの?
ペンギン先生 ペンギン先生
TiDBでは、行ベースのTiKVと列ベースのTiFlashを使えるよ。TiFlashに複製するテーブルを指定すると、TiKVのデータが非同期に複製される。読み取りクエリでは、オプティマイザがコストを見積もってTiKVやTiFlash、または両方を使う計画を選ぶんだ。
ひよこ ひよこ
非同期なのに、古いデータを読まないの?
ペンギン先生 ペンギン先生
TiFlashは読み取りのたびに複製の進み具合を確認するよ。要求された時点までのデータが複製に含まれてから読み取ることで、TiKVと同じスナップショット分離の整合性を保つ。複製が遅れていれば、その分を待つことがあるんだ。
ひよこ ひよこ
取引と分析が互いに邪魔しないようにできる?
ペンギン先生 ペンギン先生
TiDBの公式資料では、負荷を分離したい場合にTiKVとTiFlashを別のノードへ配置する構成を勧めているよ。複製を持つストレージや計算資源も必要になる。同じDB基盤で扱えても、処理量に合った構成を考えることが大切なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「HTAP」って出てきたら「取引と分析を1つのDBで同時に処理する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Hybrid Transactional and Analytical Processing」 = ハイブリッドトランザクション分析処理
💬 Hybrid(混合)でTransactional(取引)とAnalytical(分析)のProcessing(処理)を両方行うから、この名前だよ

参考資料

← 用語集にもどる