使用 Go 连接到 Neptune 数据库实例 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Go 连接到 Neptune 数据库实例

如果可以的话,请始终使用您的引擎版本支持的最新版本的 Apache TinkerPop Go Gremlin 客户端 g remlingo。更新的版本包含大量错误修复,可以提升客户端的稳定性、性能和可用性。

要使用的gremlingo版本通常与 Java Gremlin 客户端表中描述的 TinkerPop版本保持一致。

以下部分将指导您完成 Go 示例的运行,该示例连接到 Neptune 数据库实例并执行 Gremlin 遍历。

您必须在 Neptune 数据库 EC2 实例所在的虚拟私有云 (VPC) 中的 Amazon 实例中按照这些说明进行操作。

开始之前,请执行以下操作:

  • go.dev 网站下载并安装 Go 1.17 或更高版本。

使用 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 文件中,同时将 (your neptune endpoint) 替换为 Neptune 数据库实例的地址:

    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()) } }
    注意

    搭载 macOS 的 Go 1.18+ 目前不支持 Neptune TLS 证书格式,尝试启动连接时可能会出现 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 数据库实例。

以下方法将查询提交到 Neptune 数据库实例:

  • ToList()

  • ToSet()

  • Next()

  • GetResultSet()

  • Iterate()

上述示例通过使用 g.V().Limit(2).ToList() 遍历返回图形中的前两个顶点。要查询其他内容,请将其替换为具有其中一种适当的结尾方法的其他 Gremlin 遍历。