Connectivité JDBC Amazon Neptune - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connectivité JDBC Amazon Neptune

Amazon Neptune a publié un pilote JDBC open source qui prend en charge les requêtes openCypher, Gremlin, SQL-Gremlin et SPARQL. La connectivité JDBC facilite la connexion à Neptune grâce à des outils de business intelligence (BI) tels que Tableau. L'utilisation du pilote JDBC avec Neptune n'entraîne aucun coût supplémentaire : vous ne payez que les ressources Neptune consommées.

Ce pilote est compatible avec JDBC 4.2 et nécessite au moins Java 8. Pour en savoir plus sur l'utilisation d'un pilote JDBC, consultez la documentation relative à l'API JDBC.

Le GitHub projet, dans lequel vous pouvez signaler des problèmes et ouvrir des demandes de fonctionnalités, contient une documentation détaillée sur le pilote :

Premiers pas avec le pilote Neptune JDBC

Pour utiliser le pilote JDBC Neptune afin de vous connecter à une instance Neptune, soit le pilote JDBC doit être déployé sur une instance Amazon EC2 située dans le même VPC que le cluster de bases de données Neptune, soit l'instance doit être disponible via un tunnel SSH ou un équilibreur de charge. Un tunnel SSH peut être configuré dans le pilote en interne ou en externe.

Vous pouvez télécharger le pilote source ici. Le pilote est fourni sous la forme d'un seul fichier JAR avec un nom tel que neptune-jdbc-1.0.0-all.jar. Pour l'utiliser, placez le fichier JAR dans le dossier classpath de votre application. Ou, si votre application utilise Maven ou Gradle, vous pouvez utiliser les commandes Maven ou Gradle appropriées pour installer le pilote à partir du fichier JAR.

Le pilote a besoin d'une URL de connexion JDBC pour se connecter à Neptune, sous la forme suivante :

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

Les sections relatives à chaque langage de requête du GitHub projet décrivent les propriétés que vous pouvez définir dans l'URL de connexion JDBC pour ce langage de requête.

Si le fichier JAR se trouve dans le dossier classpath de votre application, aucune autre configuration n'est nécessaire. Vous pouvez connecter le pilote à l'aide de l'interface JDBC DriverManager et d'une chaîne de connexion Neptune. Par exemple, si le cluster de bases de données Neptune est accessible via le point de terminaison neptune-example.com sur le port 8182, vous pouvez vous connecter à openCypher comme suit :

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

Les sections de documentation du GitHub projet pour chaque langage de requête décrivent comment construire la chaîne de connexion lors de l'utilisation de ce langage de requête.

Utilisation de Tableau avec le pilote Neptune JDBC

Pour utiliser Tableau avec le pilote Neptune JDBC, commencez par télécharger et installer la version la plus récente de Tableau Desktop. Téléchargez le fichier JAR du pilote Neptune JDBC, ainsi que le fichier du connecteur Neptune Tableau (fichier .taco).

Pour vous connecter à Tableau pour Neptune sur un Mac
  1. Placez le fichier JAR du pilote JDBC Neptune dans le dossier /Users/(your user name)/Library/Tableau/Drivers.

  2. Placez le fichier .taco du connecteur Neptune Tableau dans le dossier /Users/(your user name)/Documents/My Tableau Repository/Connectors.

  3. Si l'authentification IAM est activée, configurez l'environnement en conséquence. Notez que les variables d'environnement définies dans .zprofile/, .zshenv/, .bash_profile, etc. ne fonctionnent pas. Les variables d'environnement doivent être définies de manière à pouvoir être chargées par une application graphique.

    Pour définir vos informations d'identification, vous pouvez placer votre clé d'accès et votre clé secrète dans le fichier /Users/(your user name)/.aws/credentials.

    Pour définir facilement la région de service, ouvrez un terminal et entrez la commande suivante, en utilisant la région de votre application (par exemple, us-east-1) :

    launchctl setenv SERVICE_REGION region name

    Il existe d'autres moyens de définir des variables d'environnement qui persistent après un redémarrage, mais quelle que soit la technique utilisée, vous devez définir des variables accessibles à une application graphique.

  4. Pour charger des variables d'environnement dans une interface graphique sur Mac, entrez cette commande sur un terminal :

    /Applications/Tableau/Desktop/2021.1.app/Contents/MacOS/Tableau
Pour vous connecter à Tableau pour Neptune sur un ordinateur Windows
  1. Placez le fichier JAR du pilote JDBC Neptune dans le dossier C:\Program Files\Tableau\Drivers.

  2. Placez le fichier .taco du connecteur Neptune Tableau dans le dossier C:\Users\(your user name)\Documents\My Tableau Repository\Connectors.

  3. Si l'authentification IAM est activée, configurez l'environnement en conséquence.

    Cela peut être aussi simple que de définir des variables d'environnement utilisateur ACCESS_KEY, SECRET_KEY et SERVICE_REGION.

Une fois Tableau ouvert, sélectionnez Plus du côté gauche de la fenêtre. Si le fichier du connecteur Tableau est correctement localisé, vous pouvez sélectionner Amazon Neptune d' AWS dans la liste qui apparaît :

Sélection de SQL dans Tableau

Vous ne devriez pas avoir à modifier le port ni à ajouter d'options de connexion. Entrez le point de terminaison Neptune et définissez votre configuration IAM et SSL (vous devez activer le protocole SSL si vous utilisez IAM).

Lorsque vous sélectionnez Se connecter, la connexion peut prendre plus de 30 secondes si le graphe est volumineux. Tableau collecte les tables de sommets et d'arêtes, joint les sommets sur des arêtes et crée des visualisations.

Résolution des problèmes de connexion à un pilote JDBC

Si le pilote ne parvient pas à se connecter au serveur, utilisez la fonction isValid de l'objet JDBC Connection pour vérifier si la connexion est valide. Si la fonction renvoie false, ce qui signifie que la connexion n'est pas valide, vérifiez que le point de terminaison auquel vous êtes connecté est correct et que vous êtes dans le VPC du cluster de bases de données Neptune ou que vous disposez d'un tunnel SSH valide vers le cluster.

Si vous recevez une réponse No suitable driver found for (connection string) à l'appel DriverManager.getConnection, il existe probablement un problème au début de la chaîne de connexion. Assurez-vous que la chaîne de connexion commence comme suit :

jdbc:neptune:opencypher://...

Pour recueillir plus d'informations sur la connexion, vous pouvez ajouter un LogLevel à la chaîne de connexion comme suit :

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

Vous pouvez également ajouter properties.put("logLevel", "trace") dans les propriétés d'entrée pour enregistrer les informations de suivi.