기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Go를 사용하여 Neptune DB 인스턴스에 연결
가능하면 항상 엔진 버전에서 지원하는 최신 버전의 Apache TinkerPop Go Gremlin 클라이언트인 gremlingo
사용할 gremlingo
버전은 일반적으로 Java Gremlin 클라이언트 표에 설명된 TinkerPop 버전과 일치합니다.
참고
gremlingo 3.5.x 버전은 작성하는 Gremlin 쿼리에서 3.4.x 기능만 사용하는 한 TinkerPop 3.4.x 버전과 역호환됩니다.
다음 섹션에서는 Amazon Neptune DB 인스턴스에 연결하고 Gremlin 순회를 수행하는 Go 샘플을 실행하는 방법을 설명합니다.
사용자의 Neptune DB 인스턴스와 동일한 Virtual Private Cloud(VPC)에 있는 Amazon EC2 인스턴스에서 이러한 지침을 따라야 합니다.
시작하기 전에 다음을 수행하십시오.
Go 1.17 이상을 go.dev
웹 사이트에서 다운로드하여 설치합니다.
Go를 사용하여 Neptune에 연결하려면
-
빈 디렉터리에서 시작하여 새 Go 모듈을 초기화합니다.
go mod init example.com/gremlinExample
-
gremlin-go를 새 모듈의 종속 구성 요소로 추가합니다.
go get github.com/apache/tinkerpop/gremlin-go/v3/driver
-
이름이
gremlinExample.go
인 파일을 생성하여 텍스트 편집기에서 엽니다. -
다음을
gremlinExample.go
파일에 복사하고
를 Neptune DB 인스턴스의 주소로 대체합니다.(your neptune endpoint)
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()) } }참고
Neptune TLS 인증서 형식은 현재 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} })
-
다음 명령을 입력하여 샘플을 실행합니다.
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 순회로 바꿉니다.