やあ。Cloud Spannerの世界へようこそ。
世界中の巨大なデータを一瞬でさばく、この「夢のようなデータベース」を触ろうとしている君の好奇心を、私は心から歓迎するよ。
Cloud Spannerは、ただのデータベースじゃない。Googleが地球規模で培ってきた「正確さ」と「速さ」を両立させるための、究極の兵器なんだ。でも、難しく考える必要はない。今日はその入り口である「GoogleSQL」について、肩の力を抜いて話そう。
—
1. データベースは「巨大な図書館」だと思えばいい
まず、Spannerの中にデータを入れるとき、君は「本棚」にラベルを貼って整理する司書になったつもりでいてほしい。
GoogleSQLは、その図書館で「あの本を取ってきて」「この本を新しく追加して」と指示するための「共通言語」だ。まずは、その言葉のルール(文法)を整理しよう。
2. データ型:本棚に置く「箱」の形
データ型は、君が本棚に置く「箱の形」を決めることだ。Spannerには、箱の形が明確に決まっている。
- `INT64`: 整数専用の箱(例: 1, 100, -50)
- `FLOAT64`: 小数点まで入る箱(例: 3.14)
- `STRING`: 文字を入れる箱(例: “Hello Spanner!”)
- `BOOL`: 「はい」か「いいえ」だけを入れる箱(TRUE/FALSE)
- `TIMESTAMP`: 「いつ」という時間を記録する特別な箱
先輩からのアドバイス:
「迷ったらSTRING」という逃げ道は、データベースの世界では悪手だ。後で計算したり並び替えたりするなら、適切な箱を選ぶことが、高速な検索への第一歩になるよ。
3. 識別子:本棚や箱に付ける「名前」
テーブルや列の名前(識別子)を決めるルールは、実はシンプルだ。
- 英字、数字、アンダースコア(_)が使える。
- 先頭は必ず英字であること。
- 予約語(SELECTやFROMなど)は使えない。
もし名前にスペースを使いたいとか、どうしても予約語を使いたい場合は、バッククォート(` `)で囲めばいい。でも、なるべくなら使わないほうが、コードがずっと読みやすくなるよ。
4. クエリ構築の基本:GoogleSQLの歩き方
さて、実際にデータを取り出すクエリを見てみよう。
— “Users”という本棚から、名前と年齢を抜き出すクエリ
SELECT
name,
age
FROM
Users
WHERE
age >= 20; — 20歳以上の人だけを抽出する条件
- `SELECT`: どの列(箱)の中身を見るか。
- `FROM`: どの本棚(テーブル)から持ってくるか。
- `WHERE`: どんな条件で絞り込むか。
これだけ覚えれば、君はもうCloud Spannerの入り口に立っている。
5. 演算子:データの「料理の仕方」
データを使って計算したり、比較したりするときに使うのが「演算子」だ。
- 算術演算子: `+`, `-`, “, `/` (足し算や割り算)
- 比較演算子: `=`, `!=`, `>`, `<` (「同じか?」「より大きいか?」を判定)
- 論理演算子: `AND`, `OR`, `NOT` (「AかつB」「AまたはB」という複雑な条件を作る)
例として、「20歳以上で、かつ東京に住んでいる人」を探すならこうなる。
SELECT FROM Users
WHERE age >= 20 AND city = ‘Tokyo’;
— ANDでつなぐことで、両方の条件を満たすものだけが残る
—
ここをクリアすれば、基本はバッチリ!
どうだい? 意外とシンプルだろう?
Cloud Spannerの凄さは、これだけシンプルな記述で、「地球の裏側にあるデータと、目の前にあるデータを同時に矛盾なく扱える」という点にあるんだ。君が今書いたそのSQLは、実はとてつもなく巨大なスケールのシステムを動かすための、最初のコマンドなんだよ。
まずは難しく考えず、`SELECT` でデータを取って、`WHERE` で絞り込む。この基本を繰り返すだけで、君はSpannerという巨大な海を自由に泳げるようになる。
もし詰まったら、いつでも戻ってきてほしい。私は君がこの荒波を乗り越えて、素晴らしいエンジニアになるのを待っているよ。
さあ、次はどんなデータを検索してみる?
コメント