GCP 入門 (14) - Firestore
「GCP」(Google Cloud Platform)の「Firestore」の使い方をまとめました。
前回
1. Firestore
「Firestore」は、フルマネージドでスケーラブルなサーバーレスのNoSQLドキュメント指向データベースです。「Datastore」の後継でもあります。
料金は、次のとおりです。
2. 従来のデータベースとの比較
「Firestore」のインターフェースは従来のデータベースと同じ機能を多数備えていますが、NoSQL データベースであるため、データオブジェクト間の関係を表現する方法が異なります。
リレーショナル DBとの違いは、次のとおりです。
・Firestoreは大規模なデータセットに対して自動的にスケールできる。
・Firestoreが実行できるクエリタイプは、SQLを使用するリレーショナルDBよりも制限が厳しい。
・Firestoreはスキーマレス。異なるフィールドセット、型違いの同名フィールドを持つことが可能。
3. プロジェクトの作成
(1) GCPの「Cloud Console」を開く。
(2) 画面上端の「プロジェクト名」から新規プロジェクトを作成。
4. ネイティブモードのFirestoreデータベースの作成
(1) 画面上端の「検索ボックス」で「Firestore」を検索。
(2) 「ネイティブモードを選択」をクリック。
(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 → データ」でも追加できたことを確認できます。
【注意】 課金防止のためプロジェクトを削除したい場合は、「Cloud Console」のメニュー「IAMと管理 → リソースの管理」で行います。
次回
この記事が気に入ったらサポートをしてみませんか?