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に入れるのに適しているといえる。

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

Tags: NoSQL RDB データベース Google

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly





タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

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

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

最新記事10本