開発のためのIntelliJプラグインの使用

IntelliJのOracle NoSQL Database Cloud ServiceインスタンスまたはOracle NoSQL Database Cloud Simulatorで表を参照し、問合せを実行します。

Oracle NoSQL Database Cloud Service IntelliJプラグインは Oracle NoSQL Database Cloud Serviceまたは Oracle NoSQL Database Cloud Simulatorの実行中インスタンスに接続し、次のことができます:

この記事には次のトピックが含まれます:

IntelliJプラグインの設定

Oracle NoSQL Database Cloud ServiceインスタンスまたはOracle NoSQL Database Cloud Simulatorに対してIntelliJプラグインを設定する方法について学習します。

前提条件:

IntelliJ IDEAをインストールします。IntelliJ IDEAは、JetBrainsからダウンロードできます。

手順:

プラグインは、次のようにインストールできます。

  1. Oracle NoSQL DatabaseConnectorページのJetBrainsプラグイン・リポジトリを開きます。

  2. 「取得」を選択します。
  3. 「バージョン」メニューから、最新バージョンのOracle NoSQL Database Connectorの「ダウンロード」を選択します。
  4. ポップアップ・ウィンドウで、「Oracle NoSQL Databaseコネクタのインストール方法」の画面上の指示に従います。

IDE を再起動します。右側のパネルに「スキーマ・エクスプローラ」アイコンが表示されます。

IntelliJプラグインを正常に設定した後、NoSQLプロジェクトを作成し、それを Oracle NoSQL Database Cloud Serviceインスタンスまたは Oracle NoSQL Database Cloud Simulatorに接続します。

IntelliJでのNoSQLプロジェクトの作成

IntelliJでNoSQLプロジェクトを作成する方法について学習します。

次のステップを実行します:

  1. IntelliJ IDEAを開きます。「File」「New」「Project」をクリックします。
  2. 「Project Name」および「Project Location」の値を入力します。「作成」を選択します。
  3. ビルド・システムとJDKパスを選択します。
  4. IntelliJは、サンプルJavaファイルを含むNoSQLプロジェクト・ディレクトリを作成します。ビルド・システムとしてMavenを選択した場合、プロジェクト・ディレクトリにはpom.xmlファイルも含まれます。
  5. Oracle NoSQLプロジェクトで通知が有効になっていることを確認します。通知を有効にするには、[Alt]+[\]を押してメイン・メニューを開きます。「View」をクリックし、「Tool Windows」「Notifications」を展開します。右側のツール・ウィンドウ・バーに「通知」アイコン通知ベル・アイコンが表示されます。

IntelliJでNoSQLプロジェクトを正常に作成した後、プロジェクトをOracle NoSQL Database Cloud ServiceまたはOracle NoSQL Database Cloud Simulatorに接続できます。

IntelliJからOracle NoSQL Database Cloud Serviceへの接続

IntelliJプラグインを使用してNoSQLプロジェクトをOracle NoSQL Database Cloud Serviceに接続する方法について学習します

