Java를 사용하여 Neptune DB 인스턴스에 연결 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Java를 사용하여 Neptune DB 인스턴스에 연결

이 섹션에서는 Amazon Neptune DB 인스턴스에 연결하고 SPARQL 쿼리를 수행하는 전체 Java 샘플의 실행을 안내합니다.

Neptune DB EC2 인스턴스와 동일한 가상 프라이빗 클라우드(VPC)의 Amazon 인스턴스에서 다음 지침을 따릅니다.

Java를 사용하여 Neptune에 연결하려면
  1. EC2 인스턴스에 Apache Maven을 설치합니다. 먼저, 다음을 입력하여 리포지토리에 Maven 패키지를 추가합니다.

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

    다음을 입력하여 패키지의 버전 번호를 설정합니다.

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

    그러면 yum을 사용하여 Maven을 설치할 수 있습니다.

    sudo yum install -y apache-maven
  2. 이 예제는 Java 8에 대해서만 테스트되었습니다. 다음을 입력하여 EC2 인스턴스에 Java 8을 설치합니다.

    sudo yum install java-1.8.0-devel
  3. Java 8을 EC2 인스턴스의 기본 런타임으로 설정하려면 다음을 입력합니다.

    sudo /usr/sbin/alternatives --config java

    메시지가 표시되면 Java 8에 대한 숫자를 입력합니다.

  4. Java 8을 EC2 인스턴스의 기본 컴파일러로 설정하려면 다음을 입력합니다.

    sudo /usr/sbin/alternatives --config javac

    메시지가 표시되면 Java 8에 대한 숫자를 입력합니다.

  5. 새 디렉터리에서 pom.xml 파일을 생성하고 텍스트 편집기에서 엽니다.

  6. 다음을 pom.xml 파일에 복사하여 저장합니다. 일반적으로 버전 번호를 안정적인 최신 버전으로 조정할 수 있습니다.

    <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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>https://maven.apache.org</url> <dependencies> <dependency> <groupId>org.eclipse.rdf4j</groupId> <artifactId>rdf4j-runtime</artifactId> <version>3.6</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>
    참고

    기존 Maven 프로젝트를 수정할 경우 필요한 종속성이 이전 코드에서 강조 표시됩니다.

  7. 예제 소스 코드(src/main/java/com/amazonaws/)의 하위 디렉터리를 생성하려면 명령줄에 다음을 입력합니다.

    mkdir -p src/main/java/com/amazonaws/
  8. src/main/java/com/amazonaws/ 디렉터리에서 App.java 파일을 생성한 다음 텍스트 편집기에서 엽니다.

  9. 다음을 App.java 파일로 복사합니다. your-neptune-endpoint를 Neptune DB 인스턴스의 주소로 바꿉니다.

    참고

    사용자의 Neptune DB 인스턴스 호스트 이름을 찾는 방법은 Amazon 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 = "https://your-neptune-endpoint:port/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. 다음 Maven 명령을 사용하여 샘플을 컴파일하고 실행합니다.

    mvn compile exec:java

앞의 예제에서는 제한이 10인 ?s ?p ?o 쿼리를 사용하여 그래프에서 최대 10개의 트리플(subject-predicate-object)을 반환합니다. 다른 것을 쿼리하려면 쿼리를 다른 SPARQL 쿼리로 바꿉니다.

예제에서 반복 결과가 반환된 각 변수의 값을 인쇄합니다. Value 객체가 String으로 변환된 후 인쇄됩니다. 쿼리의 SELECT 부분을 변경할 경우에는 코드를 수정해야 합니다.