イオンスマートテクノロジーが期待するTiDBとは
2020年10月に設立されたイオンスマートテクノロジーは、イオングループのデジタルシフト戦略を担う企業だ。「お客様の買い物体験の向上と、店舗DXを進める会社と位置づけられています」と言うのは、イオンスマートテクノロジー株式会社 CTO室 SREチームリーダーでDevRelの担当も兼任する香西俊幸氏だ。
イオングループの代表的なアプリケーションに「iAEON」がある。膨大な顧客IDと購買データを集約し、イオングループが提供する決済機能やポイントプログラム機能がまとめられたアプリケーションだ。iAEONは提供開始から3年ほどで500万人以上の会員があり、独自のコード決済サービス「AEON Pay」は836万人が利用している。
香西氏は自社の取り組みを紹介する前に、今回のテーマでもあるTiDBとPingCAPを紹介した。TiDBは複数コンポーネントからなる分散データシステムで、HTAP(Hybrid Transactional and Analytical Processing)を実現するMySQL互換のNewSQLデータベースだ。拡張性の高さに大きな強みがある。
TiDBを開発、提供しているのがPingCAP社だ。元InnoDB開発者のサニー・ベインズ氏を始めとし国内外のデータベースのスペシャリストが集まっており、日本法人のPingCAP JapanにTiDB主要コンポーネントの1つTiKVのコアデベロッパーが在籍しているのもユニークな点だと説明する。
NewSQLは、SQLデータベースとNoSQLデータベースの両方の特性を持ち、「シンプルに言えば、RDBMSとNoSQLのいいところを利用したもの」と香西氏。NewSQLはPostgreSQL互換のものが多い中、MySQL互換なのもTiDBのユニークな点だと言う。
TiDBは、大きく4つのコンポーネントで構成される。MySQLプロトコルの接続エンドポイントを外部公開するステートレスSQLレイヤのTiDB。ここにデータは保存されず、コンピューティングとSQL分析・処理のみを行う。実際のデータは、TiKVノードやTiFlashノードに送信され保存される。TiDBは、Golang製のOSSだ。
TiKVは、分散トランザクション型のKey-Valueストアで、データの永続化にRocksDBが使われている。CNCFによってホストされるRust製のOSSで、Graduatedステータスとなっている。TiFlashは、データを列ごとに保存し分析処理を高速化しHTAPを実現する。これはC++製のOSSで、オプションのコンポーネントとなる。TiDBクラスター全体の頭脳となるコンポーネントが、プレイスメント・ドライバーでメタデータ管理を行う。また管理UIも提供されている。
TiDBには無限のスケーラビリティがあり、さまざまな優位性がある。「唯一合わないユースケースとしては、複数コンポーネントから構成されるのでネットワーク遅延の加算によるレイテンシがあるため、数ミリセックのレスポンスが求められる要件のシステムには向かないでしょう」と香西氏は言う。
HTAPとはOLTPとOLAPのワークロードを同じアーキテクチャで処理でき、ワークロードが互いに干渉しないものだ。従来はOLTPのデータベースからETL処理をはさみOLAPのデータベースにデータを入れる構成が多かったが、HTAPのTiDBならETLなしで1つの仕組みにより実現できる。
PingCAPが提供する、TiDBを用いたDBaaSがTiDB Cloudだ。2024年2月現在、AWSとGoogle Cloudから提供されている。「イオンスマートテクノロジーではAzureをメインに使っているので、Azure版を心待ちにしています」と香西氏。
TiDB Cloudでは、ServerlessとDedicatedのサービスが選べる。ServerlessはAWSのみで、Dedicatedはリソース課金、Serverlessはクエリ課金となっている。プライベートの接続方式は、DedicatedではVPC Peeringが可能だが、ServerlessはPrivate Linkのみとなる。またServerlessでは、スケールアップ、スケールアウトは自動で行えるがいくつかの機能制限もある。