SQL vs NoSQL、グーグルにおける戦い(後編)。Google I/O 2012

2012年7月9日

SQLとNoSQLではどちらが優れているのか? グーグルの担当者がディベート(というより小芝居:-)を行ったセッション「Google I/O 2012 - SQL vs NoSQL: Battle of the Backends - YouTube」が公開されています。

(この記事は「SQL vs NoSQL、グーグルにおける戦い(前編)。Google I/O 2012」の続きです)

スケーラビリティについて

(NoSQL担当)あらゆる面で、こちらが高いスケーラビリティを提供している。

(SQL担当)そんな訳ないだろ。

(NoSQL担当)そんな訳あるさ。

(SQL担当)じゃあまず、Cloud SQLがどう使われているか紹介しよう。例えば「グーグルorgチャート」。グーグルの3万人の従業員について、組織内のつながりや仕事を示すアプリケーションだ。

社内では誰もがこのWebサイトを開いていて、毎秒10から100程度のクエリをCloud SQLが処理している。大規模な組織のアプリケーションでも十分に使えることを示しているだろう。

fig

(NoSQL担当)大人気のモバイルアプリケーションの開発を考えてみてほしい。 毎秒数千のクエリと数百万ユーザーもいるような。しかしDatastoreなら、スケーラビリティの心配もプロビジョニングの心配もなく、ちゃんと動作する。

Datastoreはグーグルのインフラの上に構築されており、それぞれがスケーラビリティの重要な機能をになっている。

fig

いちばん下のレイヤはGoogle File Systemで、これは必要なだけ大規模な容量を実現している。その上位レイヤにはBigTableがあり、負荷を自動的に分散してくれるため、スパイクが発生してもうまく処理してくれる。

そのうえにMegastoreがある。これは分散データストアであり、複数の地域に分散したレプリケーションを実現してくれる。

Datastoreは障害が発生しても自動的にフェイルオーバーして動作し続ける。Entityグループで一貫性も保証されており、データセンターが壊滅的な状態になっても別のデータセンターに切り替えるため、ユーザーに影響はない。

(NoSQL担当)スコアを見てみよう。オーイエー! 次はマネジメントについて話そう。

fig

マネジメント機能の比較

(NoSQL担当)冒頭でクラウドのメリットについて話した。パッチを当てる心配も、ハードディスクを入れ替える心配もなく、ソフトウェアを購入する必要もない。

(SQL担当)そのメリットはCloud SQLも同じことだ。Cloud SQLは、フォームにアプリケーションのIDと名前を入力、課金の情報を入力し、インスタンスの名前を入れてサイズを決めると、数秒で立ち上がってくる。

そしたらSQLプロンプトが使えるので、Create Databaseを入力、Create Tableを入力すればテーブルが作れる。

(NoSQL担当)Datastoreなら、そんなスライドを使って紹介する必要がないほど簡単さ。アプリケーションのコードを書いたら、Datastoreはすでにそのデータ受け取る準備は出来ている。データベースの準備も設定も不要だ。データをプットしていけばいい。

こっちの勝ちだね。

fig

(SQL担当)次だ次! 次はスキーマについて。

スキーマ機能の比較

(SQL担当)Cloud SQLではスキーマが厳格に適用される。これはメリットと考えられることができ、存在しないカラムにデータを追加するような間違った処理を避けられる。

テーブルのスキーマを変更するのにはAlter Table文を使う。また、オンラインでのスキーマ変更も可能だ。

fig

(NoSQL担当)Datastoreでは、コードを書き換えれば自動的に新たなフィールドが追加される。さかのぼってデフォルト値設定される。実に簡単だ。

fig

(NoSQL担当)さあ、これでタイになったね。

fig

SQLとNoSQLの協力

両者が協力するシナリオもあるだろう。例えば、Cloud SQLをシングルマシンで実行してインメモリでアクティブなデータを入れる。そして古くなったデータはDatastoreにアーカイブしていく。

fig

Cloud SQLは少数だがアクティブなデータをメモリにデータを保存するのに適していて、容量が増えていくアーカイブデータはDatastoreに入れるのに適しているといえる。

以下が公開されているこのセッションの動画。

あわせて読みたい

NoSQL RDB データベース Google




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本