コンソールを使用したクイックスタート
このクイックスタートでは、Google Cloud Console を使用して Cloud Spanner の基本オペレーションを行う方法について説明します。このクイックスタートでは、以下の操作を行います。
- Spanner のインスタンス、データベース、テーブルを作成する。
- スキーマを追加する。
- データを書き込んで変更する。
- クエリを実行する。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
プロジェクトに対して Cloud Spanner API を有効化します。
インスタンスを作成する
Spanner を初めて使用するときは、インスタンスを作成する必要があります。これにより、そのインスタンスの Spanner データベースによって使用されるリソースが割り当てられます。
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
インスタンス名に「
Test Instance
」と入力します。[インスタンス ID] に「
test-instance
」と入力します。リージョン構成を使用します。
プルダウン メニューから任意のリージョン構成を選択します。
インスタンスの構成により、インスタンスが保存および複製される地理的なロケーションが決まります。
1000 プロセッシング ユニットのデフォルトの計算能力を使用します。
[Create(作成)] をクリックします。
インスタンス リストにこのインスタンスが表示されます。
データベースの作成
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
Test Instance インスタンスをクリックします。
[データベースを作成] をクリックします。
データベース名として、「
example-db
」と入力します。データベース言語を選択します。
PostgreSQL のサポートや、言語の選択に関するガイダンスについては、PostgreSQL Interface をご覧ください。
GoogleSQL を選択した場合、ここでは [Define your schema] テキスト フィールドを空白のままにします。スキーマは、このクイックスタートの次のセクションで定義します。
[Create(作成)] をクリックします。
Cloud Console に、作成したデータベースの [概要] ページが表示されます。
データベースのスキーマの作成
example-db
の [概要] ページで、テーブルのリストの先頭にある [テーブルを作成] をクリックします。Google Cloud コンソールに [DDL ステートメントの記述] ページが表示されます。
-
GoogleSQL
CREATE TABLE Singers ( SingerId INT64 NOT NULL, FirstName STRING(1024), LastName STRING(1024), SingerInfo BYTES(MAX), BirthDate DATE ) PRIMARY KEY(SingerId);
PostgreSQL
CREATE TABLE Singers ( SingerId BIGINT PRIMARY KEY, FirstName VARCHAR(1024), LastName VARCHAR(1024), SingerInfo BYTEA, BirthDate TIMESTAMPTZ );
[送信] をクリックします。
Google Cloud コンソールがデータベースの
example-db
[概要] ページに戻り、[スキーマの更新] が進行中であることが表示されます更新が完了すると、次のようなページが表示されます。GoogleSQL
PostgreSQL
なお、PostgreSQL では、テーブル名がすべて小文字に変換されます。
データの挿入と変更
Google Cloud Console には、データを挿入、編集、削除するためのインターフェースがあります。
データを挿入する
example-db
[概要] ページで、テーブルのリストにあるSingers
テーブルをクリックします。Google Cloud コンソールで、テーブルの
Singers
[スキーマ] ページが表示されますナビゲーション・メニューで、[データ] をクリックして、
Singers
テーブルの [データ] ページを表示します。[挿入] をクリックします。
Google Cloud コンソールは、
Singers
テーブルに行を挿入してその挿入結果を表示するために編集するテンプレート ステートメントとINSERT
およびSELECT
ステートメントを含む新しいクエリタブがあるSingers
テーブルの [クエリ] ページを表示します。GoogleSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO Singers (SingerId, BirthDate, FirstName, LastName, SingerInfo) VALUES (<SingerId>, -- type: INT64 <BirthDate>, -- type: DATE <FirstName>, -- type: STRING(1024) <LastName>, -- type: STRING(1024) <SingerInfo> -- type: BYTES(MAX) ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM Singers WHERE SingerId=<SingerId>;
PostgreSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO singers (singerid, birthdate, firstname, lastname, singerinfo) VALUES (<singerid>, -- type: bigint <birthdate>, -- type: timestamp with time zone <firstname>, -- type: character varying <lastname>, -- type: character varying <singerinfo> -- type: bytea ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM singers WHERE singerid=<singerid>;
なお、PostgreSQL では、列名がすべて小文字に変換されます。
INSERT
ステートメントのVALUES
句とSELECT
ステートメントのWHERE
句を編集します。GoogleSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO Singers (SingerId, BirthDate, FirstName, LastName, SingerInfo) VALUES (1, -- type: INT64 NULL, -- type: DATE 'Marc', -- type: STRING(1024) 'Richards', -- type: STRING(1024) NULL -- type: BYTES(MAX) ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM Singers WHERE SingerId=1;
PostgreSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO singers (singerid, birthdate, firstname, lastname, singerinfo) VALUES (1, -- type: bigint NULL, -- type: timestamp with time zone 'Marc', -- type: character varying 'Richards', -- type: character varying NULL -- type: bytea ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM singers WHERE singerid=1;
[実行] をクリックします。
Spanner により、ステートメントが実行されます。 完了すると、[結果] タブでは、最初のステートメントで 1 行が挿入されたことと、テーブルのデータを表示するリンクが示されます。
[結果] タブで、[テーブル] リンクをクリックします。
Singers
テーブルに行が 1 つ追加されました。GoogleSQL
PostgreSQL
[挿入] をクリックして行を 1 つ追加します。
Google Cloud コンソールに
Singers
テーブルの [クエリ] ページが表示され、同じテンプレートINSERT
ステートメントとSELECT
ステートメントを含む新しいクエリタブが表示されます。INSERT
ステートメントのVALUES
句とSELECT
ステートメントのWHERE
句を編集します。GoogleSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO Singers (SingerId, BirthDate, FirstName, LastName, SingerInfo) VALUES (2, -- type: INT64 NULL, -- type: DATE 'Catalina', -- type: STRING(1024) 'Smith', -- type: STRING(1024) NULL -- type: BYTES(MAX) ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM Singers WHERE SingerId=2;
PostgreSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO singers (singerid, birthdate, firstname, lastname, singerinfo) VALUES (2, -- type: bigint NULL, -- type: timestamp with time zone 'Catalina', -- type: character varying 'Smith', -- type: character varying NULL -- type: bytea ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM singers WHERE singerid=2;
[実行] をクリックします。
Spanner によりステートメントが実行されると、[結果] タブには、最初のステートメントによって 1 行挿入されたことが示されます。
テーブルのリンクをクリックします。
Singers
テーブルの行が 2 つになりました。GoogleSQL
PostgreSQL
また、データを入力するときに、空の文字列値を挿入することもできます。
[挿入] をクリックして行を追加します。
Google Cloud コンソールに
Singers
テーブルの [クエリ] ページが表示され、同じテンプレートINSERT
ステートメントとSELECT
ステートメントを含む新しいクエリタブが表示されます。テンプレートの
INSERT
ステートメントのVALUES
句と、SELECT
ステートメントのWHERE
句を編集します。GoogleSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO Singers (SingerId, BirthDate, FirstName, LastName, SingerInfo) VALUES (3, -- type: INT64 NULL, -- type: DATE 'Kena', -- type: STRING(1024) '', -- type: STRING(1024) NULL -- type: BYTES(MAX) ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM Singers WHERE SingerId=3;
PostgreSQL
-- Add new values in the VALUES clause in order of the column list. -- Each value must be type compatible with its associated column. INSERT INTO singers (singerid, birthdate, firstname, lastname, singerinfo) VALUES (3, -- type: bigint NULL, -- type: timestamp with time zone 'Kena', -- type: character varying '', -- type: character varying NULL -- type: bytea ); -- Change values in the WHERE condition to match the inserted row. SELECT * FROM singers WHERE singerid=3;
なお、姓の列に指定された値は、
NULL
値ではなく、空の文字列(''
)です。[実行] をクリックします。
Spanner によりステートメントが実行されると、[結果] タブには、最初のステートメントによって 1 行挿入されたことが示されます。
テーブルのリンクをクリックします。
Singers
テーブルの行が 3 つになり、主キーの値が3
の行では、姓の列が空の文字列になっています。GoogleSQL
PostgreSQL
データの編集
Singers
テーブルの [データ] ページで、主キーの値が3
の行の横にあるチェックボックスをオンにして、[編集] をクリックします。Google Cloud コンソールで [クエリ] ページが開き、編集したテンプレートの
UPDATE
ステートメントと、SELECT
ステートメントを含む新しいタブが表示されます。なお、両方のステートメントのWHERE
句は、更新する行が3
の主キー値を持つ行であることを示しています。GoogleSQL
-- Change values in the SET clause to update the row where the WHERE condition is true. UPDATE Singers SET BirthDate='', FirstName='Kena', LastName='', SingerInfo='' WHERE SingerId=3; SELECT * FROM Singers WHERE SingerId=3;
PostgreSQL
-- Change values in the SET clause to update the row where the WHERE condition is true. UPDATE singers SET birthdate='', firstname='Kena', lastname='', singerinfo='' WHERE singerid='3'; SELECT * FROM singers WHERE singerid='3';
UPDATE
ステートメントのSET
句を編集して、生年月日のみを更新します。GoogleSQL
-- Change values in the SET clause to update the row where the WHERE condition is true. UPDATE Singers SET BirthDate='1961-04-01' WHERE SingerId=3; SELECT * FROM Singers WHERE SingerId=3;
PostgreSQL
-- Change values in the SET clause to update the row where the WHERE condition is true. UPDATE singers SET birthdate='1961-04-01 00:00:00 -8:00' WHERE singerid='3'; SELECT * FROM singers WHERE singerid='3';
[実行] をクリックします。
Spanner により、ステートメントが実行されます。 完了すると、[結果] タブでは、最初のステートメントで 1 行が更新されたことと、テーブルのデータを表示するリンクが示されます。
[結果] タブで、[テーブル] リンクをクリックします。
更新された行には、生年月日の値が入っています。
GoogleSQL
PostgreSQL
データの削除
Singers
テーブルの [データ] ページで、最初の列が2
の行の横にあるチェックボックスをオンにして、[削除] をクリックします。表示されるダイアログで [確認] をクリックします。
Singers
テーブルの行が 2 つになりました。GoogleSQL
PostgreSQL
クエリの実行
example-db
[概要] ページのナビゲーション メニューで [クエリ] をクリックし、example-db
の [クエリ] ページを表示します。[新しいタブ] をクリックして、新しいクエリタブを作成します。次のクエリを入力します。
GoogleSQL
SELECT * FROM Singers;
PostgreSQL
SELECT * FROM singers;
[実行] をクリックします。
Spanner がクエリを実行します。完了すると、[結果] タブにクエリの結果が表示されます。
GoogleSQL
PostgreSQL
これで完了です。Spanner データベースを作成し、クエリエディタを使用して SQL ステートメントを実行することができました。
クリーンアップ
Cloud 請求先アカウントにこれ以上料金が発生しないようにするには、作成したデータベースとインスタンスを削除します。
データベースの削除
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
[Test Instance] をクリックします。
[
example-db
] をクリックします。[データベースの詳細] ページで [deleteデータベースの削除] をクリックします。
データベースを削除することを確認し、[削除] をクリックします。
インスタンスの削除
インスタンスを削除すると、そのインスタンス内に作成されたすべてのデータベースが自動的に削除されます。
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
[Test Instance] をクリックします。
[deleteインスタンスの削除] をクリックします。
インスタンスを削除することを確認し、[削除] をクリックします。