コンテンツに移動
デベロッパー

JetBrains IDE を使用した Cloud Spanner への接続

2021年11月1日
https://storage.googleapis.com/gweb-cloudblog-publish/images/spanner-jetbrains.max-2600x2600.png
Google Cloud Japan Team

※この投稿は米国時間 2021 年 10 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。

JetBrains のデベロッパー ツール スイートに含まれる IDE を使用して、Google Cloud Spanner を基盤とするアプリケーションを開発している開発者のために、うれしいお知らせがあります。JetBrains IDE から、直接 Cloud Spanner のデータベース スキーマを参照し、保存されているデータをクエリできるようになりました。この記事では、IntelliJ IDEA を使用して Cloud Spanner のインスタンスに接続する方法を説明します。

前提条件

IntelliJ から Cloud Spanner に接続するには、次が必要になります。

Cloud Spanner データソースの追加

Cloud Spanner をデータソースとして追加するには、IntelliJ のプロジェクト内で [View] -> [Tool Windows] -> [Database] に移動して、[Database] ツール ウィンドウを開きます。IntelliJ のサイドバーが開き、プロジェクトの現在のデータベース接続の一覧が表示されます。まだ何も接続を追加していない場合、サイドバーは空です。[+] アイコンをクリックして、追加できるデータソースの一覧を表示します。Cloud Spanner のデータソースは、一覧の [Other] セクションにあります。このデータソースは、ベーシック サポートで公開されているからです。

IntelliJ のドキュメントによると、ベーシック サポートでは、「コードが強調表示され、JDBC ドライバによって取得されたオブジェクトが表示されます。IntelliJ IDEA は、データベースのイントロスペクションに JDBC メタデータを使用し、コードの強調表示に SQL 2016 言語を使用します。エラーは検出も強調表示もされません。イントロスペクションは JDBC メタデータによって行われるため、一部の特定のデータベース オブジェクトはデータベース ツリービューに表示されません。コード補完には、イントロスペクションで取得されなかったオブジェクトは含まれません。」

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/IntelliJ_AddSpannerDataSource.gif

これ以降で指定する接続情報は、Cloud Spanner インスタンスとエミュレータのどちらに接続するかによって異なります。

Cloud Spanner インスタンスへの接続

Cloud Spanner インスタンスに接続するには、次の情報が必要になります。

  • Cloud Spanner インスタンスが属する projectID

  • インスタンス名

  • データベース名

ローカル環境から Cloud Spanner インスタンスに接続できるようにするためには、gcloud ツールを設定して、Spanner に接続し、Spanner API を有効にする必要があります。

読み込んでいます...

認証が完了したら、IntelliJ で接続情報を入力できます。下の画像は、intellij プロジェクトに接続する例です。このプロジェクトには intellij という Cloud Spanner インスタンスが含まれています。そしてこのインスタンスには demo という名前のデータベースがあります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/CloudSpanner_ConnectionString.max-900x900.png

Cloud Spanner エミュレータへの接続

エミュレータを使用すると、Cloud Spanner を使用するアプリケーションをより簡単に開発できます。エミュレータはローカルで実行され、デフォルトでは localhost:9010 で接続を待ちます。エミュレータに接続する前に、projectID、インスタンス名、データベース名を使用して構成する必要があります。gcloud コマンドライン ツールを使用して設定します。

読み込んでいます...

ここで IntelliJ IDE に戻り、すでに説明したとおりに Google Cloud Spanner データソースを追加します。エミュレータには認証はないので、[No Auth] を選択します。上述の Cloud Spanner 接続と同じように、JDBC 接続文字列にも上記で構成した projectID、instance 名、database 名を指定します。

さらに、接続文字列に REST API ポートを指定する必要があります。エミュレータのデフォルトは localhost:9010 です。また、次の画像では接続文字列の最後に次のメタデータを追加しています。?autoConfigEmulator=true

https://storage.googleapis.com/gweb-cloudblog-publish/images/image4_mxF9KXZ.max-1000x1000.png

IntelliJ での接続の使用

Cloud Spanner インスタンスとエミュレータのどちらへの接続を作成したかにかかわらず、データベース モデルを参照し、Cloud Spanner のバックエンドに対してクエリを実行できるようになりました。たとえば、CREATE TABLE コマンドを実行して、テーブルにデータを INSERT できます。テーブルを作成したら、データを直接操作したり、データに対して SQL クエリを実行できます。
https://storage.googleapis.com/gweb-cloudblog-publish/original_images/IntelliJ_RunSpannerQueries.gif

次のステップ

この Cloud Spanner ドライバは開発とテストで使用することを目的としており、本番環境のデータベースの管理は対象としていません。とはいえ、IDE から Cloud Spanner データベースを操作することで、複数のツールやインタフェースを使用する必要性が軽減されるため、開発プロセスがさらに容易になります。

ぜひお試しください。JetBrains デベロッパー ツールから、Cloud Spanner データベースに接続してみましょう。

質問やコメントがある場合は、Twitter までご連絡ください。皆様からのフィードバックをお待ちしております。

Copyright © 2000-2021 JetBrains s.r.o. JetBrains と JetBrains ロゴは、JetBrains s.r.o. の登録商標です。

- Developer Relations エンジニア Derek Downey

- スタッフ インタラクション デザイナー Doug Hungarter

投稿先