

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conectividade JDBC do Amazon Neptune
<a name="neptune-jdbc"></a>

O Amazon Neptune lançou [um driver JDBC de código aberto](https://github.com/aws/amazon-neptune-jdbc-driver) que é compatível com consultas do openCypher, do Gremlin, do SQL-Gremlin e do SPARQL. A conectividade JDBC facilita a conexão com o Neptune com ferramentas de business intelligence (BI), como o Tableau. Não há custo adicional em usar o driver JDBC com o Neptune. Você ainda paga somente pelos recursos consumidos do Neptune.

O driver é compatível com o JDBC 4.2 e requer pelo menos o Java 8. Para obter mais informações sobre o JDBC, consulte a [documentação de API JDBC](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/).

O GitHub projeto, no qual você pode registrar problemas e abrir solicitações de recursos, contém documentação detalhada do driver:

**[Driver JDBC para Amazon Neptune](https://github.com/aws/amazon-neptune-jdbc-driver#readme)**
+ [Usar SQL com o driver JDBC](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/sql.md)
+ [Usar o Gremlin com o driver JDBC](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/gremlin.md)
+ [Usar o openCypher com o driver JDBC](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/opencypher.md)
+ [Usar o SPARQL com o driver JDBC](https://github.com/aws/amazon-neptune-jdbc-driver/blob/develop/markdown/sparql.md)

# Conceitos básicos do driver JDBC do Neptune
<a name="neptune-jdbc-getting-started"></a>

Para usar o driver JDBC do Neptune para se conectar a uma instância do Neptune, o driver JDBC deve ser implantado em uma instância do Amazon EC2 na mesma VPC do seu cluster de banco de dados do Neptune, ou a instância deve estar disponível por meio de um túnel SSH ou balanceador de carga. Um túnel SSH pode ser configurado internamente no driver ou externamente.

Você pode baixar o driver [aqui](https://github.com/aws/amazon-neptune-jdbc-driver/releases). O driver vem embalado como um único arquivo JAR com um nome como `neptune-jdbc-1.0.0-all.jar`. Para usá-lo, coloque o arquivo JAR no `classpath` de sua aplicação. Ou, se a aplicação usa Maven ou Gradle, é possível usar os comandos apropriados do Maven ou do Gradle para instalar o driver pelo JAR.

O driver precisa de um URL de conexão JDBC para se conectar ao Neptune, em um formato como este:

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

As seções de cada linguagem de consulta no GitHub projeto descrevem as propriedades que você pode definir na URL de conexão do JDBC para essa linguagem de consulta.

Se o arquivo JAR estiver no `classpath` da aplicação, nenhuma outra configuração será necessária. Você pode conectar o driver usando a interface `DriverManager` JDBC e uma string de conexão do Neptune. Por exemplo, se o cluster de banco de dados do Neptune estiver acessível por meio do endpoint `neptune-example.com` na porta 8182, você poderá se conectar ao openCypher da seguinte forma:

```
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();
}
```

As seções de documentação do GitHub projeto para cada linguagem de consulta descrevem como construir a cadeia de conexão ao usar essa linguagem de consulta.

# Usar o Tableau com o driver JDBC do Neptune
<a name="neptune-jdbc-tableau"></a>

Para usar o Tableau com o driver JDBC do Neptune, comece baixando e instalando a versão mais recente do [Tableau Desktop](https://www.tableau.com/products/desktop). Baixe o arquivo JAR para o driver JDBC do Neptune e também o arquivo do conector Tableau do Neptune (um arquivo `.taco`).

**Como se conectar ao Tableau para Neptune em um Mac**

1. Coloque o arquivo JAR do driver JDBC do Neptune na pasta `/Users/(your user name)/Library/Tableau/Drivers`.

1. Coloque o arquivo do conector `.taco` Tableau do Neptune na pasta `/Users/(your user name)/Documents/My Tableau Repository/Connectors`.

1. Se você tiver a autenticação do IAM habilitada, configure o ambiente para ela. Observe que as variáveis de ambiente definidas em `.zprofile/`, `.zshenv/`, `.bash_profile`, etc. não funcionarão. As variáveis de ambiente devem ser definidas para que possam ser carregadas por uma aplicação de GUI.

   Uma forma de definir suas credenciais é colocar sua chave de acesso e chave secreta no arquivo `/Users/(your user name)/.aws/credentials`.

   Uma maneira fácil de definir a região de serviço é abrir um terminal e digitar o seguinte comando, usando a região da aplicação (por exemplo, `us-east-1`):

   ```
   launchctl setenv SERVICE_REGION region name
   ```

   Há outras maneiras de definir variáveis de ambiente que são persistidas após uma reinicialização, mas qualquer técnica usada deve definir variáveis que sejam acessíveis a uma aplicação de GUI.

1. Para fazer com que as variáveis de ambiente sejam carregadas em uma GUI no Mac, digite este comando em um terminal:

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

**Como se conectar ao Tableau para Neptune em uma máquina Windows**

1. Coloque o arquivo JAR do driver JDBC do Neptune na pasta `C:\Program Files\Tableau\Drivers`.

1. Coloque o arquivo do conector `.taco` Tableau do Neptune na pasta `C:\Users\(your user name)\Documents\My Tableau Repository\Connectors`.

1. Se você tiver a autenticação do IAM habilitada, configure o ambiente para ela.

   Isso pode ser tão simples quanto definir as variáveis de ambiente `ACCESS_KEY`, `SECRET_KEY` e `SERVICE_REGION` do usuário.

Com o Tableau aberto, selecione **Mais** no lado esquerdo da janela. Se o arquivo do conector do Tableau estiver localizado corretamente, você poderá selecionar **Amazon Neptune da AWS** na lista exibida:

![\[Escolher o SQL no Tableau\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/tableau-sql-gremlin.png)


Não é necessário editar a porta nem adicionar nenhuma opção de conexão. Insira o endpoint do Neptune e defina a configuração do SSL e do IAM (será necessário habilitar o SSL se estiver usando o IAM).

Ao selecionas **Entrar**, poderá levar mais de 30 segundos para se conectar se o grafo for grande. O Tableau está coletando tabelas de vértices e bordas e unindo vértices nas bordas, além de criar visualizações.

# Solucionar problemas de conexão com o driver JDBC
<a name="neptune-jdbc-troubleshooting"></a>

Se o driver não conseguir se conectar ao servidor, use a função `isValid` do objeto `Connection` JDBC para conferir se a conexão é válida. Se a função gerar `false`, o que significa que a conexão é inválida, confira se o endpoint ao qual está conectado está correto e se você está na VPC do cluster de banco de dados do Neptune ou se tem um túnel SSH válido para o cluster.

Se você receber uma resposta `No suitable driver found for (connection string)` da chamada `DriverManager.getConnection`, é provável que haja um problema no início da string de conexão. Garanta que a string de conexão comece assim:

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

Para coletar mais informações sobre a conexão, você pode adicionar `LogLevel` à string de conexão da seguinte forma:

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

Como alternativa, é possível adicionar `properties.put("logLevel", "trace")` às propriedades de entrada para registrar informações de rastreamento.