ChatGPTとも連携! 複雑な要件でもこのデータベースだけでOK、人気急上昇中のTiDBとは?
【9-A-2】TiDBとChatGPTを使えばアプリはもっとシンプル化できる
最近人気急上昇中のデータベースとしてTiDBがある。2015年に設立したPingCAPが開発するオープンソースの分散データベースである。MySQL互換で、フルマネージド型DBサービス化した「TiDB Cloud」で利用可能であることも大きな特徴だ。ここにChatGPTを組み合わせることで、これからのアプリ開発はよりシンプルになるかもしれない。PingCAP株式会社 Japan CTOの林正記氏が解説する。
どのデータベースも一長一短、適材適所で組み合わせることが多かった
今回のメインテーマは分散データベースのTiDB。その前に、まずは昨今のデータベースに求められる要件を知るサンプルとして、PingCAP 林正記氏は「OSS Insight」というサイトを示した。
これはPingCAPが「オープンソースプロジェクトの活発度を可視化したい」ということで作成したサイトとなる。GitHubのイベント情報から、スターをどれだけ獲得したか、どの地域の開発者が多いのかなどいろんな角度から可視化できる。元となるデータは56億レコードにもおよび、リアルタイムで増え続ける。またこのサイトでは標準UIで用意していない可視化にも対応している。こうした規模や要件は昨今のWebサイトやアプリケーションであれば珍しくないのではないだろうか。
こうした要件があるなか、データストアはどうするか。特殊な用途であれば別だが、よくある選択肢となるのがRDB(OLTP向け)、RDB(OLAP向け)、NoSQL、Hadoopだ。スケールするものがほしいのであればNoSQLやHadoop、複雑な分析や集計があるならRDB(OLAP)、更新頻度が高いのであればRDB(OLTP)やNoSQLなどおおよその傾向はあるものの、1つのデータベースで全てをカバーするのは難しい。
どれも一長一短なのだ。例えばRDB(OLTP)だと更新に強くてもスケールに限界があるとか、分析クエリが得意でないとか。NoSQLだとスケーラビリティはいいけど、JOINを含むような複雑なクエリに対応しづらいとか。
そのため現実的には複数のデータベースを組み合わせたりする。更新部分ではRDB(OLTP)をシャーディングしてスケーラビリティを確保し、KafkaなどでETLパイプラインを構築し、DWHにデータを流すことでデータを同期する。よくあるクエリはクエリキャッシュをつけたりする。結果的にアプリから見ると、RDB(OLTP)とRDB(OLAP)の2系統からデータを引っ張ってくるということが必要になってくる。
林氏は「これはこれで1つの姿ですが、新しいKafkaを覚える必要があるとか、ツールが多数あるとか、学習のコストや運用のコストが生まれてきます」と指摘する。
この記事は参考になりましたか?
- Developers Summit 2023 セッションレポート連載記事一覧
- この記事の著者
-
加山 恵美(カヤマ エミ)
フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
