跳转至

Nebula Python

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

前提条件

已安装 Python,版本为 3.5 及以上。

版本对照表

Nebula Graph 版本 Nebula Python 版本
2.6.2 2.6.1
2.0.1 2.0.0
2.0.0 2.0.0
2.0.0-rc1 2.0.0rc1

安装 Nebula Python

pip 安装

$ pip install nebula2-python==<version>

克隆源码安装

  1. 克隆 Nebula Python 源码到机器。

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

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

      $ git clone https://github.com/vesoft-inc/nebula-python.git
      
  2. 进入目录 nebula-python。

    $ cd nebula-python
    
  3. 执行如下命令安装。

    $ pip install .
    

核心代码

详细示例请参见 Example

连接 Graph 服务

# 定义配置
config = Config()
config.max_connection_pool_size = 10
# 初始化连接池
connection_pool = ConnectionPool()
# 如果给定的服务器正常,则返回 true,否则返回 false。
ok = connection_pool.init([('192.168.xx.1', 9669)], config)

# 方法 1:控制连接自行释放。
# 从连接池中获取会话
session = connection_pool.get_session('root', 'nebula')

# 选择图空间
session.execute('USE basketballplayer')

# 执行查看 TAG 命令
result = session.execute('SHOW TAGS')
print(result)

# 释放会话
session.release()

# 方法 2:使用 session_context,会话将被自动释放。
with connection_pool.session_context('root', 'nebula') as session:
    session.execute('USE basketballplayer;')
    result = session.execute('SHOW TAGS;')
    print(result)

# 关闭连接池
connection_pool.close()

连接 Storage 服务

# 设置所有 Meta 服务地址
meta_cache = MetaCache([('192.168.xx.1', 9559),
                        ('192.168.xx.2', 9559),
                        ('192.168.xx.3', 9559)],
                       50000)
graph_storage_client = GraphStorageClient(meta_cache)

resp = graph_storage_client.scan_vertex(
        space_name='ScanSpace',
        tag_name='person')
while resp.has_next():
    result = resp.next()
    for vertex_data in result:
        print(vertex_data)

resp = graph_storage_client.scan_edge(
    space_name='ScanSpace',
    edge_name='friend')
while resp.has_next():
    result = resp.next()
    for edge_data in result:
        print(edge_data)

最后更新: March 7, 2023