查询与写入
更新时间:2026-07-24
写入
Bash
1# 写入单行 Line Protocol
2tsdb-cli write -d mydb \
3 'cpu,host=server01 usage=0.64'
4
5# 从文件批量写入
6tsdb-cli write -d mydb -f data.lp
7
8# 从标准输入写入
9cat data.lp | tsdb-cli write -d mydb
10
11# 指定毫秒精度
12tsdb-cli write -d mydb -p ms \
13 'cpu,host=server01 usage=0.64 1620000000000'
服务端默认接受部分写入。CLI 遇到部分写入结果时,请检查失败行,不要在未确认成功范围前直接重放整批数据。需要整批拒绝语义时,请使用 HTTP API 并设置 accept_partial=false。
查询
Bash
1# 直接执行 SQL
2tsdb-cli query -d mydb \
3 'SELECT * FROM cpu ORDER BY time DESC LIMIT 10'
4
5# 从文件读取 SQL
6tsdb-cli query -d mydb -f query.sql
7
8# 输出 CSV
9tsdb-cli query -d mydb --format csv \
10 'SELECT * FROM cpu'
11
12# 输出 Parquet 文件
13tsdb-cli query -d mydb --format parquet \
14 -o result.parquet 'SELECT * FROM cpu'
15
16# 从标准输入读取 SQL
17echo 'SELECT 1' | tsdb-cli query -d mydb
18
19# 查看当前令牌可见的 Database 和当前 Database 中可见的 Table
20tsdb-cli query -d mydb 'SHOW DATABASES'
21tsdb-cli query -d mydb 'SHOW TABLES'
常用选项:
query:--format支持pretty(默认表格)、json、jsonl、csv和parquet;输出parquet时必须用-o(即--output)指定输出文件;-f(即--file)从文件读取 SQL。write:-f(即--file)从文件读取 Line Protocol;-p(即--precision)指定时间戳精度。
注意 query / write 的 -f 是 --file,而 table create 的 -f 是 --fields;脚本中建议使用长参数,避免混淆。
query 可以简写为 q,write 可以简写为 w。查询大范围历史数据时,请显式限制时间范围和返回行数。
评价此篇文章
