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

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

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

가능하면 항상 엔진 버전에서 지원하는 최신 버전의 Apache TinkerPop Go Gremlin 클라이언트인 gremlingo를 사용하십시오. 최신 버전에는 클라이언트의 안정성, 성능 및 사용성을 개선하는 여러 버그 수정이 포함되어 있습니다.

사용할 gremlingo 버전은 일반적으로 Java Gremlin 클라이언트용 표에 설명된 TinkerPop 버전과 일치합니다.

참고

작성하는 그렘린 쿼리에서 3.4.x 기능만 사용하는 한, gremlingo 3.5.x 버전은 TinkerPop 3.4.x 버전과 이전 버전과 호환됩니다.

다음 섹션에서는 Amazon Neptune DB 인스턴스에 연결하고 Gremlin 순회를 수행하는 Go 샘플을 실행하는 방법을 설명합니다.

Neptune EC2 DB 인스턴스와 동일한 가상 사설 클라우드 (VPC) 에 있는 Amazon 인스턴스의 지침을 따라야 합니다.

시작하기 전에 다음을 수행하십시오.

  • Go 1.17 이상을 go.dev 웹 사이트에서 다운로드하여 설치합니다.

Go를 사용하여 Neptune에 연결하려면
  1. 빈 디렉터리에서 시작하여 새 Go 모듈을 초기화합니다.

    go mod init example.com/gremlinExample
  2. gremlin-go를 새 모듈의 종속 구성 요소로 추가합니다.

    go get github.com/apache/tinkerpop/gremlin-go/v3/driver
  3. 이름이 gremlinExample.go인 파일을 생성하여 텍스트 편집기에서 엽니다.

  4. 다음을 gremlinExample.go 파일에 복사하고 다음을 대체합니다.(넵튠 엔드포인트) Neptune DB 인스턴스의 주소를 사용하여

    package main import ( "fmt" gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver" ) func main() { // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://(your neptune endpoint):8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" }) if err != nil { fmt.Println(err) return } // Cleanup defer driverRemoteConnection.Close() // Creating graph traversal g := gremlingo.Traversal_().WithRemote(driverRemoteConnection) // Perform traversal results, err := g.V().Limit(2).ToList() if err != nil { fmt.Println(err) return } // Print results for _, r := range results { fmt.Println(r.GetString()) } }
    참고

    TLSNeptune 인증서 형식은 현재 macOS의 Go 1.18+에서 지원되지 않으며 연결을 시작하려고 할 때 509 오류가 발생할 수 있습니다. 로컬 테스트의 경우 가져오기에 “crypto/tls”를 추가하고 다음과 같이 DriverRemoteConnection 설정을 수정하여 이 문제를 건너뛸 수 있습니다.

    // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://your-neptune-endpoint:8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" settings.TlsConfig = &tls.Config{InsecureSkipVerify: true} })
  5. 다음 명령을 입력하여 샘플을 실행합니다.

    go run gremlinExample.go

이 예제 끝부분의 Gremlin 쿼리는 조각에서 버텍스((g.V().Limit(2)))를 반환합니다. 그런 다음 이 조각을 반복하여 표준 fmt.Println 함수를 사용하여 출력합니다.

참고

Gremlin 쿼리의 최종 부분 ToList()에서 순회를 서버로 제출하여 평가를 받아야 합니다. 이 메서드 또는 이와 유사한 메서드를 포함시키지 않는 경우에는 쿼리가 Neptune DB 인스턴스로 제출되지 않습니다.

다음 메서드는 쿼리를 Neptune DB 인스턴스로 제출합니다.

  • ToList()

  • ToSet()

  • Next()

  • GetResultSet()

  • Iterate()

앞의 예에서는 g.V().Limit(2).ToList() 순회를 사용하여 그래프의 첫 번째 버텍스 두 개를 반환했습니다. 다른 것을 쿼리하려면 해당하는 종료 메서드 중 하나를 사용하여 다른 Gremlin 순회로 바꿉니다.