次のステップを実行します:

  1. IntelliJでNoSQLプロジェクトを開きます。

  2. 「Schema Explorer」ウィンドウでタスク・アイコンタスク・アイコンをクリックし、プラグインの「Settings」ダイアログを開きます。

  3. 「設定エクスプローラ」で「ツール」「Oracle NoSQL」を展開し、「接続」をクリックします。

  4. プロファイル・タイプのドロップダウン・メニューから「Cloud」を選択します。「Connections」ドロップダウンに、クラウド・プロファイル・タイプの既存のすべての接続を表示できます。

  5. 「接続の追加」をクリックします。接続を作成するための2つのオプションがあります。

    1. 構成ファイルの使用:ローカル・システムに格納されているOCI構成ファイルの場所を指す構成ファイル・パスを指定します。このファイルには、Oracle NoSQL Database Cloud Serviceへの接続に必要な必須パラメータ(リージョン、テナントID、ユーザーID、フィンガープリント、パスフレーズ、秘密キー・パスなど)が含まれています。

      次の接続パラメータに必要な値を入力し、「追加」を選択します。次に、「OK」を選択します。

      表- 接続パラメータ構成ファイル・オプション

      パラメータ 説明 サンプル値
      接続名 プラグイン・バージョン1.5.1では、特定の接続仕様に指定された一意の名前が必須です。バージョン1.4.0以下からプラグインをアップグレードした後に、「Connection Name」フィールドを更新することをお薦めします。

      ノート:複数の接続を追加でき、格納されている接続仕様は永続的です。
      ndcs_con1
      構成ファイル 構成ファイルがローカル・システムに格納されるディレクトリのパス。構成ファイルとその内容の詳細は、Oracle NoSQL Databaseに接続するための認証ユーザー・プリンシパルの方法を参照してください。 ~/.oci/config
      プロファイル プロファイルの名前。

      ノート:これらのエントリに対して様々な値の複数のプロファイルを作成し、ロードするプロファイルを指定できます。
      DEFAULT
      コンパートメント(オプション) NoSQLデータベース・スキーマのコンパートメントOCID/コンパートメント名。

      ノート:コンパートメント名を指定する場合は、各エントリをコロンで区切って階層全体を指定する必要があります。
      developers:dev1.

      ここで、dev1はコンパートメントdevelopers.の下のコンパートメントです



      ノート:値が指定されていない場合、デフォルトでルート・コンパートメントになります。

      プラグインは、構成ファイルで指定されたリージョンに接続します。

      セッション・トークン・ベース認証を使用する場合、構成ファイルには、セッション・トークンの指定されたプロファイルとトークン・パスが含まれます。Oracle NoSQL Database Cloud Serviceに接続するには、構成ファイル・オプションを選択し、適切なプロファイルを指定する必要があります。

    2. 拡張: Oracle NoSQL Database Cloud Serviceへの接続に必要な接続パラメータを直接指定します。次のパラメータに必要な値を入力し、「追加」を選択します。次に、「OK」を選択します。

    表- 接続パラメータ拡張オプション

    パラメータ 説明 サンプル値
    接続名 プラグイン・バージョン1.5.1では、特定の接続仕様に指定された一意の名前が必須です。バージョン1.4.0以下からプラグインをアップグレードした後に、「Connection Name」フィールドを更新することをお薦めします。

    ノート:複数の接続を追加でき、格納されている接続仕様は永続的です。
    ndcs_con1
    エンド・ポイント Oracle NoSQL Database Cloud Serviceに対するリージョナル・ネットワーク・アクセス・ポイント。 https://nosql.us-ashburn-1.oci.oraclecloud.com (北米領域にあるアッシュバーンのOracle NoSQL Database Cloud Serviceリージョン識別子の場合)。サービス・エンドポイントのリストは、データ・リージョンおよび関連するサービス・エンドポイントを参照してください。
    テナントIDおよびユーザーID Oracle NoSQL Database Cloud ServiceのテナンシのOCIDおよびユーザーのOCID。 Oracle Cloud InfrastructureドキュメントテナンシのOCIDとユーザーのOCIDを取得する場所を参照してください。
    フィンガープリントおよびパスフレーズ(オプション) API署名キーの生成およびアップロード中に作成された署名キーのフィンガープリントおよびパスフレーズ。 Oracle Cloud Infrastructureドキュメントの次のリソースを参照してください:

    - オプションのパスフレーズで署名キーを生成するには、API署名キーの生成方法を参照してください。
    - キーのフィンガープリントを取得するには、キーのフィンガープリントを取得する方法を参照してください。
    秘密キー ユーザーに対して生成された秘密キー。 アプリケーション・ユーザーに対して、API署名キーを生成し、アップロードする必要があります。オプションのパスフレーズを使用して署名キーを生成するには、API署名キーの生成方法を参照してください。
    コンパートメント(オプション) NoSQLデータベース・スキーマのコンパートメントOCID/コンパートメント名。

    ノート:コンパートメント名を指定する場合は、各エントリをコロンで区切って階層全体を指定する必要があります。
    developers:dev1.

    ここで、dev1はコンパートメントdevelopers.の下のコンパートメントです



    ノート:値を指定しないと、デフォルトでルート・コンパートメントになります。

    ノート:

    • バージョン1.5.4以降、IntelliJプラグインは最新のOracle NoSQL Java SDKを自動的にダウンロードし、接続の作成時にSDKパスを設定します。

    • バージョン1.4.0以前からプラグインを更新する場合、格納されているすべての接続は新しいバージョンに移行されます。この場合、接続名はエンドポイントと同じになります。接続名を変更するには、次のステップに従います。

  6. IntelliJプラグインは、指定された接続名に接続の詳細を保存します。接続の詳細を変更するには、「Connections」のドロップダウンで、接続名を選択します。「接続の変更」をクリックします。接続パラメータ(前述)のいずれかを変更し、「OK」をクリックして設定を保存できます。プラグインから接続名を削除するには、接続名を選択して「Delete Connection」をクリックします。削除するアクションを確認すると、接続名がプラグインから削除されます。

  7. スキーマ・エクスプローラでWebアイコンをクリックします。既存の接続のリストが、ドロップダウン・ボックスに表示されます。接続名がNoSQLツール・ウィンドウに次の形式で表示されます:

    表- 接続表示

    接続の作成に使用するオプション NoSQLツール・ウィンドウに表示
    Advanced Connection Name:Endpoint:Compartment Name/OCID (ルート以外の場合)
    Use Configuration File Connection Name:Configuration file path:Profile:Compartment Name/OCID (ルート以外の場合)

    接続を選択し、「OK」をクリックします。IntelliJプラグインにより、プロジェクトがOracle NoSQL Database Cloud Serviceに接続され、そのスキーマが「スキーマ・エクスプローラ」ウィンドウに表示されます。

