Databend Meta 命令行 API
二进制文件 databend-meta 提供了几个便捷命令来访问 Databend Meta 服务的 KVApi。 databend-meta --help 还包括一个关于如何使用这些 CLI 命令的简单指引。
警告
命令行 API 是低级别的 API ,应尽可能避免使用:
- 储存在 databend-meta 的某些数据是相关的,添加或删除可能会破坏这些数据内部一致性。 例如,删除一个还包含表格的数据库。 
- 大部分 databend-mata 数据都是原始字节。 数据解释是在客户端进行的,即通过数据查询进行。 修改数据可能会导致兼容性问题。 
备注
命令行 API 有以下限制:
- 只支持字符串类型的 Key 和 Value。
- 不支持 seq。
设置 foo=bar:
databend-meta --grpc-api-address 1.2.3.4:5678 --cmd kvapi::upsert --key foo --value bar
以下输出是应用此命令之前和之后的状态:
{
  "ident": null,
  "prev": {
    "seq": 18,
    "meta": null,
    "data": [ 98, 97, 114 ]
  },
  "result": {
    "seq": 20,
    "meta": null,
    "data": [ 98, 97, 114 ]
  }
}
设置 foo=bar 并通知 databend-meta 在5秒后删除它:
databend-meta --grpc-api-address 1.2.3.4:5678 --cmd kvapi::upsert --key foo --value bar --expire-after 5
以下输出是应用此命令之前和之后的状态:
{
  "ident": null,
  "prev": {
    "seq": 20,
    "meta": null,
    "data": [ 98, 97, 114 ]
  },
  "result": {
    "seq": 21,
    "meta": {
      "expire_at": 1668996718
    },
    "data": [ 98, 97, 114 ]
  }
}
删除 foo:
databend-meta --grpc-api-address 1.2.3.4:5678 --cmd kvapi::delete --key foo
以下输出是应用此命令之前和之后的状态:
{
  "ident": null,
  "prev": {
    "seq": 22,
    "meta": null,
    "data": [ 98, 97, 114 ]
  },
  "result": null
}
获取 foo:
databend-meta --grpc-api-address 1.2.3.4:5678 --cmd kvapi::get --key foo
以下输出是 foo 的状态:
{
  "seq": 23,
  "meta": null,
  "data": [ 98, 97, 114 ]
}
用 mget 获取多个 Key :foo,bar,wow:
databend-meta --grpc-api-address 1.2.3.4:5678 --cmd kvapi::mget --key foo bar wow
以下输出是每个指定 Key 的状态:
[
  {
    "seq": 23,
    "meta": null,
    "data": [ 98, 97, 114 ]
  },
  null,
  null
]
列出以 foo/ 开头的 Key:
databend-meta --grpc-api-address 1.2.3.4:5678 --cmd kvapi::list --prefix foo/
以下输出是满足条件的 Key 的 Value:
[
  [
    "foo/a",
    {
      "seq": 24,
      "meta": null,
      "data": [ 98, 97, 114 ]
    }
  ],
  [
    "foo/b",
    {
      "seq": 25,
      "meta": null,
      "data": [ 119, 111, 119 ]
    }
  ]
]