SQL 执行与数据探索

本页覆盖 cz-cli 的 SQL 执行、Schema 和表管理、Job 诊断及工作空间切换相关命令。

cz-cli sql — 执行 SQL

基本用法

同步执行,直接返回结果(默认):

cz-cli -p prod sql "SELECT current_timestamp()"

使用 -e 传入 SQL:

cz-cli -p prod sql -e "SELECT * FROM public.orders LIMIT 10"

从文件读取 SQL:

cz-cli -p prod sql -f query.sql

同步 vs 异步

cz-cli sql
cz-cli sql
默认同步执行(
--sync
--sync
),等待结果返回后退出。对于长时间运行的查询,可以异步提交,获取 job_id 后再查结果:

异步提交,立即返回 job_id:

cz-cli -p prod sql "SELECT * FROM huge_table" --async

查看 job 状态:

cz-cli -p prod sql status <job_id>

或用 job 命令:

cz-cli -p prod job status <job_id> cz-cli -p prod job result <job_id>

写操作保护

INSERT、UPDATE、DELETE、CREATE、DROP 等写操作需要显式加

--write
--write
,防止误操作:

cz-cli -p prod sql --write -e "CREATE TABLE IF NOT EXISTS public.demo (id INT, name STRING)" cz-cli -p prod sql --write -e "INSERT INTO public.demo VALUES (1, 'test')" cz-cli -p prod sql --write -e "DROP TABLE public.demo"

批量执行多条语句

--batch
--batch
依次执行分号分隔的多条语句:

cz-cli -p prod sql --write --batch -e " CREATE TABLE IF NOT EXISTS ods.events (id INT, ts TIMESTAMP, type STRING); INSERT INTO ods.events VALUES (1, current_timestamp(), 'click'); INSERT INTO ods.events VALUES (2, current_timestamp(), 'view'); "

变量替换

--variable KEY=VALUE
--variable KEY=VALUE
注入变量,SQL 中用
%(KEY)s
%(KEY)s
引用,适合模板化查询:

cz-cli -p prod sql "SELECT %(col)s FROM public.orders LIMIT 10" \ --variable col=order_id cz-cli -p prod sql "SELECT * FROM public.orders WHERE dt = '%(dt)s'" \ --variable dt=2026-05-26

查询提示(Query Hint)

--set KEY=VALUE
--set KEY=VALUE
传入查询级别的 hint,例如指定时区:

cz-cli -p prod sql "SELECT current_timestamp()" \ --set cz.sql.timezone=UTC

预执行校验(dry-run)

不实际执行,只做语法检查和 EXPLAIN,适合上线前验证:

cz-cli -p prod sql --dry-run -f deploy.sql

输出控制

不截断长字段:

cz-cli -p prod sql "SELECT * FROM public.orders" --no-truncate

取消行数限制(默认 100 行):

cz-cli -p prod sql "SELECT * FROM public.orders" --no-limit

不输出列名:

cz-cli -p prod sql "SELECT id, name FROM public.orders" --no-header

指定输出格式:

cz-cli -p prod sql "SELECT * FROM public.orders LIMIT 5" -o table cz-cli -p prod sql "SELECT * FROM public.orders LIMIT 5" -o csv

完整参数说明

参数说明默认值
--sync
--sync
/
--no-sync
--no-sync
同步等待结果
true
true
--async
--async
异步提交,立即返回 job_id
false
false
--write
--write
允许写操作(DDL/DML)关闭
--batch
--batch
/
-B
-B
批量执行多条分号分隔的语句
false
false
--variable KEY=VALUE
--variable KEY=VALUE
变量替换,SQL 中用
%(KEY)s
%(KEY)s
--set KEY=VALUE
--set KEY=VALUE
查询 hint
--dry-run
--dry-run
仅 EXPLAIN,不实际执行
false
false
--timeout
--timeout
Job 超时秒数
300
300
--limit
--limit
/
--no-limit
--no-limit
自动截断为 100 行
true
true
--truncate
--truncate
/
--no-truncate
--no-truncate
截断超长字段(3000 字符)
true
true
--header
--header
/
--no-header
--no-header
/
-N
-N
是否输出列名
true
true
-f, --file
-f, --file
从文件读取 SQL
-e, --execute
-e, --execute
SQL 字符串(等价于位置参数)
--stdin
--stdin
从 stdin 读取 SQL
false
false
--job-profile
--job-profile
查询已完成 job 的执行 profile
--schema-context
--schema-context
在响应中附加 schema 信息(供 Agent 使用)
false
false

cz-cli schema — Schema 管理

列出所有 Schema:

cz-cli -p prod schema list

查看 Schema 详情(含表列表):

cz-cli -p prod schema describe public

创建 Schema:

cz-cli -p prod schema create dwd

删除 Schema(需确认):

cz-cli -p prod schema drop old_schema


cz-cli table — 表管理与数据探索

列出当前 Schema 下所有表:

cz-cli -p prod table list

列出指定 Schema 下的表:

cz-cli -p prod -s dwd table list

查看表结构(列名、类型、注释):

cz-cli -p prod table describe public.orders

预览表数据(默认 10 行):

cz-cli -p prod table preview public.orders

查看表行数和最近 job 统计:

cz-cli -p prod table stats public.orders

查看表历史版本(Time Travel 支持):

cz-cli -p prod table history public.orders

从 DDL 创建表:

cz-cli -p prod table create --write "CREATE TABLE public.test (id INT, name STRING)"

删除表(需确认):

cz-cli -p prod table drop public.test


cz-cli job — SQL Job 诊断

异步提交的查询会返回 job_id,用

job
job
命令追踪:

查看 job 状态和执行摘要:

cz-cli -p prod job status <job_id>

获取 job 查询结果(如果还在运行则等待):

cz-cli -p prod job result <job_id>

查看 job 执行 profile(分析性能瓶颈):

cz-cli -p prod sql --job-profile <job_id>


cz-cli workspace — 工作空间切换

查看当前工作空间:

cz-cli -p prod workspace current

列出所有可用工作空间:

cz-cli -p prod workspace list

临时切换工作空间(仅本次命令):

cz-cli -p prod workspace use analytics

持久化切换(保存到 profile):

cz-cli -p prod workspace use analytics --persist


常见使用场景

场景一:探索一张新表

cz-cli -p prod table describe public.orders cz-cli -p prod table preview public.orders cz-cli -p prod table stats public.orders

场景二:调试慢查询

先异步提交:

cz-cli -p prod sql "SELECT * FROM huge_table GROUP BY ..." --async

记下 job_id,查看执行详情:

cz-cli -p prod job status <job_id> cz-cli -p prod sql --job-profile <job_id>

场景三:CI/CD 中执行 DDL

先 dry-run 校验语法:

cz-cli -p prod sql --dry-run -f migrations/v2.sql

确认无误后执行:

cz-cli -p prod sql --write --batch -f migrations/v2.sql

场景四:模板化查询(Agent 场景

cz-cli -p prod sql \ "SELECT COUNT(*) FROM public.orders WHERE dt = '%(dt)s' AND status = '%(status)s'" \ --variable dt=2026-05-26 \ --variable status=completed

相关文档

cz-cli 文档

Lakehouse 相关文档

  • 工作空间 — Workspace 概念、用户管理、权限体系
  • 计算集群 — VCluster 类型选择、规格配置
  • Schema — Schema 创建与管理
  • Time Travel — 历史版本查询(
    table history
    table history
    命令的底层机制)
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询