プロジェクトをOracle NoSQL Database Cloud Serviceに正常に接続すると、スキーマ内の表およびデータを管理できます。

IntelliJからOracle NoSQL Database Cloud Simulatorへの接続

IntelliJプラグインを使用してNoSQLプロジェクトをOracle NoSQL Database Cloud Simulatorに接続する方法について学習します。

次のステップを実行します:

  1. Oracle NoSQL Database Cloud Simulatorをダウンロードして開始します。Oracle NoSQL Database Cloud Simulatorのダウンロードを参照してください。

  2. IntelliJでNoSQLプロジェクトを開きます。

  3. 「Schema Explorer」ウィンドウでタスク・アイコンタスク・アイコンをクリックし、プラグインの「Settings」ダイアログを開きます。

  4. 「Settings Explorer」で「Tools」「Oracle NoSQL」を展開し、「Connections」をクリックします。「Connections」ドロップダウンに、Cloudsimプロファイル・タイプの既存のすべての接続を表示できます。

  5. プロファイル・タイプのドロップダウン・メニューから「Cloudsim」を選択します。

  6. 「接続の追加」をクリックします。次の接続パラメータの値を入力し、「OK」をクリックします。

    表- 接続パラメータ

    パラメータ 説明 サンプル値
    接続名 プラグイン・バージョン1.5.1では、特定の接続仕様に指定された一意の名前が必須です。バージョン1.4.0以下からプラグインをアップグレードした後に、「Connection Name」フィールドを更新することをお薦めします。

    ノート:複数の接続を追加でき、格納されている接続仕様は永続的です。
    nosql_sim1
    サービスURL Oracle NoSQL Database Cloud Simulatorが実行されているIPアドレスおよびポート。 デフォルト値はhttp://localhost:8080 です。
    テナント識別子 テナントを識別する一意の識別子。 デフォルト値はexampleIdです。例をテストする場合は、この値を保持します。

    ノート:

    • バージョン1.5.4以降、IntelliJプラグインは最新のNoSQL Java SDKを自動的にダウンロードし、接続の作成時にSDKパスを設定します。

    • バージョン1.4.0以前からプラグインを更新する場合、格納されているすべての接続は新しいバージョンに移行されます。この場合、接続名はエンドポイントと同じになります。接続名を変更するには、次のステップに従います。

  7. IntelliJプラグインは、指定された接続名に接続の詳細を保存します。接続の詳細を変更するには、「Connections」のドロップダウンで、接続名を選択します。「接続の変更」をクリックします。接続パラメータ(前述)のいずれかを変更し、「OK」をクリックして設定を保存できます。プラグインから接続名を削除するには、接続名を選択して「Delete Connection」をクリックします。削除するアクションを確認すると、接続名がプラグインから削除されます。

  8. スキーマ・エクスプローラでWebアイコンをクリックします。既存の接続のリストが、ドロップダウン・ボックスに表示されます。接続名がNoSQLツール・ウィンドウに次の形式で表示されます:

    Connection Name:service Url : Tenant Identifier

    接続を選択し、「OK」をクリックします。IntelliJプラグインにより、プロジェクトがOracle NoSQL Database Cloud Simulatorに接続され、そのスキーマが「スキーマ・エクスプローラ」ウィンドウに表示されます。

