SonnetDB 的 sndb 命令行工具是日常管理和数据操作的核心入口。除了基本的数据库操作外,CLI 还提供了强大的配置文件管理、交互式 REPL 环境和跨平台支持。本文将深入介绍这些高级用法,帮助您充分发挥 CLI 的威力。
sndb 支持通过 sndb config 命令管理多个配置文件,方便在不同环境之间切换。配置文件采用 TOML 格式,存储了连接地址、默认数据库、认证信息等参数。
# 设置当前 profile 的连接地址
sndb config set server.address "sonnetdb+http://192.168.1.100:8080"
# 设置默认数据库
sndb config set server.default_database "production"
# 设置认证 Token
sndb config set server.token "sndb_abc123def456"
# 查看当前配置
sndb config list
# 查看特定配置项
sndb config get server.address
# 使用指定配置文件启动
sndb --config ~/.sndb/production.toml
配置文件的层级结构支持全局配置(用户目录)和项目本地配置(当前目录下的 .sndb/config.toml),本地配置优先级更高。这种设计让团队可以在项目中共享连接配置,同时保留个人偏好的独立设置。
sndb repl 命令启动交互式命令行环境,支持智能提示、历史记录和多行输入等特性,是数据探索和分析的利器。
# 启动 REPL(使用默认配置)
sndb repl
# 启动 REPL 并指定数据库
sndb repl --database testdb
进入 REPL 后,以下技巧能大幅提升操作效率:
-- 基础操作:列出所有测量表
> SHOW MEASUREMENTS;
-- 描述表结构
> DESCRIBE machine_metrics;
-- 使用 \ 命令控制 REPL
> \timing on -- 开启执行时间显示
> \echo on -- 开启回显
> \multiline on -- 开启多行模式,支持复杂 SQL
-- 多行模式示例(开启后支持跨行输入)
> SELECT time, temperature, humidity
FROM sensor_data
WHERE device_id = 'sensor-01'
AND time >= 1713676800000
ORDER BY time DESC
LIMIT 10;
-- 查看历史命令
> \history
-- 清除屏幕
> \clear
sndb CLI 使用 .NET 10 构建,原生支持 Windows、Linux 和 macOS 三大平台。安装方式多样:
# Windows (使用 dotnet tool)
dotnet tool install --global SonnetDB.CLI
# Linux (使用 DEB 包)
sudo dpkg -i sndb-cli_0.6.0_amd64.deb
# macOS (使用 Homebrew)
brew tap sonnetdb/tap
brew install sndb
# 验证安装
sndb --version
sndb --help
除了交互模式外,sndb 支持直接从文件执行 SQL 脚本,适合自动化任务和 CI/CD 集成:
# 执行 SQL 脚本文件
sndb execute --file scripts/migration.sql
# 管道模式:从标准输入读取 SQL
echo "SELECT count(*) FROM sensor_data" | sndb execute
# 格式化输出为 JSON
sndb execute --file query.sql --format json
# 输出为 CSV(适合导入电子表格)
sndb execute --file query.sql --format csv --output result.csv
CLI 还内置了性能诊断工具,帮助您快速定位问题:
# 查看数据库统计信息
sndb stat
# 列出所有数据段及其大小
sndb segments list
# 手动触发合并操作
sndb segments compact
# 查看慢查询日志
sndb query --slow --limit 10
总结而言,SonnetDB 的 sndb CLI 不仅是一个简单的数据库客户端,更是一个功能完备的管理工具集。通过灵活的配置管理、高效的 REPL 环境和跨平台支持,无论您是开发者、DBA 还是运维工程师,都能在工作中得心应手。