老朽化したHBaseのデータ処理基盤をTiDBに移行
渡邉氏が所属するグループIT推進本部のデータプロダクトユニットは、「データの力で事業成長を加速させる」をミッションに掲げている組織横断での課題解決チームだ。ミッション遂行のために、チームではデータ処理基盤の開発・運用および生成AIの活用などに取り組んでいる。
サイバーエージェントでは、2010年にリリースした大規模データ処理基盤「Patriot」を運用してきたが老朽化。これにともない、現在データプロダクトユニットが刷新に取り組んでおり、HBaseで運用してきた部分を新たにTiDBに置き換えようとしている。
たとえば、Sparkなどによる分析結果の集計データをTiDBに書き込み、それらのデータに対して、さまざまなシステムからクエリなどの処理を行うことを目指す。他にも蓄積されたデータは、レコメンドや検索でも利用されるという。サイバーエージェントでは、プライベートクラウド「Cycloud」を運用しており、旧データ処理基盤はCycloudのVM上に構築されている。加えて、将来的にKubernetesクラスターに新しいシステムを載せていくことになるため、「今回刷新するデータ処理基盤もKubernetesクラスターに載せています」と渡邉氏。なるべく運用担当者の負荷を減らしていきたいという。
旧データ処理基盤で利用してきたHBaseは、データモデルがワイドカラム型のNoSQLデータベースの1つ。リージョンという単位でキーレンジとして論理的に分割しており、それらを管理するリージョンサーバーが存在している。なお、リージョンサーバーに対するリージョンの管理や割り当てを行うマスターがあり、ZooKeeperを利用してクラスター全体の障害検知やメタデータ管理を行う。
そして、クライアントはリージョンサーバーに接続してデータを読み込むため、これは「TiKV」とかなり似た構造になるとして「TiKVはHBaseを元に開発されており、似たアーキテクチャになっています」と渡邉氏は説明した。
しかし、明瞭な違いもいくつか存在する。たとえば、TiDBのデータモデルはリレーショナル型であることだ。加えてHBaseはトランザクションをサポートしないが、TiDBはサポートできる。一方、TiDBはトランザクションの分離レベルがスナップショットアイソレーション(Snapshot isolation)になっている点などには注意したいと渡邉氏。HBaseではセカンダリ・インデックスに対応せず、JOINによる検索もサポートしていないなどの留意点もある。他にも、レイテンシーにおいて差がでる場面もあるため、1桁ミリ秒程度が要求される場合は考慮すべきだとアドバイスを送った。