

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Neptune JDBC 接続
<a name="neptune-jdbc"></a>

Amazon Neptune は、openCypher、Gremlin、SQL-gremlin、SPARQLクエリをサポートしている[オープンソース JDBC ドライバー](https://github.com/aws/amazon-neptune-jdbc-driver)をリリースしました。JDBC 接続により、Tableau などのビジネスインテリジェンス (BI) ツールを使用して Neptune に簡単に接続できます。Neptune で JDBC ドライバーを使用することに追加費用はかかりません。消費された Neptune リソースに対してのみお支払いいただきます。

ドライバーは JDBC 4.2 と互換性があり、少なくとも Java 8 が必要です。JDBC ドライバーの使用方法については、[JDBC API ドキュメント](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/)を参照してください。

GitHub プロジェクトでは、課題を提出したり、機能リクエストを開いたりすることができ、ドライバーの詳細なドキュメントが含まれています。

**[Amazon Neptune 用 JDBC ドライバー](https://github.com/aws/amazon-neptune-jdbc-driver#readme)**
+ [JDBC ドライバーを介した SQL の使用](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/sql.md)
+ [JDBC ドライバーを介した Gremlin の使用](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/gremlin.md)
+ [JDBC ドライバーを介した openCypher の使用](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/opencypher.md)
+ [JDBC ドライバーを介した SPARQL の使用](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/sparql.md)

# Neptune JDBC トライバーの開始方法
<a name="neptune-jdbc-getting-started"></a>

Neptune JDBC ドライバーを使用して Neptune インスタンスに接続するには、JDBC ドライバーを Neptune DB クラスターと同じ VPC 内の Amazon EC2 インスタンスにデプロイするか、インスタンスが SSH トンネルまたはロードバランサーを介して利用可能である必要があります。SSH トンネルは、ドライバーの内部で設定することも、外部で設定することもできます。

ドライバーは、[こちら](https://github.com/aws/amazon-neptune-jdbc-driver/releases) からダウンロードできます。ドライバーは、次のような名前を持つ単一の JAR ファイルとしてパッケージ化されます。`neptune-jdbc-1.0.0-all.jar`。これを使用するには、JAR ファイルをアプリケーションの `classpath` に置きます。または、アプリケーションで Maven または Gradle を使用している場合は、適切な Maven または Gradle コマンドを使用して JAR からドライバーをインストールできます。

ドライバーは Neptune に接続するには、次のような形式で JDBC 接続 URL が必要です。

```
jdbc:neptune:(connection type)://(host);property=value;property=value;...;property=value
```

GitHub プロジェクトの各クエリ言語のセクションでは、そのクエリ言語の JDBC 接続 URL で設定できるプロパティについて説明します。

JAR ファイルがアプリケーションの `classpath` 内にある場合、その他の設定は必要ありません。JDBC `DriverManager` インターフェイスと Neptune 接続文字列を使用してドライバーを接続できます。たとえば、ポート 8182 の `neptune-example.com` エンドポイントから Neptune DB クラスターにアクセスできる場合、openCypher で次のように接続できます。

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

void example() {
    String url = "jdbc:neptune:opencypher://bolt://neptune-example:8182";

    Connection connection = DriverManager.getConnection(url);
    Statement statement = connection.createStatement();

    connection.close();
}
```

各クエリ言語の GitHub プロジェクトのドキュメントセクションでは、そのクエリ言語を使用するときに接続文字列を構築する方法について説明します。

# Neptune JDBC ドライバーで Tableau を使用する
<a name="neptune-jdbc-tableau"></a>

Neptune JDBC ドライバーで Tableau を使用するには、まず [Tableau デスクトップ](https://www.tableau.com/products/desktop)の最新バージョンをダウンロードしてインストールします。Neptune JDBC ドライバー用の JAR ファイルと Neptune Tableau コネクタファイル (`.taco`) をダウンロードします。

**Mac で Tableau for Neptune に接続するには**

1. Neptune JDBC ドライバー JAR ファイルを `/Users/(your user name)/Library/Tableau/Drivers` フォルダに置きます。

1. Neptune Tableau コネクタ `.taco` ファイルを `/Users/(your user name)/Documents/My Tableau Repository/Connectors` フォルダに置きます。

1. IAM 認証が有効になっている場合は、その環境を設定します。環境変数が`.zprofile/`、`.zshenv/`、`.bash_profile`などで設定されている機能しないことに注意してください。環境変数は、GUI アプリケーションで読み込めるように設定する必要があります。

   認証情報を設定する 1 つの方法は、アクセスキーおよびシークレットキーを `/Users/(your user name)/.aws/credentials` ファイルに置くことです。

   サービスリージョンを簡単に設定するには、ターミナルを開き、アプリケーションのリージョンを使用して次のコマンドを入力します（たとえば、`us-east-1`)。

   ```
   launchctl setenv SERVICE_REGION region name
   ```

   再起動後も持続する環境変数を設定する方法は他にもありますが、どの方法を使用する場合でも、GUI アプリケーションからアクセス可能な変数を設定する必要があります。

1. Mac の GUI に環境変数をロードするには、ターミナルで次のコマンドを入力します。

   ```
   /Applications/Tableau/Desktop/2021.1.app/Contents/MacOS/Tableau
   ```

**Windows マシンで Tableau for Neptune に接続するには**

1. Neptune JDBC ドライバー JAR ファイルを `C:\Program Files\Tableau\Drivers` フォルダに置きます。

1. Neptune Tableau コネクタ `.taco` ファイルを `C:\Users\(your user name)\Documents\My Tableau Repository\Connectors` フォルダに置きます。

1. IAM 認証が有効になっている場合は、その環境を設定します。

   これは、ユーザーの`ACCESS_KEY`、`SECRET_KEY`、および`SERVICE_REGION`環境変数設定と同じくらいシンプルです。

Tableau を開いた状態で、**MORE**ウィンドウの左側にあります。Tableau コネクタファイルが適切に配置されている場合は、表示されたリストで**Amazon Neptune を AWSで**を選択します。

![\[Tableau での SQL の選択\]](http://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/images/tableau-sql-gremlin.png)


ポートを編集したり、接続オプションを追加したりする必要はありません。Neptune エンドポイントを入力し、IAM と SSL の設定を設定します（IAM を使用している場合は SSL を有効にする必要があります）。

選択した場合**サインイン**の場合、グラフが大きい場合、接続に 30 秒以上かかることがあります。Tableau では、頂点テーブルとエッジのテーブルを収集し、エッジ上の頂点を結合し、ビジュアライゼーションを作成しています。

# JDBC ドライバー接続のトラブルシューティング
<a name="neptune-jdbc-troubleshooting"></a>

ドライバーがサーバーに接続できない場合は、JDBC `Connection` オブジェクトの `isValid` 関数を使用して、接続が有効かどうかをチェックします。関数が `false` を返した場合、接続が無効であることを示します。接続先のエンドポイントが正しいこと、および Neptune DB クラスターの VPC にいること、またはクラスターへの有効な SSH トンネルがあることを確認します。

`DriverManager.getConnection` を呼び出して `No suitable driver found for (connection string)` の応答があれば、接続文字列の先頭に問題がある可能性があります。接続文字列が次のように始まっていることを確認してください。

```
jdbc:neptune:opencypher://...
```

接続に関する詳細情報を収集するには、`LogLevel` 接続文字列を次のようにします。

```
jdbc:neptune:opencypher://(JDBC URL):(port);logLevel=trace
```

または、入力プロパティに `properties.put("logLevel", "trace")` を追加してトレース情報を記録します。