ノート:プロジェクトをOracle NoSQL Database Cloud Simulatorに接続する前に、プロジェクトを起動して実行する必要があります。そうしないと、IntelliJで接続リクエストが失敗します。

プロジェクトをOracle NoSQL Database Cloud Simulatorに正常に接続すると、スキーマ内の表およびデータを管理できます。

IntelliJからのOracle NoSQL Java SDKを使用したアプリケーションの作成

Oracle NoSQL Java SDKパッケージを使用してIntelliJプラグインからアプリケーションを作成する方法について学習します。

Oracle NoSQL Database Cloud SimulatorまたはOracle NoSQL Database Cloud Serviceに接続したら、Oracle NoSQL Java SDKを使用してアプリケーションを作成できます。

このトピックでは、Oracle NoSQL Java SDKパッケージ内で使用可能なサンプル・アプリケーションを実行して、Oracle NoSQL Database Cloud SimulatorまたはOracle NoSQL Database Cloud Serviceに表を作成します。

次のステップを実行します:

  1. 最新のOracle NoSQL Database Java SDKをGitHubからダウンロードします。

  2. ダウンロードしたファイルをローカル・リポジトリに抽出(解凍)します。

  3. IntelliJ IDEAを起動し、NoSQLプロジェクトを開きます。

  4. Mavenビルド・システムを使用している場合は、pom.xmlに必要な依存関係が追加されていることを確認します。詳細は、Oracle NoSQL Java SDK GitHubを参照してください。

  5. 抽出されたOracle NoSQL Database Cloud Service Java SDKディレクトリから、oracle-nosql-java-sdk > examplesフォルダに移動します。BasicTableExampleおよびCommon javaファイルをNoSQLプロジェクト・ディレクトリにコピーします。

    BasicExampleTableプログラムでは、audienceDataという表を作成し、この表に2つの行を追加し、挿入された行を問い合せ、挿入された行を削除して、最後にaudienceData表を削除していることがわかる。

  6. アプリケーション・プログラムを実行する前に、接続に必要な引数を指定する必要があります。

    a. メニューから、「実行」「構成の編集」を選択します。

    b. 「新規構成の追加」を選択し、「アプリケーション」を選択します。

    c. 右側に表示されるウィンドウで、「名前」フィールドにメイン・クラスを入力します。

    d. 「ビルドおよび実行」で、Java JDKパスを指定し、メイン・クラスを入力します。

    e. 必要なプログラム引数を入力します。「適用」を選択し、「OK」を選択します。

    表- プログラム引数

    接続タイプ プログラム引数 その他の情報入手先
    Cloudsim http://localhost:8080 別のポートでOracle NoSQL Database Cloud Simulatorを起動した場合は、8080をそのポート番号に置換する必要があります。
    クラウド Region [-configFile <path-to-config-file>]

    例:

    us-ashburn-1 -configFile D:\OCI_PROP\config
    第1引数は、Oracle NoSQL Database Cloud Serviceのデータ・リージョンを示します。第2引数は、Oracle NoSQL Database Cloud Serviceに接続するための資格証明が含まれる構成ファイルを渡します。構成ファイルの内容の詳細は、Oracle NoSQL Databaseに接続するための認証を参照してください。

    configファイルを指定しない場合、スクリプトではSignatureProviderクラスのデフォルト・コンストラクタが使用され、次の場所にあるconfigファイルが検索されます。

    $HOME/.oci
  7. このプログラムを実行するには、「実行」を選択するか、[Shift] + [10]を押します。

    ノート:端末からプログラムを実行する場合は、次のサンプル・コマンドを使用します。

    次を使用して、mavenビルド・システムを使用してプログラムをコンパイルします。

    mvn compile

    プログラムの引数を指定して、プログラムを実行します。

    mvn exec:java -Dexec.mainClass=BasicTableExample -Dexec.args="<region>"

    例: mvn exec:java -Dexec.mainClass=BasicTableExample -Dexec.args="us-ashburn-1"

  8. 下部の「実行」ツール・ウィンドウに出力を表示します。ログを確認して、コードの実行が成功したことを確認します。表の作成、行の挿入などを示す表示メッセージを確認できます。

