概要
始めに
Google Cloud Datastore(以下Cloud Datastore)初学者向けに提供されているクイックスタートを入門的に試してみる
クイックスタートではCoogle Cloud Platform Console上でデータを作成して、同じくConsole上で作成したデータをGQLを使って確認するまでの流れを追っている
Cloud DatastoreとRDBMSとの用語の比較
覚えておきたい用語をRDBMSと比較しながら確認する
RDBMS | Cloud Datastore |
---|---|
テーブル | 種類 または カインド(Kind) |
フィールド(1つのオブジェクトの中の各データ) | プロパティ(Property) |
レコード | エンティティ(Entity) |
プライマリキー | キー(Key) + 祖先キー |
これはただの参考の話であり、実際は少し違うことに注意
祖先キーについて
エンティティには祖先キーを指定することができる
祖先キーにはそのエンティティの親となる主キーを設定することになっているので、エンティティをツリー構造にすることができる
この時のツリーを「エンティティグループ」という
Cloud Datastoreをよくテーブルやキーの観点から捉えようとするが、キーは祖先を持つことができてそのためにキーパスが存在するので、どちらかというとファイルシステムとして考えるのが良いとのこと
参考:Google Cloud Datastoreでのデータ整理の考え方
エンティティグループに対する書き込み処理は1秒間に1回までしか実行できないことに要注意
そのぶんメリットもあるみたいだが今回の記事に記述すると長くなってしまうので↓で確認してほしい
参考:今更 Cloud DataStore 入門
データの持ち方の例
RDBでのモデリングだと
☆ Userテーブル
id | username | name |
---|---|---|
1 | yamayama | yamada taro |
2 | tanatana | tanaka hanako |
☆ Postテーブル
id | user_id | content |
---|---|---|
1 | 1 | Hello |
2 | 2 | Yahooooo |
に対してDatastoreのモデリングは
Key | Data |
---|---|
(Post, 1) | {“user”: Key(User, yamayama), “content”: “Hello”} |
(Post, 2) | {“user”: Key(User, tanatana), “content”: “Yahooooo”} |
(User, yamayama) | {“name”: “yamada taro”} |
(User, tanatana) | {“name”: “tanaka hanako”} |
というようになっている
エンティティが特定のカインドを持っている構造となっている、上記の例だとPostやUserがカインドとなる
無料枠について
データ容量 | 1GB |
エンティティの読み込み数 | 5万 |
エンティティの書き込み数 | 2万 |
エンティティの削除数 | 2万 |
小規模オペレーション | 5万 |
詳しくはこちら
クイックスタート
Cloud Datastoreにデータを保存する
リソースの管理ページに移動してGCPプロジェクトを選択または作成してからプロジェクトのページに遷移する
Google Cloud Platform(以下GCP) Console の「Datastore エンティティ」ページに移動する
データベース サービスの選択を迫られるので「Cloud Datastore」を選択
ここで決定すると後々は変更できないが、クイックスタートということからベータ版ではないCloud Datastoreを使うこととする
ロケーションは東京に一番近い「asia-northeast1」を選択する
ここも保存したロケーションを後で変更することはできない
「エンティティを作成」をクリックする
以下のように入力する
入力したプロパティについて
プロパティ名 | 型 | 値 | インデックス登録するか |
---|---|---|---|
description | 文字列 | Google Clound Datastoreの学習 | しない |
created | 日時 | (現在時刻) | する |
done | ブール値 | False | する |
これでCloud Datastoreにデータが保存できた
「種族別のクエリ」タブで、種類「Task」にすると作成したエンティティを確認できる(カインドとも呼べるが、画面上「種類」と表現されているので種類と呼んでいく)
Google Query Language(GQL)からクエリを実行してデータを取得する
「SELECT * FROM Task WHERE done=false」を実行すると作成したエンティティを取得できる
※ 大文字と小文字は区別されることに注意
作成したデータの削除
「種類別のクエリ」タブより削除が行える
種類の「Task」が残ったままだが、エンティティが1件もない状態になるとどこかのタイミングでGCP側が消してくれるらしい
コメントを書く
コメント一覧