概要
CockroachDBというデータベースの紹介です。
CockroachDBはGoogle Cloud Spannerのクローンで、RDBとNoSQLのいいところどりをしたNewSQLと言われています。そのNewSQLの解説をします。
目次
CockroachDBの名前の由来
「ゴキブリのようにしぶとくなかなかダウンしない」ということから頑丈という意味で名付けられました。
しかしCockroachDBという名前はゴキブリデータベースです。名前で使いたくないというイメージを持ってしまいます。
RDBとNoSQLのいいとこ取り NewSQLの正体
スケーラビリティの高いスケールできてRDBのようにSQLが書けるデータベースをNewSQLと呼びます。
RDBの特徴
RDBの強み
SQLというデータベースを操作するクエリーが使え、複雑なテーブルのデータを連携し出力ができます。
RDBの弱み
RDBはスケールアウトしづらくモノシリックな作りになっています。
NoSQLの特徴
NoSQLの強み
1つのDBで複数台のサーバーのリソースを利用することにより大きな負荷の高い処理を可能にします。つまりスケールアウトできることを得意としています。
落ちることがないことが前提で作成されています。まず、複数代のサーバーで構成されていればダウンすることはないでしょう。具体的にはクラウド環境では分散してデプロイすることでデータセンター規模の障害があっても継続稼働してくれます。
NoSQLの弱み
NoSQLは一貫性のあるトランザクション処理は不向きです。
NewSQLの特徴
NewSQLの強み
OracleやMySQL、PostgreSQLのようにSQLがかけて運用できるRDBの強みとMongoDBやRedis、BigQueryといったサーバ同士を連携させスケールさせて大規模な情報を処理するNoSQLの強みを取り入れたデータベースです。
NewSQLはRDBの機能を使えるので外部結合(join)もできます。Left JoinもできればInner Joinもできるしサブクエリーも使えます。
NewSQLの弱み
悪い部分をなくすためのNewSQLが現れました。RDBMSとNoSQLの両方の良いところのみを採用しています。
NewSQLはサーバーの負荷が高いので脆弱なサーバーでは運用できません。それにそこそこ費用がかかります。
他のNewSQL
同じNewSQLと言われるデータベースには以下の2つがあります。
- Google Cloud Spanner
- Microsoft CosmosDB
まとめ
先ほども紹介したのですがNewSQLはMicrosoftが出しているAzule CosmosDBがあります。クラウド上のDBです。
現状はCloud SpannerやCosmosDBは料金設定が高めのため、導入する企業がまだ少ないとは思いますが今後はさらにNewSQLが増えていき便利になっていくのではないでしょうか。
そして、今回の主役であるCockroachDBはマネージドサービスがあるので企業がこのサービスを使うときも増えてきそうな予感がします。