サンプル出力:

  Creating table audienceData
  Created table audienceData
  Put row: {"cookie_id":123,"audience_data":{"audience_segment":{"sports_lover":"2018-11-30","book_reader":"2018-12-01"},"ipaddr":"10.0.00.xxx"}} result=non-null Version
  Got row: {"cookie_id":123,"audience_data":{"audience_segment":{"sports_lover":"2018-11-30","book_reader":"2018-12-01"},"ipaddr":"10.0.00.xxx"}}
  Inserted row via query, result:
  {"NumRowsInserted":1}
  Got row inserted by query: {"cookie_id":106,"audience_data":{"audience_segment":{"foodie":"2020-06-01","sports_lover":"2020-05-10"},"ipaddr":"10.0.00.xxx"}}
  Put row from json: {"cookie_id":456,"audience_data":{"ipaddr":"10.0.00.yyy","audience_segment":{"sports_lover":"2019-01-05","foodie":"2018-12-31"}}}
  Got row inserted as JSON: {"cookie_id":456,"audience_data":{"audience_segment":{"sports_lover":"2019-01-05","foodie":"2018-12-31"},"ipaddr":"10.0.00.yyy"}}
  Query results for SELECT * from audienceData WHERE cookie_id = 456:
  {"cookie_id":456,"audience_data":{"audience_segment":{"foodie":"2018-12-31","sports_lover":"2019-01-05"},"ipaddr":"10.0.00.yyy"}}
  Deleted key {"cookie_id":456} result=true
  Dropping table audienceData

  Process finished with exit code 0

ノート: BasicExampleTableによって、挿入された行が削除され、audienceData表を削除されるため、この表をスキーマ・エクスプローラで表示することはできません。スキーマ・エクスプローラで表を表示する場合は、挿入された行を削除して表を削除するコードをコメント化してから、プログラムを再実行します。

IntelliJプラグインを使用した表の管理

スキーマ・エクスプローラからOracle NoSQL Database Cloud ServiceまたはOracle NoSQL Database Cloud Simulatorで表を作成し、表データを表示する方法について学習します。

次のステップを実行します:

  1. スキーマ・エクスプローラを探し、「ユーザー」アイコンアイコンをクリックしてスキーマをリロードします。

  2. テナント識別子の下で表を見つけて展開し、その列、主キーおよびシャード・キーの詳細を表示します。IntelliJからのOracle NoSQL Java SDKを使用したアプリケーションの作成のトピックの説明に従ってサンプル・アプリケーションを作成した場合、audienceData表が表示されます。

  3. 表名をダブルクリックしてそのデータを表示します。あるいは、表を右クリックして「表の参照」を選択することもできます。

  4. レコード・ビューア・ウィンドウがメイン・エディタに表示されます。「Execute」をクリックして問合せを実行し、表データを表示します。

  5. 個々のセル・データを個別に表示するには、そのセルをダブルクリックします。

IntelliJを使用したDDL操作の実行

IntelliJを使用してDDL操作を実行できます。

IntelliJプラグイン内から実行できるDDL操作の一部を次に示します。

CREATE TABLE

DROP TABLE

CREATE INDEX

DROP INDEX

列の追加

列の削除

スキーマの凍結/凍結解除

