Nebula Go

Nebula Go是一款Go语言的客户端,可以连接、管理Nebula Graph图数据库。

前提条件

已安装Go,版本为1.13及以上。

版本对照表

Nebula Graph版本Nebula Go版本
2.5.02.5.0
2.0.12.0.0-GA
2.0.02.0.0-GA

下载Nebula Go

  • (推荐)如果需要下载指定版本的Nebula Go,请使用选项--branch指定分支。例如安装v2.5.0发布版本,请执行如下命令:

    1. $ git clone --branch v2.5.0 https://github.com/vesoft-inc/nebula-go.git
  • 如果需要安装日常开发版本,请执行如下命令下载master分支的源码:

    1. $ git clone https://github.com/vesoft-inc/nebula-go.git

安装或更新

安装或更新的命令如下:

  1. $ go get -u -v github.com/vesoft-inc/nebula-go@<tag>

tag:指定分支。例如masterv2.5.0

核心代码

详细示例请参见graph_client_basic_examplegraph_client_goroutines_example

  1. const (
  2. address = "192.168.xx.1"
  3. port = 9669
  4. username = "root"
  5. password = "nebula"
  6. )
  7. func main() {
  8. hostAddress := nebula.HostAddress{Host: address, Port: port}
  9. hostList := []nebula.HostAddress{hostAddress}
  10. testPoolConfig := nebula.GetDefaultConf()
  11. pool, err := nebula.NewConnectionPool(hostList, testPoolConfig, log)
  12. defer pool.Close()
  13. session, err := pool.GetSession(username, password)
  14. defer session.Release()
  15. checkResultSet := func(prefix string, res *nebula.ResultSet) {
  16. if !res.IsSucceed() {
  17. log.Fatal(fmt.Sprintf("%s, ErrorCode: %v, ErrorMsg: %s", prefix, res.GetErrorCode(), res.GetErrorMsg()))
  18. }
  19. }
  20. {
  21. createSchema := "CREATE SPACE IF NOT EXISTS basic_example_space(vid_type=FIXED_STRING(20)); " +
  22. "USE basic_example_space;" +
  23. "CREATE TAG IF NOT EXISTS person(name string, age int);" +
  24. "CREATE EDGE IF NOT EXISTS like(likeness double)"
  25. resultSet, err := session.Execute(createSchema)
  26. checkResultSet(createSchema, resultSet)
  27. }
  28. fmt.Print("\n")
  29. log.Info("Nebula Go Client Basic Example Finished")
  30. }