命令参考

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)
apiDWS API 透传(GET / list-quotas / list-projects)
data数据导入导出(upload / download / show / purge / resume / foreign)
ops运维监控(18 个 SQL 直查 + Autopilot API)
tuneSQL 调优规则配置管理(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 set8 步交互式向导(AK/SK → proxy → region → cluster → endpoint → credentials → DB 检查 → API 检查)
config set webWeb 配置向导(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 listclusters(--api-version v1/v2,默认 v2)、statistics
cluster showinfo、node-types、flavor、elbs、cns、instances、endpoints、volume、encrypt-info、actions <action_name>、instance <instance_id>、nodes、topo-rings、topology、resource-statistics
cluster configurationslist、show <configuration_id>、audit-records、security <configuration_id>
cluster auditlog-records
cluster datasourcelist
cluster workloadstatus、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-outredistribution、redistribution-schemas
cluster scale-upstorage-expand-range
cluster vwlist、tasks、volumes、rings、plans
cluster upgradeavail-versions、records
cluster sql-blockrules <database>
cluster auto-vacuumfulllist、detail <task_id>、configuration
cluster eventsubs、specs、list
cluster alarmsubs、list、statistic、configs
cluster backup-drsnapshots、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按节点内存使用
topsqlTop 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—成功
1INTERNAL / INTERNAL.ERROR / INTERNAL.DEPENDENCY_MISSING内部错误或缺失依赖
2AUTH.FAILED / AUTH.PROCESSAUTH_DISABLED认证失败或进程认证禁用
3WRITE.REQUIRED / WRITE.REJECTED / DANGEROUS.KEYWORD写操作需 --write,或危险操作需 --confirm-dangerous
4NOTFOUND资源不存在
5INVALID_PARAM参数无效
6DB.CONNECTION_ERROR数据库连接错误
7COST.CONFIRM_REQUIRED / COST.BLOCKED代价门需确认或已拦截
8NOTIMPLEMENTED未实现(stub)
1其他/未知未映射错误码兜底