跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

连接并完成首次查询

通过悦数图管理连接悦数图数据库开发版,加载movie示例数据集,再查询一部电影及其参演演员。以下四步均在浏览器中完成。

前提条件

1. 登录悦数图管理

在运行 Docker 的开发机上,用浏览器打开 http://127.0.0.1:7001。

在其他电脑上访问或使用自定义端口

浏览器通过7001端口访问悦数图管理,悦数图管理通过graph-cluster:9669连接悦数图数据库开发版。

从其他电脑访问时,打开http://<开发机IP>:7001,将<开发机IP>替换为运行 Docker 的机器 IP 地址。

如果修改了compose.yaml中的7001:7001端口映射,将访问地址中的端口改为冒号左侧的开发机端口。

在登录页面确认或填写以下信息,然后单击登录:

字段 值
地址 graph-cluster
端口 9669
用户名 root
密码 当前的root密码。配套文件中的初始密码为YueshuGraph01;如已修改,请填写修改后的密码。

登录成功后,顶部导航栏中可见 SCHEMA 管理和控制台。

2. 加载movie示例数据

Schema 类似文件夹,用于组织图类型和图。本文使用系统创建的默认 Schema:/default_schema。

  1. 在顶部导航栏中单击 SCHEMA 管理页签。
  2. 确认左侧顶部选中的 Schema 为default_schema。
  3. 在页面中央单击使用示例数据集。
  4. 等待加载完成。成功后会打开movie_type的图类型详情页。

加载会创建图类型movie_type和图movie,并写入电影、演员等点及其关系。movie_type定义数据结构,后续查询使用图movie。

加载成功后,使用示例数据集入口不再显示。再次访问时,直接从第 3 步继续查询,无需重复加载。

3. 查询电影

在顶部导航栏中单击控制台。将以下语句粘贴到查询编辑器,并单击运行按钮,查询编号为3的电影:

USE movie MATCH (m@Movie {id: 3}) RETURN m.id AS movie_id, m.name AS movie

预期结果:

movie_id movie
3 "Shadows in Paradise"

查询各部分的含义:

  • USE movie指定本次查询访问的图。
  • MATCH查找符合条件的点,@Movie指定电影类型,{id: 3}指定电影编号。按编号可以区分同名电影。
  • RETURN选择要显示的属性,AS为结果列命名。

movie是图名,Movie是点类型名称,名称区分大小写。

为会话设置工作图

本文通过USE movie为每条查询指定图,该设置只对所在查询生效。也可以先为会话设置工作图:

SESSION SET GRAPH movie

然后省略查询开头的USE movie:

MATCH (m@Movie {id: 3}) RETURN m.id AS movie_id, m.name AS movie

重新连接后,需重新设置工作图。更多信息见 USE。

4. 查询参演演员

在同一控制台中,将电影查询替换为以下语句并运行,查找这部电影的参演演员:

USE movie MATCH (a@Actor)-[:Act]->(m@Movie {id: 3})
RETURN a.id AS actor_id, a.name AS actor, m.name AS movie
ORDER BY actor_id

预期结果:

actor_id actor movie
4826 "Matti Pellonpää" "Shadows in Paradise"
4828 "Sakari Kuosmanen" "Shadows in Paradise"
5999 "Kati Outinen" "Shadows in Paradise"

(a@Actor)-[:Act]->(m@Movie)匹配演员参演电影的关系,箭头从演员指向电影。ORDER BY actor_id按演员编号排序。

退出并恢复查询

在悦数图管理中,通过页面右上角的用户菜单选择退出登录;在 ngql 中执行:exit。退出客户端后,悦数图数据库开发版继续运行,数据保留。需要停止服务时,按停止和重新启动服务操作。

下次登录悦数图管理后,从第 3 步继续查询,无需重新加载movie。

其他连接方式

以下客户端访问同一悦数图数据库开发版实例。数据加载一次后,可在任一客户端继续查询。

使用 ngql 连接和加载示例数据

  1. 在开发机终端中进入compose.yaml所在目录,执行:

    docker compose exec ngql ngql --host graph-cluster --port 9669 --user root
    

    第一个ngql是 Compose 服务名,第二个是容器内的客户端命令。graph-cluster:9669是容器网络内的查询地址,保留该值。

  2. 看到Password提示后,输入root账号的当前密码并按 Enter。

  3. 尚未在/default_schema中加载movie时,执行以下命令;已加载成功时,跳过此步。

    :play movie
    

    开始时显示Playing dataset: movie...,成功时显示Play dataset: movie done.。加载失败时,按数据加载行为检查已创建的对象和错误信息。

接着,在ngql交互窗口中按查询电影和查询参演演员运行示例。

输入多行查询时,首尾各用一行'''包围语句。输入最后一行并按 Enter 后提交:

'''
USE movie MATCH (a@Actor)-[:Act]->(m@Movie {id: 3})
RETURN a.id AS actor_id, a.name AS actor, m.name AS movie
ORDER BY actor_id
'''

:play movie是ngql客户端命令,不能在悦数图管理或内置网页控制台的查询编辑器中执行。

使用内置网页控制台连接

悦数图数据库控制台是 Graph 服务内置的查询界面,与悦数图管理分别提供访问入口:

浏览器所在位置 访问地址
与 Docker 在同一台开发机 http://127.0.0.1:19669/ui/console
在另一台电脑 http://<开发机IP>:19669/ui/console

将<开发机IP>替换为运行 Docker 的机器 IP 地址。配套配置使用 HTTP;修改过19669:19669端口映射时,使用冒号左侧的开发机端口。

在连接窗口中输入用户名root和该账号的当前密码,然后单击 Connect。在编辑器中逐条执行第 3 步和第 4 步的语句,单击运行按钮执行;多行语句直接粘贴。

尚未加载数据时,先通过悦数图管理或ngql加载,再返回此界面查询。

问题排查

图管理访问与登录检查

登录时使用实际密码;compose.yaml中的$$对应实际密码中的单个$。

参数无误时,按检查服务状态确认graphd正在运行。在开发机终端的部署目录中查看 Graph 服务日志,按错误信息排查:

docker compose logs --tail 100 graphd
示例数据加载检查

加载报错时,按数据加载行为检查错误信息和已创建的对象。已成功加载的movie无需再次加载,重复加载可能造成名称冲突。

验证查询连接

需要单独验证连接时,在悦数图管理顶部导航栏中单击控制台,在输入框中粘贴以下语句并单击运行按钮:

RETURN 1 AS result

应返回一列result,值为1。这条语句不依赖示例图数据,可用于检查连接和基本查询是否正常。

查询结果检查

查询报错或结果为空时,先核对图名movie和点类型Movie的大小写,再在同一控制台中逐条执行:

SHOW CURRENT_SCHEMA

结果中path应为/default_schema。如果不是,执行SESSION SET SCHEMA /default_schema切回默认 Schema。

SHOW GRAPH TYPES

结果应列出图类型movie_type。

SHOW GRAPHS

结果应列出图movie,其图类型为movie_type,所属 Schema 为/default_schema。

如果加载曾中断,图名存在也不代表数据完整。先按数据加载行为检查错误和已有对象,再继续查询,避免反复加载造成名称冲突。

下一步