グローバル・アクティブ表になる前に、シングルトン表のスキーマを凍結する必要があります。表のスキーマを凍結した後は、スキーマを変更できません。シングルトン表のスキーマを凍結するには、少なくとも1つのJSON列が必要です。表を右クリックして、「凍結/凍結解除」を選択します確認すると、表のスキーマがフリーズされます。同様に、表のスキーマを凍結解除するには、表を右クリックして「凍結/凍結解除」を選択します。確認すると、表のスキーマが変更可能に戻されます。つまり、スキーマを変更できます。

ノート:凍結解除操作を実行する前に、表のリージョナル・レプリカを削除する必要があります(表はシングルトン表である必要があります)。

レプリカの管理

リージョナル・レプリカを追加して、レプリカの概要およびシングルトン表をグローバル・アクティブ表に変換する方法を理解するには、「リージョナル表のレプリカ」を参照してください。

レプリカの追加

リージョン・レプリカをシングルトン表に追加してグローバル・アクティブ表にするか、既存のグローバル・アクティブ表にレプリカを追加できます。レプリカを追加する前に、表をフリーズする必要があります。表を右クリックして、「リージョン・レプリカ」から「レプリカの追加」を選択します。「レプリケーション・リージョン」のドロップダウンからレプリカを選択できます。そのレプリケーション・リージョン内の表の読取りユニットおよび書込みユニットを決定できます。表のディスク・ストレージ値は、レプリカ内で変更/編集できません。「レプリカの追加」をクリックします。表がリージョンにレプリケートされます。

レプリカの表示

表を右クリックして、「リージョン・レプリカ」から「レプリカの表示」を選択します。表のレプリカのリストを表示できます。

レプリカの削除

表を右クリックし、「リージョナル・レプリカ」から「レプリカの削除」を選択します。「追加」をクリックし、削除するレプリカを選択します。一度に削除するレプリカを複数選択できます。削除する必要があるレプリカのリストからレプリカを削除する場合は、「削除」をクリックします。「レプリカの削除」をクリックします。確認すると、選択したすべてのレプリカから表が削除されます。

予約済容量の編集

表の予約済容量および使用モデルを編集できます。表を右クリックして、「予約済容量の編集」を選択します。「プロビジョニング済容量」または「オンデマンド容量」の2つの容量モードのいずれかを選択できます。値を編集し、「変更の適用」をクリックします。

編集される表がグローバル・アクティブ表の場合:

IntelliJを使用したDML操作の実行

IntelliJプラグインを使用して、表からデータの追加、既存データの変更およびデータの問合せを実行できます。

データを挿入

データの変更 - UPDATE ROW/DELETE ROW

問合せテーブル

ノート:ドロップ・ダウンには、作業中の表に関連するSQL文のみが表示されます。

スキーマ・エクスプローラ

「Schema Explorer」ウィンドウで、特定の列の完全なデータ型を確認できます。特定の列を指定すると、データ型の後に列名が表示されます。

IntelliJプラグインの認可要件

IntelliJプラグインを使用するためにOracle NoSQL Database Cloud Serviceで必要な認可要件について学習します。

IntelliJプラグインを使用すると、APIキー認証方式またはセッション・トークン認証方式のいずれかを使用してOracle NoSQL Database Cloud Serviceにアクセスできます。表、表領域、APIなどのOracle NoSQL Database Cloud Serviceのリソースへのアクセスは、Identity and Access Management (IAM)ポリシーによって管理されます。これにより、特定のコンパートメント内の表権限を適切に検査、読取り、使用または管理するグループのメンバーである認証済ユーザーのみが、これらのリソースと対話できるようになります。詳細は、NDCS表へのアクセスの管理を参照してください

IntelliJプラグインを使用してOracle NoSQL Database Cloud Service表の表を管理する場合、有効なIAM権限によって、読取りまたは書込みが可能なリソースが決まります。ユーザーが認可がないアクションを試行すると、IntelliJプラグインは、OCI IAMで指定された対応する認可エラーを返します。

たとえば、ユーザー・グループにNoSQL表の読取り権限のみがある場合、OCI IAMはOracle NoSQL Database Cloud Service表に対する挿入操作を拒否します。IntelliJプラグインには、次のエラー・メッセージが表示されます。

Error executing Insert Row : Authorization failed or requested resource not found (5.4.18)