ts-cli 是 openGemini 的官方交互式命令行工具,支持将多种格式的数据文件导入到 openGemini 数据库中。
支持的导入格式#
line_protocol(默认):InfluxDB 兼容的行协议文本文件csv:逗号分隔值文件,仅支持通过列写协议导入jsoni:InfluxDB JSON 格式jsonp:Prometheus JSON 格式
基本用法#
ts-cli import --format <格式> --host <主机> --port <端口> --path <文件路径> --database <数据库> -m <measurement> -r <保留策略>
示例(导入 CSV 文件):
ts-cli import --format csv --host localhost --port 8086 --path file.csv --precision=s --database db0 -m m0 -r autogen
常用参数说明#
--host, -H:openGemini 服务主机(默认 localhost)--port, -p:openGemini 服务端口(默认 8086)--username, -u和--password, -P:连接 openGemini 的用户名和密码(需同时指定)--ssl, -s:启用 HTTPS 连接--cacert, -c:CA 证书路径--cert, -C和--cert-key, -k:客户端证书及密钥--insecure-tls, -i:忽略 SSL 验证--insecure-hostname, -I:忽略主机名校验--column-write, -w:使用高性能列写协议(CSV 格式必须开启)--column-write-port, -W:列写协议端口--batch-size, -b:批量写入的条数--path, -T:导入文件路径--format, -f:导入文件格式(见上文)--tags:指定 tags 字段名(CSV/JSON 格式需指定)--fields:指定 fields 字段名(CSV/JSON 格式需指定)--measurement, -m:指定 measurement 名称--database, -d:指定数据库名称--time, -t:指定时间戳字段名(默认 time)--retention-policy, -r:指定保留策略(默认 autogen)--precision, -U:时间戳精度,支持 ns、us、ms、s,默认 ns
完整参数列表可通过 ts-cli import --help 查看。
导入流程说明#
- 行协议(line_protocol):按行读取文本,批量写入数据库,支持 HTTP 或列写协议。
- CSV:仅支持列写协议,需指定数据库、保留策略、measurement、tags、fields、time 字段。
- JSON(Prometheus/InfluxDB):通过 JSON 解码,转换为行协议格式后写入,仅支持行写协议。
- 所有格式均支持批量导入,支持时间戳精度转换(如 RFC3339 字符串自动转换为 Unix 纳秒)。
安装#
推荐使用如下命令安装最新版 ts-cli:
go install github.com/openGemini/openGemini-cli/cmd/ts-cli@latest
注意事项#
- CSV 文件导入必须使用
--column-write并正确配置 tags、fields、time 字段。 - JSON 格式导入仅支持行写协议,需指定 measurement、database、fields、tags 等参数。
- 用户名和密码需同时指定,证书和密钥也需成对指定。
- 支持的时间戳精度有 ns、us、ms、s,默认 ns。
- 导入过程中会自动创建数据库(如不存在)。
更多详细用法和参数说明,请参考 ts-cli import --help 或官方文档。