DX時代のデータベース選定のポイントとは
20年以上データベースエンジニアとして従事し、現在はデータ活用技術の専門家であるインサイトテクノロジーのCTO 宮地敬史氏は、データベース選定の前提として「業務系と分析系で重視すべきことが異なります」と話す。
その上で、データベースを選ぶ際の1つ目のポイントが「安定稼働」だ。これは、特に業務系データベースで重視される。ストレージやCPUなどに障害が発生しても、サービスが止まらない。あるいはサービスダウンや性能低下時間をできる限り短くしたい。そのための高い可用性があることは、ミッションクリティカルな業務システムでは極めて重要となる。
2つ目のポイントは「パフォーマンス」で、業務系でも分析系でも外すことはできない。業務系のデータベースではバッチ処理性能、並列処理実行数が増えても一定レスポンスが得られるなどの性能要件が重視される。分析系では、膨大なデータに対するアドホックなデータ抽出や複雑な検索処理の速度が重要だ。
3つ目は「コスト」。予算が十分にあれば、安定性の高い高性能なデータベースが手に入る。しかし予算は限られ、求める要件に対するコストパフォーマンスはユーザーが最も気にするポイントでもあるという。
これらに加え、開発や運用に携わるエンジニアが重視するポイントもある。1つが「メンテナンス性の高さ」。ユーザーインターフェイスが使いやすく、導入して使えるまでのリードタイムが短いことや、ノード追加などに手間がかからないことなどを、エンジニアは重視する。サポートの品質もチェックしたい。「日本では特に、ユーザーに寄り添ったサポートを求める傾向があります」と宮地氏。エンジニアの意図をくみ取り、問い合わせなどにレスポンスよく対応するベンダー製品は高い評価が得られる。
「米国企業のCIOやCTOは、今後の企業の成長を考え、それに対応できるかどうかで選んでいます」と言うのは、新しいオープンソースソフトウェアのデータベースである「TiDB(タイ・デー・ビー)」を開発するPingCAP(ピンキャップ)のCTO兼共同創業者 Ed Huang氏だ。ITの長い歴史の中、データベースはどちらかといえば縁の下の力持ち的な存在だった。それがDXの時代にはデータの重要性が増し、データベースの機能、性能の高さがデータ活用の“やりやすさ”に大きく影響する。増え続けるデータを活用するには、自社ビジネスの伸張に合わせて分散型で拡張できるデータベースが必要となるわけだ。「会社の10年先を見据えて、その成長を支えられるデータベースが求められます」とHuang氏は付け加える。
もう1つ、CTOやCIOが気にするのが「移行コスト」だ。「新しいテクノロジーで素晴らしいデータベースでも、従来とまったくシンタックスが異なり運用管理のやり方も違えば、価値を出すまでに多くのリソースを必要とします。それでは移行コストが膨大になります」と言う。この点は、宮地氏が指摘したコストパフォーマンスにもつながることだろう。
TiDBはMySQL互換の「分散データベース」
2022年11月に開催された国内最大級のデータベース技術カンファレンス「db tech showcase 2022 Tokyo」の来場者アンケートで、「今後、利用してみたいデータベース製品」の1位に選ばれたのが「TiDB」だった。この結果には、かなり驚かされたと宮地氏。選ばれた主な理由として、TiDBを開発しているPingCAPが国内での体制を強化したことにより、TiDBがどのような特長のあるデータベースであるかの認知が向上したことが考えられると言う。
また、TiDBは利用できる環境を用意しやすいことも興味を持たれている理由の1つだろう。注目度の高いAmazon AuroraやAzure Synapse Analyticsなどは、それぞれのクラウドサービス上でしか利用できない。一方、TiDBはオープンソースソフトウェアで、AWSやGoogle Cloud上でフルマネージドサービスである「TiDB Cloud」としても提供されている。エンジニアが自らセットアップして、様々な環境で使えることはエンジニアの負担を下げることにもつながる。
さらに「機能の良さもあるでしょう。エンジニアは良いものでなければ使いたいと思いません」と宮地氏。たとえばTiDBは広く使われているMySQLと互換性があり、MySQLベースの既存アプリケーションをほぼ書き換えずに利用できる。この点もエンジニアが、関心を持つところだという。
またPostgreSQL互換の分散データベースはいくつかあるが、MySQL互換のものはなく、それも興味を持つポイントだと指摘する。様々なところでデータが生まれ、その量は増加するばかりだ。それらを効率的に蓄積し、分析などを高い性能で処理したい。この要望に応える際に、データベースがMySQLであれば、シャーディングしか方法がない。しかしMySQLのシャーディングは、1ノードあたりのリード/ライト(Read/Write)処理に限界があり、ノード追加にも手間がかかる。シャーディングを行えば、アプリケーションの改修も必要だ。一方TiDBはノード追加も容易で、それだけで処理が負荷分散される。Amazon Aurora MySQLともよく比べられるが、Auroraはリードレプリカができてもライト処理のオフロードはできない。それもエンジニアが関心を持つポイントだろう。
もう1つ拡張の柔軟性もTiDBが評価されるポイントだ。ユーザーやデータが増えた際に、データベースノードだけ、あるいはストレージだけをオンラインで追加し拡張できる。この点はトータルでのコストパフォーマンスにも影響する。そしてハイブリッドトランザクション/分析処理のHTAPに対応している点もTiDBの魅力だ。OLTPのデータはTiDBのローストアに保存され、ほぼリアルタイムにカラム型の「TiFlash」にも保存される。TiFlashのデータを使えば、高速な分析処理ができるのだ。「このようにTiDBでは、エンジニアがやりたいことをすべて満たしています」と宮地氏は言う。
未来のデータベースは「NewSQL」だと確信
Huang氏は以前、大手インターネット関連企業でMySQLベースの環境の構築、管理などの業務に携わっていた。この会社は急激に伸びており、成長に合わせてMySQLデータベースの環境をシャーディングで拡張する必要があった。「1、2ヵ月でMySQLクラスターが倍増するような状況で、対応は大変でした。その上、サービスを止めることは許されませんでした」と言う。シャーディングの際のデータのリバランスも臨機応変に行うなど「今では信じられないようなことをしていました」と振り返る。
MySQLをシャーディングで拡張すると、JOINやGROUP BYの処理には制限があり、アプリケーション開発エンジニアは不満だった。彼らには柔軟な拡張性とアプリケーション開発は二律背反すると説明していたが、これらを両立したい課題があった。そのようなときに発表されたのが、NewSQLと呼ばれる分散データベースのGoogle Spannerの論文だった。「これはSQLとNoSQLの良いところ取りをしたもので、SQLが使え、その上で極めて柔軟な拡張ができるものでした」とHuang氏。これならデータベース管理者の負担もなく、未来のデータベースはNewSQLだと確信する。
Google CloudのCloud Spannerは素晴らしかったが、Google Cloudでしか使うことができない。ならば同様なものをオープンソースソフトウェアとして作ろうと考え、生み出されたのがTiDBである。当初は拡張性のある分散型のOLTPのデータベースとして開発され、MySQLとの互換性を持ち、シャーディングに代わるものとして提供された。
実績のないデータベースは、それが素晴らしいものでも本番システムとしてはなかなか使われない。そのためまず、基幹系システムのバックアップ用途でTiDBの利用が始まる。柔軟で高い拡張性があるため利用は徐々に拡がる。そうなるとOLTPだけではもったいないので、OLAPでも利用されるようになる。そのニーズにもより対応できるようにTiFlashの機能も追加、TiDBはHTAPのデータベースへと進化したのだ。
OLTPはOracleで、OLAPはSnowflakeでなど、データベースの選択、組み合わせに頭を悩ませるエンジニアは少なくない。「TiDBはどちらの処理も高速に行え、それを1つのデータベースで実現できます。ETLもいらないシンプルな構成が実現でき、これはユーザーが望む形です」とHuang氏。MySQLを大規模に利用してきたユーザーが待ち望んでいたデータベースであり、10年先を見据えた選択にTiDBはぴったりだと言う。
様々な新しいデータベースが登場しているが「エンジニアがデータを扱うには、今後もSQLが最適なものです。それをTiDBはフルでサポートします」と、SQLがフルスペックで使えることの重要性をHuang氏は改めて強調する。TiDBはSQLが使える分散データベースであることで、二律背反だった拡張性とアプリケーション開発の柔軟性の両立という課題を克服している。またOLTPとOLAPを1つのデータベースで対応できるHTAPである点は、複数データベースを扱う必要がなくアプリケーション開発をシンプルにすると自信を見せた。
現状でもTiDBはフルスペックのSQLが利用でき、十分な性能も発揮されていると宮地氏も評価する。しかしMySQLと高い互換性があるとは言え、ストアードプロシージャなど一部対応していないものもある。これに対し「大規模な分散データベースでストアードプロシージャに対応するのは簡単ではありませんが、たとえば将来的にLuaコードを書いてストアードプロシージャに近いことができるようにすることを考えています」とHuang氏。既にいくつか試していることもあり、AIによる自然言語処理技術などを用いてストアードプロシージャのリライトなどを実施し、良好な結果が得られているという。このようなAI技術との組み合わせにより、データベースは今後さらに進化していくとHuang氏は考えている。宮地氏は「ビジネスプロセスをストアードプロシージャで組むべきではないと思っていますが、既存のシステムの移行にはストアードプロシージャの対応は必要でしょう。対応できればより幅広いユーザーに支持されるはずです。TiDBのさらなる進化に期待します」と話した。
ビジネスが成長し続けているような企業では、高い拡張性のあるTiDBをぜひ使ってほしい。その上でエンジニアが不足しているような場合も、運用管理の手間が少ないTiDBは向いている。そして「アプリケーション開発者にもTiDBを使ってみてもらいたい。またデータを扱うことがビジネスのコアとなっているような企業には、TiDBがHTAPに対応しているところもぴったり合うはずです」とも言う。db tech showcaseに参加するような日頃からデータベースに高い関心を持つエンジニアに注目されているTiDB、今後はこれをDXのためのデータベースの選択肢に入れるべきだろう。
PingCAPについて
PingCAPは、エンタープライズ向けのソフトウェアサービスプロバイダーとして2015年に設立され、オープンソースでクラウドネイティブなワンストップのデータベースソリューションを提供することにコミットしています。
PingCAPの代表的なプロジェクトであるTiDBは、オープンソースの分散型ハイブリッドトランザクション/分析処理(HTAP)データベースで、水平方向の拡張性、強力な一貫性、MySQLとの互換性を備えた高い可用性を特徴としています。
インサイトテクノロジーについて
インサイトテクノロジーは、1995年の創業以来、企業におけるデータの価値を最大化するために何が必要かを常に考え、データベースの専門家集団として、必要な製品やサービスを提供し続けてきました。
また、同社が主催するデータ技術者向けカンファレンス「db tech showcase」には、世界中からデータ技術のエキスパートが講師として登壇し、毎年1,000名規模のエンジニアが参加しています。