Google Cloud Datastore とは?NoSQLデータベースはここが凄い!

 2019.10.21  ラクまるブログ編集部

最近、Google が提供するNoSQLデータサービスの「 (Google)Cloud Datastore (クラウド・データストア)」に注目が集まっています。リリースされたのは2013年5月であり、そこから6年、ビッグデータの活用やデータ分析の領域でなどで、着実にクラウドコンピューティングの中心として利用が拡大しています。

本稿では、このCloud Datastore についてその概要と特長をご紹介します。

Cloud Datastoreとは?

Cloud Datastore は拡張性に非常に優れた、アプリケーション向けのNoSQLデータベースです。アプリケーションの負荷に合わせて自動的にリソースを拡張するため、可用性と耐久性にも優れ、「安定して稼働し続けるアプリケーション」を実現するためのデータベースを提供します。

NoSQLってなに?

まずは、データベースのカテゴリの一つである「NoSQL」について、定義や特性についてご紹介します。

そもそもデータベースを大きく分類すると、RDBMS(Relational Database Management System)とNoSQLの2つに分けることができます。RDBMSでは「SQL」と呼ばれるコンピューター言語を使用して、データの出し入れを行います。それに対してNoSQLは、「Not only SQL」の略であり、文字通りSQL言語を使用せずにデータの出し入れや整理ができるデータベースを意味します。

RDBMSと聞くと難しそうに感じますが、「リレーショナル」つまり関係性のあるデータを取り扱うため、表形式でデータを格納するデータベースシステムです。たとえば書籍には著者・初回出版日・版・カテゴリなどそれぞれ意味をもつ関連した情報で構成されます。RDBMSは、書籍別に付随した情報(関連性のあるデータ)を表形式で管理しています。

一方、NoSQLでは情報をExcelのように表形式で管理するのではなく、1つのキーに対して1つのデータだけを紐づけます。RDBMSが「1キー:複数の付随データ」という関係性で情報を管理しているのに対して、NoSQLは「1キー:1つの付随データ」という関係性で情報を管理していることになります。

NoSQLとRDBMSの違いをもう少し詳しく

NoSQLとRDBMSの違いについてもう少し踏み込んで解説してみましょう。

まず、RDBMSは複雑なデータ構造を持つデータを取り扱う事に向いています。しかし、その複雑さによりデータの肥大化が起きやすく、データベースの性能劣化を招きやすくなってしまいます。また、複雑化するほど高度なSQL構文を必要とし、まずはデータベース言語であるSQLを習得する必要もあります。

一方、NoSQLではSQLを使用しないので、一般的なプログラミング知識があれば操作できるものがほとんどです。たとえばあるNoSQLの場合はPHP(主にWebサイトで使用するプログラミング言語)だけで完結しますが、RDBMSではPHP+SQLを使用する必要があるので手間がかかります。これによりコード数で比較すると、NoSQLはRDBMSの1/2から1/3程度のコード数でデータベースを構築することができます。

プログラム自体の量は「RDBMSの方が少し多い」くらいなのですが、事前準備としてデータの入れ物を容易する必要があるのと、データをテーブルに入れる際にテーブルの仕様(スキーマ)を決めておく必要があります。そのため、RDBMSはNoSQLの2~3倍程度のコード数が必要になってしまいます。

ただし、RDBMSがNoSQLに劣っているというわけではありません。NoSQLは単純なデータを大量に管理するのに向いており、RDBMSで管理するような複雑なデータ管理には向きません。

つまり、NoSQLは昨今注目されているビッグデータの活用やデータ分析のためのデータベースと言った、1つ1つが単体で存在している大量データの管理に向いています。よく利用されているものとしては、システムのログデータ、アクセス解析から得られるデータ(アクセスログ)、監視や異常検知などに用いられる画像や動画データ、バイナリデータ(大量のシンプルなデータ)など、常にデータが生成され蓄積されていくタイプの情報などに用いられます。

改めて、 Cloud Datastore ってどんなサービス?

話を本題に戻します。前述のように、 Cloud Datastore はGoogle が提供するNoSQLデータベースであり、クラウドコンピューティングとして提供されているので、ユーザーは Cloud Datastore をブラウザベースで利用できます。データベースを構築するのにハードウェアを容易する必要はありませんし、ネットワークを整備する必要もありません。インターネット回線に繋がってさえいればいつでも利用することができます。

Cloud Datastore の特長は以下の通りです。

<Cloud Datastoreの特徴>

データをシンプルに統合できる

Cloud Datastore の RESTful インターフェースを使用することで、どのデプロイ先からでもデータに簡単にアクセスできます。App Engine と Compute Engine に拡張されたソリューションを構築し、統合ポイントを Cloud Datastore に置くことができます。

非常に優れたスケーラビリティ(拡張性)

プロビジョニングや負荷の予測を心配することなく、アプリケーションの構築に集中できます。Cloud Datastore はデータに応じてシームレスかつ自動的にスケールするため、アプリケーションのトラフィックが増えても高いパフォーマンスが維持されます。

使いやすいクエリ言語

Cloud Datastore はスキーマレスなデータベースです。そのため、アプリケーションの発展に伴う基本データ構造の変更を考慮する必要はほぼありません。Datastore は、複数のプロパティを横断してデータを検索し、必要に応じて並べ替えることができる高度なクエリエンジンを提供します。

高機能な管理ダッシュボード

エンティティ統計の表示、データベースのクエリ、インデックスの表示、データのバックアップと復元を行うことができます。

複数のアクセス方法

データへのアクセスには、Google の JSON API、オープンソース クライアント、コミュニティで維持されている ORM(Objectify、NDB)を使用できます。

Cloud Datastoreの料金

最後に、Cloud Datastoreの料金をご紹介します。
※米国(マルチリージョン)の料金を掲載しております。

 

無料利用枠/1日あたり

無料利用枠を超えた

場合の料金(単価)

課金の単位

データの保存

1GBストレージ

$0.18

GB/月

エンティティの読み込み

50,000

$0.06

/10万エンティティ

エンティティの書き込み

20,000

$0.18

/10万エンティティ

エンティティの削除

20,000

$0.02

/10万エンティティ

小規模オペレーション

50,000

無料

-

Cloud Datastoreを利用すれば、大規模なNoSQLデータベースを瞬時に構築し、安定的に稼働するアプリケーションを実現します。無料利用枠もありますので、まずはお試しで利用してみてはいかがでしょうか?

また、電算システムでは、データを収集、統合、可視化する様々なプラットフォームサービスを提供しています。最適なデータプラットホームの構築に欠かせない、関連システムのインテグレーションからデータエンジニアによる環境構築、データサイエンティストによるデータ分析サポートなど、データに基づく企業の意思決定をご支援します。ぜひお気軽にご相談ください。

GCP総合ブローシャー

RELATED POST関連記事


RECENT POST「Google Cloud Platform」の最新記事


Google Cloud Datastore とは?NoSQLデータベースはここが凄い!
よくわかるGSuite無料セミナー