命令参考
hwc-dws-cli 由 Click 构建,根命令为 cli,注册 10 个顶层命令。所有命令自动注入全局选项,可在命令行的任意位置使用。
顶层命令
| 命令 | 说明 |
sql | 执行 SQL 语句(DQL/DML/DDL/DCL/TCL) |
check-con | 检查数据库连接 |
config | 配置管理(show / set / switch-cluster / switch-region) |
meta | 元数据查询(schema / table / column)+ semantic 语义构建 |
audit | 审计日志管理(show / search / clean) |
cluster | 集群管理(15 个只读查询子组,DWS OpenAPI) |
api | DWS API 透传(GET / list-quotas / list-projects) |
data | 数据导入导出(upload / download / show / purge / resume / foreign) |
ops | 运维监控(18 个 SQL 直查 + Autopilot API) |
tune | SQL 调优规则配置管理(tune config) |
全局选项
以下选项由 FlexibleFormatGroup 自动注入到所有子命令,可在命令任意位置使用(前缀 / 命令后 / 参数后):
| 选项 | 说明 |
--format <fmt> | 输出格式:json(默认)/ table / csv / vertical |
--write | 放行写操作(INSERT/UPDATE/DELETE/DDL 等)。SELECT 默认放行无需此选项。 |
--confirm-dangerous | 放行危险操作(DROP TABLE/TRUNCATE/DROP DATABASE 等),需与 --write 同时使用 |
--cluster-id <id> | 覆盖集群 ID(默认取 config active.cluster_id) |
--dry-run | 预览模式:sql 为 EXPLAIN VERBOSE,cluster 为 API 调用预览 |
SQL 守卫
用户输入的 SQL 经 PermissionGate 检查:SELECT 默认放行;写操作(INSERT/UPDATE/DELETE/DDL/DCL)需
--write;含危险关键字(DROP/TRUNCATE/GRANT ALL 等)需再加
--confirm-dangerous。无法解析的 SQL 按 write 处理(fail-closed)。内置 catalog SQL 绕过守卫。
sql — SQL 执行
参数:--exec <SQL> / --file <path>(二选一)、--param(可重复)、--dry-run
# 执行查询(默认 JSON Envelope 输出)
hwc-dws-cli sql --exec "SELECT current_database()" --format table
# 执行 SQL 文件
hwc-dws-cli sql --file script.sql
# EXPLAIN VERBOSE 干跑,不实际执行
hwc-dws-cli sql --exec "DELETE FROM t WHERE id=1" --dry-run
# 写操作
hwc-dws-cli sql --exec "INSERT INTO t VALUES (1)" --write
# 危险操作
hwc-dws-cli sql --exec "DROP TABLE t" --write --confirm-dangerous
check-con — 连接检查
hwc-dws-cli check-con --format table
config — 配置管理
| 子命令 | 说明 |
config show | 显示当前配置(敏感字段脱敏) |
config set | 8 步交互式向导(AK/SK → proxy → region → cluster → endpoint → credentials → DB 检查 → API 检查) |
config set web | Web 配置向导(127.0.0.1) |
config set clean | 备份当前配置并重置为空 |
config switch-cluster list | 列出当前 region 的集群 |
config switch-cluster use <name> | 切换集群(交互式三向验证) |
config switch-region <region> | 切换 region 并重置 active cluster |
meta — 元数据查询
| 子命令 | 说明 |
meta list-schemas | 列出所有 schema |
meta list-tables [--schema <s>] | 列出表(可按 schema 过滤) |
meta list-databases | 列出所有数据库 |
meta describe <table> [--schema <s>] | 表结构富信息(8 段:基本信息/时间戳/存储/分布/分区/列/索引/扩展信息),支持 schema.table 输入 |
meta search-tables <keyword> | 按名称关键词搜索表(ILIKE) |
meta search-columns <keyword> | 按名称关键词搜索列(ILIKE) |
meta list-partitions <table> [--schema <s>] | 列出表分区 |
meta export-ddl <table> [--schema <s>] | 导出表 DDL(CREATE TABLE) |
meta export-meta <table> [--schema <s>] | 导出单表元数据 |
hwc-dws-cli meta list-tables --schema public
hwc-dws-cli meta describe ads_live.ads_anchor_ranking --format table
hwc-dws-cli meta describe ads_anchor_ranking --schema ads_live
meta semantic — 语义元数据
| 子命令 | 说明 |
meta semantic build [--schema <s>] [--db-name <n>] | 触发 8 阶段语义构建 pipeline |
meta semantic get <table> [--schema <s>] | 获取表的语义元数据 |
meta semantic set <table> [--description] [--use-cases] | 存储表的语义描述 |
meta semantic list-missing [--schema <s>] | 列出尚无语义元数据的表 |
meta semantic search <pattern> | 按模式搜索语义元数据(LIKE / FTS5) |
meta semantic delete <table> [--schema <s>] | 删除表的语义元数据 |
meta semantic show [<table>] [--schema <s>] [--scope overview|table|joins|udfs] | 语义概览或表详情 |
hwc-dws-cli meta semantic build --schema public
hwc-dws-cli meta semantic show demo --schema public --scope table
audit — 审计管理
| 子命令 | 说明 |
audit show [--limit N] [--action <s>] | 查看最近审计条目(默认 20 条,按 seq 降序) |
audit search [--action] [--actor] [--from] [--to] [--limit] | 多维度过滤审计日志 |
audit clean [--days N] | 清理过期审计条目(默认保留 30 天) |
hwc-dws-cli audit show --limit 50 --action SQL
hwc-dws-cli audit search --action API --from 2026-10-01 --to 2026-10-13
hwc-dws-cli audit clean --days 7
cluster — 集群管理
只读查询命令组,全部基于 gateway/api_defs.py 的 77 条 DWS OpenAPI 端点。集群 ID 自动从 config 注入,可用 --cluster-id 覆盖。--dry-run 输出 endpoint/path/params 预览。
| 子命令组 | 命令 |
cluster list | clusters(--api-version v1/v2,默认 v2)、statistics |
cluster show | info、node-types、flavor、elbs、cns、instances、endpoints、volume、encrypt-info、actions <action_name>、instance <instance_id>、nodes、topo-rings、topology、resource-statistics |
cluster configurations | list、show <configuration_id>、audit-records、security <configuration_id> |
cluster audit | log-records |
cluster datasource | list |
cluster workload | status、queue-jobs、rules、plans(list/show <plan_id>/logs <plan_id>/stage <plan_id> <stage_id>)、pools(list/show <pool_id>/users <pool_name>/plans <pool_name>) |
cluster scale-out | redistribution、redistribution-schemas |
cluster scale-up | storage-expand-range |
cluster vw | list、tasks、volumes、rings、plans |
cluster upgrade | avail-versions、records |
cluster sql-block | rules <database> |
cluster auto-vacuumfull | list、detail <task_id>、configuration |
cluster event | subs、specs、list |
cluster alarm | subs、list、statistic、configs |
cluster backup-dr | snapshots、snapshot <snapshot_id>、snapshot-statistics、cluster-snapshots、snapshot-policies、snapshot-policy <policy_id>、snapshot-policy-plan、cross-region-snapshot-policies、check-name <name>、roach-configs、databases、database-schemas <database>、cross-regions、cross-region-policies、backup-files <snapshot_id>、disaster-recoveries、disaster-recovery <id>、disaster-recovery-clusters、restore-schemas <snapshot_id> <database>、disaster-recovery-progress <id> |
hwc-dws-cli cluster list clusters --format table
hwc-dws-cli cluster show info --cluster-id xxx-xxx-xxx
hwc-dws-cli cluster workload pools show my_pool
hwc-dws-cli cluster backup-dr snapshots
hwc-dws-cli cluster show info --dry-run # 预览 API 调用
api — API 透传
| 子命令 | 说明 |
api GET <path> | 通用 GET 请求任意 DWS REST API 路径,占位符 {project_id}/{cluster_id} 自动填充 |
api list-quotas | 列出 DWS 配额 |
api list-projects [--domain-id] | 列出 IAM 项目 |
hwc-dws-cli api GET /v1.0/{project_id}/clusters
hwc-dws-cli api GET /v1.0/{project_id}/clusters/{cluster_id}/snapshots
hwc-dws-cli api list-quotas
data — 数据导入导出
| 子命令 | 说明 |
data upload --file <f> --table <t> [--schema] [--copy] [--copy-options] | 上传数据文件到表。支持批量 INSERT 与 COPY FROM STDIN(--copy,psycopg2 copy_expert)两种模式 |
data download --file <f> [--table|--query] [--max-record] [--max-size] | 导出表数据或查询结果到 CSV/JSON 文件 |
data show --table <t> [--limit N] | 查看表样例数据 |
data purge --table <t> | 清空表(TRUNCATE,需 --confirm-dangerous) |
data resume --task-id <id> | 恢复暂停的传输会话 |
data foreign create | 创建外表(OBS/HDFS,--type obs|hdfs,自动生成 DISTRIBUTE BY) |
data foreign import | 从外表导入数据到本地表(INSERT INTO ... SELECT) |
data foreign export | 将本地表数据导出到外表 |
hwc-dws-cli data upload --file data.csv --table fact_sales --schema dwd
hwc-dws-cli data upload --file big.csv --table fact --copy --copy-options "delimiter=|,null=\\N"
hwc-dws-cli data download --query "SELECT * FROM fact_sales" --file out.csv
hwc-dws-cli data purge --table stg_sales --confirm-dangerous
ops — 运维监控
ops --help 分两段展示:SQL 直查(集群实时状态)与 Autopilot API(DMS 监控)。
SQL 直查(18 个只读命令)
| 命令 | 说明 |
session | 活动会话(非 idle) |
lock | 当前锁 |
active | 活动查询 |
conn | 连接汇总(按 database/user/addr) |
pool | 连接池汇总 |
queue | 工作负载队列状态 |
user | 数据库用户与角色 |
detail [--pid] | 会话详情 |
perf | 数据库性能统计 |
wait | 等待事件会话 |
wait-node | 按节点等待事件 |
respool | 资源池 |
deadlock | 潜在死锁(未授予事务锁) |
tablelock | 表级锁 |
lwlock | 轻量锁等待 |
memory | 按节点内存使用 |
topsql | Top SQL(按总耗时) |
guc [--name] | GUC 参数(pg_settings) |
Autopilot API(DMS 监控)
| 命令 | 说明 |
metric <name> [--from] [--to] [--limit] | 集群指标数据(时间戳 ms,默认近 1 小时) |
metric-list [--keyword] | 可用 DWS 指标名列表 |
host-list [--instance-name] | 集群主机概览 |
alarm show [--from] [--to] [--time-zone] | 告警列表(DBSEvent API,默认近 6 天) |
alarm search [--keyword] [--cluster] [--severity] [--status] | 告警搜索(客户端过滤) |
hwc-dws-cli ops session --format table
hwc-dws-cli ops topsql --limit 20
hwc-dws-cli ops metric cpu_usage --format table
hwc-dws-cli ops host-list --format table
hwc-dws-cli ops alarm search --severity urgent --format table
tune — SQL 调优配置
| 子命令 | 说明 |
tune config show | 显示全部规则 + 启用/禁用状态 + 自定义规则(总规则数 118:46 语法 + 27 执行计划 + 11 PERFORMANCE 扩展 + 34 对象) |
tune config set <key> <value> | 设置配置项(如 global.tuning.disabled_rules "UPR-001,UOR-15") |
tune config add-rule [--file] [--id] [--name] ... | 添加自定义规则 |
tune config remove-rule <rule_id> | 删除自定义规则 |
hwc-dws-cli tune config show
hwc-dws-cli tune config set global.tuning.disabled_rules "UPR-001,UOR-15"
hwc-dws-cli tune config add-rule --file custom_rule.yaml
hwc-dws-cli tune config remove-rule "CUSTOM-001"
退出码
退出码由 Envelope.exit_code 映射:
| 退出码 | 错误码 | 含义 |
| 0 | — | 成功 |
| 1 | INTERNAL / INTERNAL.ERROR / INTERNAL.DEPENDENCY_MISSING | 内部错误或缺失依赖 |
| 2 | AUTH.FAILED / AUTH.PROCESSAUTH_DISABLED | 认证失败或进程认证禁用 |
| 3 | WRITE.REQUIRED / WRITE.REJECTED / DANGEROUS.KEYWORD | 写操作需 --write,或危险操作需 --confirm-dangerous |
| 4 | NOTFOUND | 资源不存在 |
| 5 | INVALID_PARAM | 参数无效 |
| 6 | DB.CONNECTION_ERROR | 数据库连接错误 |
| 7 | COST.CONFIRM_REQUIRED / COST.BLOCKED | 代价门需确认或已拦截 |
| 8 | NOTIMPLEMENTED | 未实现(stub) |
| 1 | 其他/未知 | 未映射错误码兜底 |