Amazon Neptune
Guide de l'utilisateur (Version de l'API 2017-11-29)

Utiliser Java pour se connecter à une instance de base de données Neptune

Cette section vous accompagne dans l'exécution d'un échantillon Java complet qui se connecte à un Amazon Neptune DB instance et exécute une requête SPARQL.

Vous devez suivre ces instructions à partir d'une instance Amazon EC2 dans le même cloud privé virtuel que votre Instance de base de données Neptune.

Pour se connecter à Neptune avec Java

  1. Installez Apache Maven sur votre instance EC2. D'abord, saisissez la commande suivante pour ajouter un référentiel avec un package Maven :

    sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

    Tapez la commande suivante pour définir le numéro de version des packages :

    sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo

    Vous pouvez ensuite utiliser yum pour installer Maven :

    sudo yum install -y apache-maven
  2. Cet exemple a été testé avec Java 8 uniquement. Entrez ce qui suit pour installer Java 8 sur votre instance EC2 :

    sudo yum install java-1.8.0-devel
  3. Tapez la commande suivante pour définir Java 8 en tant que runtime par défaut de votre instance EC2 :

    sudo /usr/sbin/alternatives --config java

    Lorsque vous y êtes invité, entrez le numéro pour Java 8.

  4. Tapez la commande suivante pour définir Java 8 en tant que compilateur par défaut de votre instance EC2 :

    sudo /usr/sbin/alternatives --config javac

    Lorsque vous y êtes invité, entrez le numéro pour Java 8.

  5. Dans un nouveau répertoire , créez un fichier pom.xml, puis ouvrez-le dans un éditeur de texte.

  6. Copiez ce qui suit dans le fichier pom.xml et enregistrez-le:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.amazonaws</groupId> <artifactId>RDFExample</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>RDFExample</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.eclipse.rdf4j</groupId> <artifactId>rdf4j-runtime</artifactId> <version>2.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>com.amazonaws.App</mainClass> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>

    Note

    Si vous modifiez un projet Maven existant, la dépendance obligatoire est mise en évidence dans le code précédent.

  7. Pour créer des sous-répertoires pour l'exemple de code source (src/main/java/com/amazonaws/), tapez ce qui suit sur la ligne de commande :

    mkdir -p src/main/java/com/amazonaws/
  8. Dans le répertoire src/main/java/com/amazonaws/, créez un fichier App.java, puis ouvrez-le dans un éditeur de texte.

  9. Copiez ce qui suit dans le fichier App.java. Remplacez your-neptune-endpoint par l'adresse de votre Instance de base de données Neptune.

    Note

    Consultez la section Trouver le point de terminaison pour un cluster Neptune pour des informations concernant comment trouver le nom d'hôte de votre Instance de base de données Neptune.

    package com.amazonaws; import org.eclipse.rdf4j.repository.Repository; import org.eclipse.rdf4j.repository.http.HTTPRepository; import org.eclipse.rdf4j.repository.sparql.SPARQLRepository; import java.util.List; import org.eclipse.rdf4j.RDF4JException; import org.eclipse.rdf4j.repository.RepositoryConnection; import org.eclipse.rdf4j.query.TupleQuery; import org.eclipse.rdf4j.query.TupleQueryResult; import org.eclipse.rdf4j.query.BindingSet; import org.eclipse.rdf4j.query.QueryLanguage; import org.eclipse.rdf4j.model.Value; public class App { public static void main( String[] args ) { String sparqlEndpoint = "your-neptune-endpoint:8182/sparql"; Repository repo = new SPARQLRepository(sparqlEndpoint); repo.initialize(); try (RepositoryConnection conn = repo.getConnection()) { String queryString = "SELECT ?s ?p ?o WHERE { ?s ?p ?o } limit 10"; TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString); try (TupleQueryResult result = tupleQuery.evaluate()) { while (result.hasNext()) { // iterate over the result BindingSet bindingSet = result.next(); Value s = bindingSet.getValue("s"); Value p = bindingSet.getValue("p"); Value o = bindingSet.getValue("o"); System.out.print(s); System.out.print("\t"); System.out.print(p); System.out.print("\t"); System.out.println(o); } } } } }
  10. Compilez et exécutez l'exemple à l'aide de la commande Maven suivante :

    mvn compile exec:java

L'exemple précédent renvoie 10 triplets au plus (sujet-prédicat-objet) dans le graphe à l'aide de la requête ?s ?p ?o avec une limite égale à 10. Pour interroger autre chose, remplacez la requête par une autre requête SPARQL.

L'itération des résultats dans l'exemple imprime la valeur de chaque variable renvoyée. L'objet Value est convertie en une String, puis imprimé. Si vous modifiez la partie SELECT de la requête, vous devez modifier le code.

Pour plus d'informations sur Amazon Neptune, consultez Étapes suivantes.