Cloud Spannerがリリースされたので、まずは以下のクイックスタートに従って動かしてみる。
https://cloud.google.com/spanner/docs/quickstart-console
Spannerのインスタンスを生成
インスタンス名やリージョン、ノード数を指定してSpannerのインスタンスを生成する。
Databaseの作成
データベース名を入力し、データベースを作成する。
クエリの実行
画面の上部にある"Query"をクリック
クエリを入力し、"Run query"をクリック。※BigQueryのUIに似ていて使いやすい。
スキーマを作成
"Create TABLE"をクリックし、"Edit as text"モードにスイッチ
"DDL statement"フィールドに以下を入力し、"Create table"をクリック。※少し(数分)時間がかかる。
CREATE TABLE Singers (
SingerId INT64 NOT NULL,
FirstName STRING(1024),
LastName STRING(1024),
SingerInfo BYTES(MAX),
BirthDate DATE,
) PRIMARY KEY(SingerId);
CREATE INDEX SingersByFirstLastName ON Singers(FirstName, LastName);
CREATE TABLE Albums (
SingerId INT64 NOT NULL,
AlbumId INT64 NOT NULL,
AlbumTitle STRING(MAX),
MarketingBudget INT64,
) PRIMARY KEY(SingerId, AlbumId),
INTERLEAVE IN PARENT Singers ON DELETE CASCADE;
CREATE INDEX AlbumsByAlbumTitle ON Albums(AlbumTitle);
CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle) STORING (MarketingBudget);
CREATE TABLE Songs (
SingerId INT64 NOT NULL,
AlbumId INT64 NOT NULL,
TrackId INT64 NOT NULL,
SongName STRING(MAX),
Duration INT64,
SongGenre STRING(25),
) PRIMARY KEY(SingerId, AlbumId, TrackId),
INTERLEAVE IN PARENT Albums ON DELETE CASCADE;
CREATE INDEX SongsBySingerAlbumSongNameDesc ON Songs(SingerId, AlbumId, SongName DESC), INTERLEAVE IN Albums;
CREATE INDEX SongsBySongName ON Songs(SongName);
CREATE TABLE Concerts (
VenueId INT64 NOT NULL,
SingerId INT64 NOT NULL,
ConcertDate DATE NOT NULL,
BeginTime TIMESTAMP,
EndTime TIMESTAMP,
TicketPrices ARRAY<INT64>,
) PRIMARY KEY(VenueId, SingerId, ConcertDate);
作成されると以下のようになる。
クエリ実行プランの確認
まだデータは入ってないが、"Query"をクリックし、以下のようなクエリを入力。
SELECT * FROM Singers
"Run query"をクリックし、"Explanation"をクリックするとクエリ実行プランを確認できる。
とりあえずWebUIを使ってざっと動かせた。まだデータ投入やJavaなどから操作してないので、それは次回試す。