Logo
GCPのSpannerのデータベースにローカルから接続する方法

GCPのSpannerのデータベースにローカルから接続する方法

spanner

2024-05-07

内容

GCPのSpannerのデータベースにローカルから接続する方法を解説します。

SpannerインスタンスにDBを作成する

以下の記事でSpannerインスタンスにデータベースを作成する方法を解説しています。(この記事では、すでにデータベースは作成済みの前提で進めます)

https://yssy.io/articles/gcp-spanner-db-create

gcloudコマンドでSpannerに接続する

書き込み

以下のコマンドを実行するとSpannerのデータベースに対して書き込みを実行できます。

$ gcloud spanner rows insert --instance=tfgen-spanid-20240506183705168 --database=spanner-database --table=t1 --data=t1=1 --project=project-name

commitTimestamp: '2024-05-06T19:42:07.003236Z'

読み取り

以下のコマンドでSpannerのデータベースに対して読み取りを実行できます。

$ gcloud spanner databases execute-sql spanner-database --instance=tfgen-spanid-20240506183705168 --sql='SELECT t1.t1 FROM t1' --project=project-name
t1
1

APIエラーが出た場合

$ gcloud spanner databases execute-sql spanner-database --instance=tfgen-spanid-20240506183705168 --sql='SELECT t1 FROM t1'
ERROR: (gcloud.spanner.databases.execute-sql) PERMISSION_DENIED: Cloud Spanner API has not been used in project project-name before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/spanner.googleapis.com/overview?project=project-name then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
- '@type': type.googleapis.com/google.rpc.Help
  links:
  - description: Google developers console API activation
    url: https://console.developers.google.com/apis/api/spanner.googleapis.com/overview?project=project-name
- '@type': type.googleapis.com/google.rpc.ErrorInfo
  domain: googleapis.com
  metadata:
    consumer: projects/project-name
    service: spanner.googleapis.com
  reason: SERVICE_DISABLED

というエラーが出た場合、ログに記載されているURLにアクセスしてGCPのAPIを有効化してください。

まとめ

Spannerのデータベースに対する書き込みと読み込みをローカルからgcloudコマンドで行う方法を解説しました。