嬴图CLI是一款跨平台(Linux/macOS)命令行界面工具,可用于操作嬴图数据库。
准备工作
- 命令行工具
- 点击此处下载嬴图CLI
以下步骤均在Windows上运行的Ubuntu(通过WSL)中演示。
连接嬴图数据库
打开终端程序,前往嬴图CLI(例如ultipa-cli-linux-amd64)所在文件夹。
连接到嬴图数据库:
./ultipa-cli-linux-amd64 -h <host> -u <username> -p <password> -g <graphName>
详情
<host>:嬴图实例的Name服务器的IP地址(或URI)和端口;若连接集群,可用英文逗号分隔多个主机。<username>和<password>:数据库验证信息。<graphName>:选填;要连接的数据库中的图名称。
CLI会创建一个会话,测试连接,并验证指定的图:

之后,你将进入一个会话,可以操作数据库:

使用配置文件
使用一个配置文件(YML/JSO)连接到数据库:
./ultipa-cli-linux-amd64 -c <filepath>

配置文件示例:
host: <host>
username: <username>
password: <password>
graph: <graphName>
{
"host": "<host>",
"username": "<username>",
"password": "<password>",
"graph": "<graphName>"
}
所有标志
嬴图CLI支持以下标志:
标志 |
描述 |
|---|---|
-h, --host |
嬴图实例的Name服务器的IP地址(或URI)和端口;若连接集群,可用英文逗号分隔多个主机 |
-u, --username |
数据库用户名 |
-p, --password |
用户登录密码 |
-g, --graph |
要选择的图名称;默认为default |
-c, --config |
配置文件(YML/JSON)路径 |
--crt |
用于加密传输的本地TSL文件路径 |
-t, --timeout |
连接请求超时阈值(单位:秒);默认2147483647s |
--version |
展示嬴图CLI版本号 |
数据库操作
连接嬴图后,你可以通过GQL/UQL或CLI命令与数据库进行交互。会话将在GQL或UQL模式下运行,支持相应语法的查询。请注意,大多数CLI命令在两种模式下均可执行,除非另有说明。
执行查询
嬴图CLI默认以GQL模式启动会话。
例如,从当前图中检索10个Customer点,请输入以下GQL并按回车:
MATCH (n:Customer) RETURN n LIMIT 10

你将会看到查询结果:

如果想执行UQL查询语句,先运行uql命令切换到UQL模式:

接着就可以执行UQL。例如:
find().nodes({@Customer}) as n return n limit 10

它的查询结果与上面GQL的查询结果一样。
运行gql命令可随时切换回GQL模式:

选择一个图
要选择数据库中的一个图作为当前图,运行use <graphName>命令。例如:

运行这个命令后,你将会看到miniCircle被选中为当前图:

管理事务
管理事务的命令仅在GQL模式下有效。
运行start或begin命令开始一个事务:

你将会进入一个事务:

接着,你可以修改图。例如,插入一个Order点:
INSERT (:Order {_id: "CA-2025-151428", sales_people: "Kelly Williams"})
又插入一条PLACES_ORDER边:
MATCH (cst:Customer {_id: "GB-14530"}), (order:Order {_id: "CA-2025-151428"})
INSERT (cst)-[:PLACES_ORDER {date: "2025-03-30"}]->(order)
你可以运行commit或rollback命令来结束事务:
commit:将事务中的所有操作永久应用到数据库中。rollback:放弃事务中的所有操作,将数据库恢复到事务开始之前的状态。

运行包含查询语句的文件
如果需要一次执行多个查询,可以将这些查询写入一个文件,并在会话中运行该文件。
例如,
MATCH (n:Customer) WHERE n._id = "Dl-13600"
RETURN n;
MATCH (n:Customer)-[:PLACES_ORDER]->(:Order)-[HAS_PRODUCT]->(prod:Product)
WHERE n._id = "Dl-13600"
RETURN COUNT(DISTINCT prod);
该文件应只包含GQL或UQL语句。每条查询都必须以分号(;)结尾,所有查询会按照出现的顺序依次执行。文件不需要特定的扩展名——可以留空,或使用.gql、.uql、.txt等。
使用run <filepath>命令执行文件:

你会看到每一个查询的结果:

管理算法
运行install命令安装一个算法,使用-a指定算法库文件(-so),-i指定算法配置文件(-yml),-hdc指定算法安装的HDC服务器名称:
install -a ./algo/libplugin_sssp.so -i ./algo/sssp.yml -hdc hdc-server-1

你将看到算法安装成功的提示:

运行uninstall命令卸载一个算法,使用-n指定算法名称,-hdc指定算法安装的HDC服务器名称:
uninstall -n sssp -hdc hdc-server-1

你将看到算法卸载成功的提示:

会话操作
切换单行和多行模式
嬴图CLI默认为单行模式,输入命令或GQL/UQL查询后,按回车运行。
按Ctrl + L可切换至多行模式。多行模式下,按回车换行,按Ctrl + E运行。再次按Ctrl + L可切换至单行模式。

执行多条查询
你可以一次性书写多条查询语句,每条查询语句用英文逗号(,)隔开。嬴图CLI会按顺序执行它们并返回所有结果。

选择建议词
嬴图CLI会在输入时提供自动联想。若要选择某个建议关键词,先按键盘方向键下,然后通过上/下在建议列表中移动,按回车即可确认选择。
选择文本、复制与粘贴
要选择终端中的文字:
- Linux终端:按住
Shift,并用鼠标选中内容 - macOS Terminal.app:按住
Fn,并用鼠标选中内容 - macOS iTerm2:按住
Option/Alt,并用鼠标选中内容
选中后:
- 按
Ctrl + Shift + C或Cmd + C(macOS)复制 - 按
Ctrl + Shift + V或Cmd + V(macOS)粘贴
浏览历史
你可以使用键盘方向键上或下在最近执行过的查询与命令之间切换、浏览。
如果需要查看当前会话中最近执行的50条命令或查询,可以使用history命令:

请注意,在与嬴图CLI同一目录下会生成一个.ultipa_cli_history文件,用于记录你执行过的命令和查询历史。
使用clear-history命令可清除会话的历史。
浏览最近的查询结果
嬴图CLI会保留最近的10条运行结果。你可以使用left或right命令在结果之间切换,或通过键盘快捷键Ctrl + Shift + 左/右进行导航。
清除输入
使用键盘快捷键Ctrl + C可清除当前的输入内容。
退出会话
要退出会话并与嬴图断开连接,可以按Ctrl + C两次或Ctrl + D一次。
所有会话命令
连接到数据库会话后,嬴图CLI支持以下命令:
命令 |
参数 |
描述 |
|---|---|---|
gql |
/ | 将会话切换到GQL模式 |
uql |
/ | 将会话切换到UQL模式 |
use |
图名称 | 选择要操作的图 |
start, begin |
/ | 开启一个事务 |
commit |
/ | 提交当前事务 |
rollback |
/ | 回滚当前事务 |
run |
文件路径 | 执行文件中的查询 |
left |
/ | 查看上一条查询结果 |
right |
/ | 查看下一条查询结果 |
history |
/ | 显示当前会话中最近执行的50条命令或查询 |
clear-history |
/ | 清除当前会话的历史记录 |
clear, cls |
/ | 清空终端屏幕 |
help, ? |
/ | 显示帮助信息 |
/ |
/ | 列出所有支持的命令;命令可带或不带开头的/使用 |