命令
更新时间:2024-10-31
本主题主要介绍Mochow CLI 所支持的命令和相应选项,包括一些示例供您参考。
命令参考
在成功连接mochow server后,开始操作数据库。
Database 操作
创建数据库
描述
创建数据库
命令
create database
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > create database -d testdb
create database 'testdb' success
mochow-cli >
查询库列表
描述
列出当前连接下所有的数据库
命令
list databases
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > list databases
+--------------+
| databases |
+==============+
| testdb |
+--------------+
mochow-cli >
删除数据库
描述
删除指定的数据库
命令
drop database
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > drop database -d testdb
drop database 'testdb' success
mochow-cli >
mochow-cli > list databases
no databases found
mochow-cli >
Table 操作
创建表
描述
在指定的库中新建一个表
命令
create table
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-f | --file | 否 | 指定json文件来输入参数,建表需要的json详见 openAPI |
-h | --help | 否 | 查看帮助信息 |
该命令需要输入一个json作为参数来建表,有两种传参方式:
- 控制台输入json并使用';'结尾
- 通过读取指定json文件来输入参数
示例1,控制台输入json参数
mochow-cli > create table
input create table args, end with ';'
...
... {
... "database": "testdb",
... "table": "book",
... "description": "basic test",
... "replication": 1,
... "partition": {
... "partitionType": "HASH",
... "partitionNum": 3
... },
... "enableDynamicField": false,
... "schema": {
... "fields": [
... {
... "fieldName": "id",
... "fieldType": "STRING",
... "primaryKey": true,
... "partitionKey": true,
... "autoIncrement": false,
... "notNull": true
... },
... {
... "fieldName": "bookName",
... "fieldType": "STRING",
... "notNull": true
... },
... {
... "fieldName": "author",
... "fieldType": "STRING"
... },
... {
... "fieldName": "page",
... "fieldType": "UINT32"
... },
... {
... "fieldName": "vector",
... "fieldType": "FLOAT_VECTOR",
... "notNull": true,
... "dimension": 3
... }
... ],
... "indexes": [
... {
... "indexName": "book_name_idx",
... "field": "bookName",
... "indexType": "SECONDARY"
... },
... {
... "indexName": "vector_idx",
... "field": "vector",
... "indexType": "HNSW",
... "metricType": "L2",
... "params": {
... "M": 32,
... "efConstruction": 32
... }
... }
... ]
... }
... }
... ;
create table 'book' success
mochow-cli >
示例2,通过指定json文件来输入参数
下面createTable.json中的内容与上面例子中的json一致。
mochow-cli > create table -f ./example/table/createTable.json
create table 'book' success
mochow-cli >
mochow-cli >
列出所有表
描述
列出指定数据库下所有的表
命令
list tables
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > list tables -d testdb
+-----------+
| tables |
+===========+
| book |
+-----------+
| book2 |
+-----------+
mochow-cli >
删除表
描述
删除指定的表
命令
drop table
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > drop table -d testdb -t book2
drop table 'book2' success
mochow-cli >
mochow-cli > list tables -d testdb
+-----------+
| tables |
+===========+
| book |
+-----------+
mochow-cli >
mochow-cli >
获取表的统计信息
描述
获取表的统计信息
命令
stats table
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > stats table -d testdb -t book
+-------------+---------------------+-------------------+
| rowCount | memorySizeInByte | diskSizeInByte |
+=============+=====================+===================+
| 0 | 2232 | 0 |
+-------------+---------------------+-------------------+
mochow-cli >
查询表详情
描述
查询指定表的详情
命令
describe table
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > describe table -d testdb -t book
table 'book' description:
{
"database": "testdb",
"table": "book",
"createTime": "2024-09-14 11:37:57",
"description": "basic test",
"replication": 1,
"partition": {
"partitionType": "HASH",
"partitionNum": 3
},
"enableDynamicField": false,
"state": "NORMAL",
"schema": {
"fields": [
{
"primaryKey": true,
"partitionKey": true,
"autoIncrement": false,
"notNull": true,
"fieldName": "id",
"fieldType": "STRING"
},
{
"fieldName": "bookName",
"fieldType": "STRING",
"primaryKey": false,
"partitionKey": false,
"autoIncrement": false,
"notNull": true
},
{
"autoIncrement": false,
"notNull": false,
"fieldName": "author",
"fieldType": "STRING",
"primaryKey": false,
"partitionKey": false
},
{
"primaryKey": false,
"partitionKey": false,
"autoIncrement": false,
"notNull": false,
"fieldName": "page",
"fieldType": "UINT32"
},
{
"fieldName": "vector",
"fieldType": "FLOAT_VECTOR",
"dimension": 3,
"primaryKey": false,
"partitionKey": false,
"autoIncrement": false,
"notNull": true
}
],
"indexes": [
{
"indexName": "book_name_idx",
"indexType": "SECONDARY",
"field": "bookName",
"state": "NORMAL"
},
{
"indexName": "vector_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 32
},
"field": "vector",
"state": "INVALID"
}
]
}
}
mochow-cli >
新增表字段
描述
在指定表中新增一个字段,当前仅支持新增标量字段
命令
add field
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-f | --file | 否 | 指定读取特定文件中的json,新增字段需要的json详见 openAPI |
-h | --help | 否 | 查看帮助信息 |
该命令需要输入一个json作为参数来新增字段,有两种传参方式:
- 控制台输入json并使用';'结尾
- 通过读取指定json文件来输入参数
示例1,控制台输入json参数
mochow-cli > add field
input add field args, end with ';'
...
... {
... "database": "testdb",
... "table": "book",
... "schema": {
... "fields": [
... {
... "fieldName": "scalar2",
... "fieldType": "STRING"
... }
... ]
... }
... }
... ;
add field success.
mochow-cli >
示例2,通过指定json文件来输入参数
mochow-cli > add field -f ./example/table/addField.json
add field success.
mochow-cli >
使用 describe table
检查新增的标量字段。
mochow-cli > describe table -d testdb -t book
table 'book' description:
{
"database": "testdb",
"table": "book",
... ...
"schema": {
"fields": [
... ...
{
"partitionKey": false,
"autoIncrement": false,
"notNull": false,
"fieldName": "scalar2",
"fieldType": "STRING",
"primaryKey": false
},
{
"fieldName": "scalar1",
"fieldType": "STRING",
"primaryKey": false,
"partitionKey": false,
"autoIncrement": false,
"notNull": false
}
]
... ...
}
}
mochow-cli >
给表添加别名
描述
给指定的表添加别名
命令
alias table
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-a | --alias | 是 | 要添加的别名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > alias table -d testdb -t book -a book_alias
alias table success.
mochow-cli >
`查看表的详情,aliases中有新增的 book_alias`
mochow-cli > describe table -d testdb -t book
table 'book_segments' description:
{
"database": "testdb",
"table": "book",
... ...
"enableDynamicField": false,
"state": "NORMAL",
"aliases": [
"book_alias"
],
"schema": {
"fields": [
{
mochow-cli >
mochow-cli >
给表移除别名
描述
给指定的表移除别名
命令
unalias table
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-a | --alias | 是 | 要移除的别名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > unalias table -d testdb -t book -a book_alias
unalias table success.
mochow-cli >
mochow-cli >
mochow-cli >
Index 操作
查询索引详情
描述
查询指定索引的详情
命令
describe index
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-i | --index | 是 | 索引名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > describe index -d testdb -t book -i vector_idx
index 'vector_idx' description:
{
"indexName": "vector_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 32
},
"field": "vector",
"state": "INVALID"
}
删除索引
描述
删除指定索引
命令
drop index
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-i | --index | 是 | 索引名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > drop index -d testdb -t book -i vector_idx
drop index 'vector_idx' success
mochow-cli >
mochow-cli > describe index -d testdb -t book -i vector_idx
desc index 'vector_idx' failed, [Code: 91; Message: Index Not Found; RequestId: 43cb102a-7361-4987-b451-dfe36115f08a]
mochow-cli >
mochow-cli >
创建索引
描述
创建索引
命令
create index
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-f | --file | 否 | 指定读取特定文件中的json,创建索引需要的json详见 openAPI |
-h | --help | 否 | 查看帮助信息 |
该命令需要输入一个json作为参数来创建索引,有两种传参方式:
- 控制台输入json并使用';'结尾
- 通过读取指定json文件来输入参数
示例1,控制台输入json参数
mochow-cli > create index
input create index args, end with ';'
...
... {
... "database": "testdb",
... "table": "book",
... "indexes": [
... {
... "field": "vector",
... "indexName": "vector_idx",
... "indexType": "HNSW",
... "metricType": "L2",
... "params": {
... "M": 32,
... "efConstruction": 200
... }
...
... }
... ]
... }
... ;
create indexes for table 'book' success
mochow-cli >
`查看新建的索引`
mochow-cli >
mochow-cli > describe index -d testdb -t book -i vector_idx
index 'vector_idx' description:
{
"indexName": "vector_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 200
},
"field": "vector",
"state": "INVALID"
}
mochow-cli >
示例2,通过指定json文件来输入参数
mochow-cli > create index -f ./example/index/createIndex.json
create indexes for table 'book' success
mochow-cli >
修改索引
描述
修改向量索引信息,目前只支持修改autoBuild属性。
命令
modify index
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-f | --file | 否 | 指定读取特定文件中的json,修改索引需要的json详见 openAPI |
-h | --help | 否 | 查看帮助信息 |
该命令需要输入一个json 作为参数来修改索引,有两种传参方式:
- 控制台输入json并使用';'结尾
- 通过读取指定json文件来输入参数
示例1,控制台输入json参数
mochow-cli > modify index
input modify index args, end with ';'
...
... {
... "database": "book",
... "table": "book_segments",
... "index": {
... "indexName": "vector_idx",
... "autoBuild": true,
... "autoBuildPolicy": {
... "policyType": "timing",
... "timing": "2024-10-01 12:00:00"
... }
... }
... }
...
... ;
modify index 'vector_idx' success
mochow-cli >
mochow-cli >
`查看修改后的索引`
mochow-cli >
mochow-cli > describe index -d testdb -t book -i vector_idx
index 'vector_idx' description:
{
"indexName": "vector_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 200
},
"field": "vector",
"state": "INVALID",
"autoBuild": true,
"autoBuildPolicy": {
"policyType": "timing",
"timing": "2024-10-01 12:00:00"
}
}
mochow-cli >
示例2,通过指定json文件来输入参数
mochow-cli > modify index -f ./example/index/modifyIndex.json
modify index 'vector_idx' success
mochow-cli >
重建索引
描述
重建指定索引,仅支持重建向量索引。
命令
rebuild index
参数
选项 | 全名 | 是否必传 | 说明 |
---|---|---|---|
-d | --db | 是 | 数据库名 |
-t | --table | 是 | 表名 |
-i | --index | 是 | 索引名 |
-h | --help | 否 | 查看帮助信息 |
示例
mochow-cli > rebuild index -d testdb -t book -i vector_idx
rebuild index 'vector_idx' success
mochow-cli >
`重建索引后,可以看到,索引的状态从 INVALID 转为 BUILDING, 最后转为 NORMAL`
mochow-cli >
mochow-cli > describe index -d testdb -t book -i vector_idx
index 'vector_idx' description:
{
"indexName": "vector_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 200
},
"field": "vector",
"state": "BUILDING"
}
mochow-cli >
mochow-cli > describe index -d testdb -t book -i vector_idx
index 'vector_idx' description:
{
"indexName": "vector_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 200
},
"field": "vector",
"state": "NORMAL"
}