Cloud Spanner: 初めてのデータベース

Cloud Spanner:
最初のデータベース

この Codelab について

subject最終更新: 5月 21, 2025
account_circle作成者: Jaana Dogan

1. 概要

最終更新日: 2020 年 7 月 23 日

Cloud Spanner とは

Google Cloud Spanner は、レプリカ、シャーディング、トランザクション処理を自動的に処理する、グローバルに分散された ACID 準拠のデータベースです。使用パターンに合わせてすばやくスケールし、プロダクトを成功に導くことができます。

主な機能

  • スケーリングの実現に向けて設計されたリレーショナル データベース: スキーマ、SQL クエリ、ACID トランザクションなど、リレーショナル データベースに求められる機能はすべて実証済みであり、グローバルなスケーリングが可能です。
  • 99.999% の可用性: Cloud Spanner はマルチリージョン インスタンスで業界トップクラスの 99.999% の可用性を実現します。これはダウンタイムに換算すると、99.99% の場合の 10 分の 1 となります。リージョンとマルチリージョンの構成両方で透過的な同期レプリケーションを行えます。
  • 自動シャーディング: Cloud Spanner は、リクエストの負荷とデータサイズに基づいてデータを自動的にシャーディングしてパフォーマンスを最適化します。その結果、データベースのスケーリング方法について悩む時間が減り、代わりにビジネスの拡大に注力できます。

すべての機能を表示

学習内容

  • Google Cloud コンソールを使用して Cloud Spanner インスタンスを作成する。
  • Cloud Spanner インスタンスに新しいデータベースを作成する。
  • sampledb を使用してサンプルデータを読み込み、クエリを実行します。
  • Cloud Spanner インスタンスの削除。

2. 設定と要件

セルフペース型の環境設定

Google アカウント(Gmail または Google Apps)をお持ちでない場合は、1 つ作成する必要があります。Google Cloud Platform コンソール(console.cloud.google.com)にログインし、新しいプロジェクトを作成します。

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

プロジェクト ID を忘れないようにしてください。プロジェクト ID はすべての Google Cloud プロジェクトを通じて一意の名前にする必要があります(上記の名前はすでに使用されているので使用できません)。以降、この Codelab では PROJECT_ID と呼びます。

次に、Google Cloud リソースを使用するために、Cloud コンソールで課金を有効にする必要があります。

この Codelab の操作をすべて行って、費用が生じたとしても、少額です。

Google Cloud の新規ユーザーは、300 ドル分の無料トライアルの特典があります。

3. Cloud コンソールで Spanner を開く

Google Cloud コンソールで、画面左上のメニュー アイコンをクリックして左側のナビゲーションを表示します。

下にスクロールして [Spanner] を選択します。

46fe7785700d335.png

Cloud Spanner UI が表示されます。Cloud Spanner API がまだ有効になっていない場合は、有効にするよう求めるダイアログが表示されます。すでに API を有効にしている場合は、この手順をスキップできます。

[有効にする] をクリックして続行します。

323474ade0d07c48.png

4. インスタンスの作成

まず、Cloud Spanner インスタンスを作成します。UI で [インスタンスを作成] をクリックして、新しいインスタンスを作成します。

1126607e9b3a95f7.png

[インスタンスを作成] をクリックすると、インスタンスを作成するページに移動します。インスタンス名を入力し、構成を選択します。

リージョンまたはマルチリージョンの設定を選択できます。リージョン構成では、すべてのレプリカが同じリージョンに配置されます。マルチリージョン構成では、複数のリージョンにリードレプリカが作成されます。[リージョン構成の比較] をクリックして構成を比較できます。

f5f41323226be8b7.png

構成を選択すると、右側のパネルに概要が表示されます。

be5e99711a47047f.png

今後、ノードの数を増やしてインスタンスにリソースを追加したり、インスタンスに追加のリソースが不要な場合は減らしたりできます。

[作成] をクリックしてインスタンスを作成します。

97cf7427660e36bd.png

これで、Cloud Spanner インスタンスの使用準備が整いました。

13ac2d48ea60370b.png

5. データベースを作成する

新しいデータベースを作成するには、[データベースを作成] をクリックします。

71761f0803038a5.png

新しいデータベースの名前を入力します。必要に応じて、この時点でスキーマを指定することもできます。

d7ca47df879931c2.png

この手順ではスキーマの指定をスキップし、[作成] をクリックして空のデータベースを作成します。

e398ab29aad3d601.png

[作成] をクリックすると、新しいデータベースが作成されます。

4164af0df20ca180.png

6. サンプルデータの読み込みとクエリ

この Codelab では、sampledb を使用してサンプルデータを読み込んでクエリを実行します。Sampledb にはさまざまなデータセットが含まれており、既存のデータベースにデータをインポートできます。

プログラムは Google Cloud Shell で実行します。このプロジェクトで Google Cloud Shell を初めて使用する場合は、上部のナビゲーション バーに Google Cloud Shell のロゴが表示されます。Cloud Shell を押してアクティブにします。

e23b881395174c00.png

有効にすると、下部にコンソールが表示されます。

b885c452da656556.png

コンソールで sampledb リポジトリのクローンを作成し、手順に沿って依存関係をインストールします。

$ git clone https://github.com/cloudspannerecosystem/sampledb.git

リポジトリのクローンを正常に作成したら、新しいディレクトリに移動し、仮想環境を作成して必要な要件をインストールします。

$ cd sampledb
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt

依存関係がインストールされたら、sampledb を実行してサンプルデータを含む新しいデータベースを作成できます。

$ python batch_import.py my-first-instance my-sample-db

成功すると、2 つの新しいテーブル(comments と stories)を含む「my-sample-db」が表示されます。

eb4adca281f8704a.png

サンプル データセットには、Hacker News の投稿とコメントが含まれています。[クエリ] をクリックして、データのクエリとブラウジングを開始できます。

8b95a3b14709b285.png

7. クリーンアップ

この手順は省略可能です。Cloud Spanner インスタンスのテストを続ける場合は、現時点ではクリーンアップする必要はありません。ただし、使用しているプロジェクトには引き続きインスタンスの料金が請求されます。このインスタンスが不要になった場合は、この時点で削除して、料金が発生しないようにしてください。

左上の [my-first-instance] をクリックして、インスタンス ページに戻ります。

2a226b985f43074f.png

[削除] ボタンをクリックしてインスタンスを削除します。

27ee8f9656364f98.png

インスタンスを削除すると、元に戻すことはできません。そのインスタンスのデータは復元できません。誤って間違ったインスタンスを削除しないように、確認ダイアログにインスタンス名を入力して削除を確定する必要があります。

537e18cf2dd7a668.png

インスタンス名を入力し、[削除] を押します。

8. お疲れさまでした

新しい Cloud Spanner インスタンスを作成し、空のデータベースを作成して、サンプルデータを読み込み、必要に応じて Cloud Spanner インスタンスを削除しました。

学習した内容

  • Google Cloud コンソールから Cloud Spanner インスタンスを作成する。
  • Cloud Spanner インスタンスに新しいデータベースを作成する。
  • sampledb を使用してサンプルデータを読み込み、クエリを実行します。
  • Cloud Spanner インスタンスの削除。

詳細