見出し画像

GCP 入門 (14) - Firestore

「GCP」(Google Cloud Platform)の「Firestore」の使い方をまとめました。

前回

1. Firestore

Firestore」は、フルマネージドでスケーラブルなサーバーレスのNoSQLドキュメント指向データベースです。「Datastore」の後継でもあります。

料金は、次のとおりです。

2. 従来のデータベースとの比較

「Firestore」のインターフェースは従来のデータベースと同じ機能を多数備えていますが、NoSQL データベースであるため、データオブジェクト間の関係を表現する方法が異なります。

画像3

リレーショナル DBとの違いは、次のとおりです。

・Firestoreは大規模なデータセットに対して自動的にスケールできる。
・Firestoreが実行できるクエリタイプは、SQLを使用するリレーショナルDBよりも制限が厳しい。
・Firestoreはスキーマレス。異なるフィールドセット、型違いの同名フィールドを持つことが可能。

3. プロジェクトの作成

(1) GCPの「Cloud Console」を開く。
(2) 画面上端の「プロジェクト名」から新規プロジェクトを作成。

4. ネイティブモードのFirestoreデータベースの作成

(1) 画面上端の「検索ボックス」で「Firestore」を検索。
(2) 「ネイティブモードを選択」をクリック。

画像1

(3) ロケーションを選択して「データベースを作成」をクリック。

5. サービスアカウントキーの作成

(1) 「Cloud Console」のメニュー「APIとサービス」を開く。
(2) 「認証情報 → 認証情報を作成 → ウィザードで選択」を選択。
(3) 「1. 必要な認証情報の種類を調べる」で、以下を設定し、「必要な認証情報」ボタンを押す。

・使用するAPI : Cloud Firestore API
・"App Engine または Compute Engine でこの API を使用する予定はありますか?" : いいえ

(4) 「2. 認証情報を取得する」で、以下を設定し、「次へ」ボタンを押す。

・サービスアカウント名 : test
・ロール : Project → オーナー ※ どのリソースにアクセスできるかに影響
・キーのタイプ : JSON

成功すると、 「サービスアカウントキー」(JSONファイル)がダウンロードされます。このファイルを読み込むことで、「Firestore」のAPIを利用できるようになります。

6. Pythonの開発環境の準備

(1)「Python3.6」の仮想環境を作成。
(2) 「クライアントライブラリ」のインストール。

$ pip install --upgrade google-cloud-firestore

(3) サービスアカウントキーの登録。

$ export GOOGLE_APPLICATION_CREDENTIALS="[サービスアカウントキーのパス]"

7. Firestoreのデータの追加と取得

Firestoreのデータの追加と取得を行うコードは、次のとおりです。

from google.cloud import firestore

# Firestoreの初期化
db = firestore.Client()

# データの追加
doc_ref = db.collection(u'users').document(u'alovelace')
doc_ref.set({
    u'first': u'Ada',
    u'last': u'Lovelace',
    u'born': 1815
})

# データの取得
users_ref = db.collection(u'users')
docs = users_ref.stream()
for doc in docs:
    print(f'{doc.id} => {doc.to_dict()}')
alovelace => {'first': 'Ada', 'last': 'Lovelace', 'born': 1815}

「Cloud Console」のメニュー「Firestore → データ」でも追加できたことを確認できます。

画像2

【注意】 課金防止のためプロジェクトを削除したい場合は、「Cloud Console」のメニュー「IAMと管理 → リソースの管理」で行います。

次回


この記事が気に入ったらサポートをしてみませんか?