search
DQL DQL命令行客户端

DQL 命令行客户端

简介

DQL 命令行客户端让DataFlux用户可通过客户端的方式进行数据查询,在没有前端页面显示的情况下,可以直接通过客户端查询结果。

下载:

运行

# 初始化
./dqli -init 

# 如果已经有配置,可强制覆盖
./dqli -init -force

完成后,会在 $HOME/.dqli/dqli.toml 创建默认配置:

workspace = "required"   # 工作空间 ID
token = "required"       # 对应工作空间的 cli token

desc = "我的工作空间"     # 可随意改名
host = "kodo.dataflux.cn" # kodo 的公网 API 地址(默认 `kodo.dataflux.cn`)
https = true              # 开启 HTTPS
timeout = "30s"           # 查询超时

max_history = 100         # 历史命令保留个数

log = "$HOME/.dqli/dqli.log" # 日志路径
log_level = "INFO"           # 日志等级

# API 查询参数
[api_options]
  disable_multiple_field = false # 禁用多列查询(默认关闭)
  max_duration = "168h"          # 允许查询的最大时间范围(如 `24h` 表示一天,默认 7 天)
  max_point = 1000               # 允许返回的最大点数(默认 1000,不能超过 5000)

填好对应信息后,即可启动 dqli。

可能碰到的问题:

  • 如果执行时报告 Permission denied,可 chmod +x ./dqli 解决
  • 在 Mac 下,可能会报告一个安全相关的警告。在 System Preference/Security & Privacy 中,允许 dqli 即可
  • Windows 下,建议在系统自带的命令行终端运行(cmd 或 PowerShell),其它 mingw 或 cygwin 终端均未测试

日常使用

日常查询

  • 通过 show_... 可查看数据情况,如 show_measurement()

  • 通过 use_... 可切换使用不同的数据类型,不用手动输入 O::R:: 等类型前缀。执行 use 则清空之前的所有 use_... 设定

  • 通过 Tab 键选择下拉的补全(很多同学不知道...)

  • 多行模式,以 \ 作为单行结尾即可(\ 后可有其它空白字符)

  • clear 清空补全缓存

  • 非交互式查询:

    • 运行单个命令 ./dqli -run 'show_measurement()'
    • 运行 DQL 文件 ./dqli -source path/to/dql-file
  • 支持 Emacs 编辑模式:

    • ctrl+l 清空当前输入行
    • ctrl+a 行首
    • ctrl+$ 行尾
    • ctrl+w 删除单词
    • ...
  • exit/ctrl+d/Q 退出 dqli

查询效果展示

  • pretty 列输出(默认)

    • enable_nil 输出空字段(默认)
    • disable_nil 不输出空字段
  • json JSON 输出

  • play 播放输出

    • 进入播放页面后,数据播放完后会自动退出。中途退出,按 qctrl-c
    • speed_play_1/2/4/8X 1/2/4/8 各种倍速播放
    • 播放模式下,左侧显示数值数据,右侧显示文本数据

查询结果导出到文件

  • file_output 输出到文件(路径为当前目下的 dqli.output
  • file_output_off 关闭文件输出(默认)
  • file_output_truncate 清空输出文件

显示后端查询语句

  • echo_explain 显示后端查询语句
  • echo_explain_off 不显示后端查询语句(默认)

配置查看

  • version 查看版本信息。如果线上有新版本,会提示更新信息
  • info 查看配置信息

DQL 语法

DQL 语法参见这里

TODO

  • 增加 PLAY 模式下的实时播放(流式播放),即类似这种效果 play(cpu) 即播放当前 CPU 指标集上的最新数据。
  • 增加 ctrl+r 查询历史命令
  • 增加结果 grep 功能