Hologres AI Plugins 包含 Hologres CLI 命令行工具与 Hologres Agent Skills 技能包。CLI 集成 60+ 命令,覆盖实例连接、表与动态表管理、SQL 执行、数据导入导出、GUC 调参、Volume 存储、AI 内容生成等场景;Agent Skills 适配 Claude Code、Cursor、Codex 等主流 AI 编程工具,让 Agent 直接调用 CLI 完成查询优化、慢查询排查、Schema 设计等任务。本文介绍 CLI 与 Agent Skills 的安装、配置和使用方法。
概述
Hologres CLI 是 Hologres 实时数仓的命令行管理工具,集成实例管理、SQL 执行、Schema 操作、数据导入导出、动态表生命周期管理、AI 内容生成等能力,所有命令均输出结构化结果(JSON / Table / CSV / JSONL),既适合人工运维也适合 Agent 自动调用。
Hologres Agent Skills 是适配主流 AI 编程工具的技能包集合。安装后,Claude Code、Cursor、Codex 等工具的 Agent 可以基于 Skills 描述的最佳实践,自动调用 Hologres CLI 完成查询优化、Schema 设计、慢查询诊断、UV 计算等任务。
适用场景
在终端或脚本中批量管理 Hologres 实例的表、动态表、Schema 与权限,替代控制台逐项点击。
在 CI/CD 流水线中自动执行数据导入、动态表刷新、Schema 变更,并通过 JSON 输出对接监控系统。
在 Claude Code、Cursor 等 AI 工具中接入 Hologres,使用自然语言完成 SQL 优化、慢查询分析、UV 去重方案设计等场景。
通过 CLI 调用 Hologres 的 AI 函数,生成文本、图像、视频内容并直接落到 Volume 关联的 OSS 路径。
与其他工具的关系
工具 | 定位 | 选型建议 |
Hologres 控制台 | 图形化运维入口 | 单次手动操作、查看监控、申请实例时使用 |
psql / 通用 PostgreSQL 客户端 | 原生 SQL 交互 | 交互式探查数据、调试单条 SQL 时使用 |
Hologres CLI | 命令行管理 + 安全护栏 + 结构化输出 | 脚本化运维、批量管理、Agent 调用、CI/CD 集成时使用 |
Hologres Agent Skills | CLI 之上的 AI 工具能力扩展 | 在 AI 编程工具中以自然语言方式驱动 CLI 时使用 |
前提条件
使用 Hologres CLI 与 Agent Skills 之前,需准备以下资源与权限:
资源 | 要求 | 是否必需 |
Hologres 实例 | 已开通并处于运行状态。基础命令要求实例版本 V2.2 及以上;动态表完整生命周期管理(含 V3.1 升级、Serverless 计算等)要求实例版本 V3.1 及以上。 | 必需 |
数据库账号 | 实例上的数据库账号(用户名/密码),或具备目标实例 Hologres 操作权限的 RAM 用户 AccessKey。 | 必需 |
网络连通 | 运行 CLI 的环境可访问目标实例 Endpoint。本地办公网络选公网;阿里云 VPC 内 ECS 选 vpc;经典网络场景选 intranet。 | 必需 |
Python 环境 | Python 3.11 或更高版本。 | 必需 |
操作系统 | Linux、macOS 或 Windows 均支持。 | 必需 |
RAM 角色 | 使用 AI 内容生成功能时,需创建可被 Hologres 服务扮演的 RAM 角色(推荐 | AI 功能必需 |
OSS Bucket | 使用 AI 内容生成功能时,需准备 OSS Bucket,作为 Volume 的存储后端,承接生成的图像、视频、文件。 | AI 功能必需 |
大模型 API Key | 使用 AI 内容生成功能时,需准备所选模型的 API Key(如百炼、通义千问等服务的密钥)。 | AI 功能必需 |
推荐使用 uv 作为 Python 包管理器,安装速度更快、依赖隔离更彻底。
安装 Hologres CLI
提供 3 种安装方式,按使用场景选择。
安装方式 | 说明 | 适用场景 |
一键安装脚本(推荐) | 自动检测 Python 环境、安装 uv、配置 PATH,并完成 CLI 安装。 | 首次使用、不熟悉 Python 环境 |
pip 安装 | 在已有 Python 环境中通过 pip 安装。 | 已有 Python 项目、CI/CD 镜像 |
uv 安装 | 通过 uv tool 全局安装,依赖隔离,升级方便。 | 本地多项目共用 CLI |
方式一:一键安装脚本(推荐)
执行以下命令完成自动安装:
curl -sSf https://raw.githubusercontent.com/aliyun/hologres-ai-plugins/master/hologres-cli/install.sh | sh安装完成后,重新加载 shell 以使 PATH 生效:
source ~/.bashrc # bash 用户
source ~/.zshrc # zsh 用户方式二:pip 安装
在已配置好的 Python 3.11+ 环境中,执行:
pip install hologres-cli方式三:uv 安装
使用 uv tool 全局安装,CLI 与项目依赖完全隔离:
uv tool install hologres-cli验证安装
执行以下命令查看 CLI 版本,输出版本号即表示安装成功:
hologres --version配置连接
CLI 通过 Profile 管理多套连接。每个 Profile 包含连接 Hologres 实例所需的全部信息(实例 ID、网络类型、认证方式、数据库等),支持在多环境(开发 / 预发 / 生产)之间快速切换。
交互式配置向导
首次使用时执行以下命令启动向导:
hologres config向导按顺序提示输入以下 9 项参数:
Profile 名称:标识一组连接配置,例如
default、dev、prod。命名仅允许字母、数字、下划线和连字符,区分大小写;同名 Profile 会被覆盖。Region:实例所在地域 ID,例如
cn-hangzhou、cn-shanghai、cn-beijing。Instance ID:Hologres 实例 ID,格式为
hgprecn-cn-xxx,可在 Hologres 控制台实例详情页获取。网络类型:从
internet(公网)、intranet(经典网络内网)、vpc(专有网络)中选择,详见下方网络类型选型说明。认证方式:
basic(数据库账号用户名/密码)或ram(RAM 用户 AccessKey)。数据库名:实例下的目标数据库名称。
Warehouse:目标计算组名称。
Endpoint:可选项。留空时 CLI 根据 Instance ID、Region 和网络类型自动拼接,详见下方 Endpoint 自动拼接规则。
Port:默认 80,对应 Hologres 的 PG Wire 协议端口。VPC 与公网均使用此端口。如需启用 SSL/TLS,需在 Endpoint 或专用参数中显式声明(详见 Hologres 实例连接文档)。
向导完成后,配置写入 ~/.hologres/config.json。建议立即执行验证:
hologres status密码与 AccessKey 使用 Fernet 算法加密后写入 ~/.hologres/config.json。加密密钥单独保存在 ~/.hologres/.cipher_key,文件权限设置为 0600(仅当前用户可读写)。请勿手动改动这两个文件,并将其纳入与个人密码同等级的安全保护。
网络类型选型
网络类型决定了 CLI 如何拼接 Endpoint 与连接路径,错误的选择会导致连接超时或域名解析失败。按以下规则选择:
网络类型 | 适用环境 | 说明 |
internet | 本地开发机、办公网络、家庭网络等无法直连阿里云内网的环境 | 通过公网访问,需在 Hologres 控制台开通公网域名并将客户端 IP 加入白名单 |
vpc(推荐内网优先) | 阿里云 VPC 内的 ECS、容器服务、函数计算、DataWorks 等 | 主流推荐,要求客户端与 Hologres 实例在同一 VPC 或已打通互联 |
intranet | 阿里云经典网络下的 ECS(已较少使用) | 经典网络遗留场景。新项目请优先选择 vpc |
Profile 管理
配置完成后,使用以下命令查看、切换、修改 Profile:
# 列出所有 Profile
hologres config list
# 查看当前 Profile 详情
hologres config show
# 切换 Profile
hologres config switch prod
# 直接设置配置项
hologres config set database my_new_db
hologres config set warehouse my_warehouse
# 获取配置项
hologres config get database
# 删除 Profile
hologres config delete old_profile --confirm多环境切换
使用 --profile 参数指定本次命令使用的 Profile,无需先切换默认 Profile,适合在脚本中并行操作多套环境:
hologres --profile dev status
hologres --profile staging sql run "SELECT 1"
hologres --profile prod schema tablesEndpoint 自动拼接规则
Endpoint 留空时,CLI 根据 instance_id、region_id 和网络类型自动拼接 Host:
网络类型 | Host 格式 |
internet |
|
intranet |
|
vpc |
|
CLI 基础用法
检查连接状态
执行以下命令查看当前 Profile 是否能连接 Hologres:
hologres status成功时返回类似如下结果:
{
"ok": true,
"data": {
"connected": true,
"version": "Hologres 2.2.0.x",
"database": "my_db"
}
}连接失败时 ok 字段为 false,并返回 CONNECTION_ERROR 错误码与原因描述,可据此排查网络、白名单或认证问题。
输出格式
CLI 支持 4 种输出格式,使用 -f 全局参数指定,默认输出 JSON:
hologres -f json schema tables # JSON,默认格式,便于 Agent 与脚本解析
hologres -f table schema tables # 终端表格,便于人工查看
hologres -f csv schema tables # CSV,便于导出二次处理
hologres -f jsonl schema tables # JSON Lines,便于流式处理查看实例与计算组
hologres instance # 查看当前 profile 对应实例的版本与最大连接数
hologres warehouse # 列出所有计算组
hologres warehouse default_warehouse # 查看指定计算组详情查看命令历史
hologres history # 查看最近的命令记录
hologres history -n 50 # 查看最近 50 条表管理
表管理命令族 hologres table 覆盖列出、查看、创建、修改、删除、清空与分区管理等操作。
列出表
hologres table list # 列出当前数据库下所有表
hologres table list --schema public # 仅列出指定 schema 下的表
hologres table list -f table # 以终端表格格式输出默认 JSON 输出示例:
{
"ok": true,
"data": [
{"schema": "public", "name": "orders", "type": "table"},
{"schema": "public", "name": "users", "type": "table"}
]
}查看表结构
hologres table show public.orders # 查看列定义、类型、主键、注释
hologres table properties public.orders # 查看表属性(存储格式、分布键、TTL)
hologres table dump public.orders # 导出完整 DDL
hologres table size public.orders # 查看表存储大小创建表
创建列存表的示例:
hologres table create --name public.orders \
--columns "order_id BIGINT NOT NULL, user_id INT, amount DECIMAL(10,2), created_at TIMESTAMPTZ" \
--primary-key order_id \
--orientation column \
--distribution-key order_id \
--clustering-key "created_at:asc" \
--ttl 7776000 \
--dry-run创建逻辑分区表的示例(V3.1+):
hologres table create --name public.logs \
--columns "a TEXT, b INT, ds DATE NOT NULL" \
--primary-key "b,ds" \
--partition-by ds \
--partition-mode logical \
--orientation column \
--distribution-key b \
--partition-expiration-time "30 day" \
--dry-run--dry-run 参数仅预览生成的 SQL 而不真正执行。确认 SQL 无误后去掉该参数才会真正创建表。
修改表
hologres table alter my_table --add-column "age INT"
hologres table alter my_table --rename-column "old_col:new_col"
hologres table alter my_table --ttl 3600
hologres table alter my_table --dictionary-encoding-columns "a:on,b:auto"
hologres table alter my_table --partition-expiration-time "60 day"
hologres table alter my_table --ttl 3600 --dry-run # 预览生成的 SQL删除与清空表
hologres table drop my_table # 默认仅预览(dry-run)
hologres table drop my_table --confirm # 真正删除表
hologres table truncate my_table --confirm # 清空表数据但保留表结构分区管理
hologres partition list --table my_table
hologres partition drop --table my_table --partition "2025-04-01" --confirm
hologres partition alter -t my_table --partition "ds=2025-03-16" --set "keep_alive=TRUE"视图管理
hologres view list
hologres view show analytics.daily_stats动态表管理
动态表(Dynamic Table)是 Hologres 实时数仓的核心能力,允许通过 SQL 声明式定义结果表,由引擎按指定的新鲜度(freshness)自动刷新。hologres dt 命令族提供 V3.1+ 完整生命周期管理。
创建动态表
基础创建示例:
hologres dt create -t my_dt \
--freshness "10 minutes" \
-q "SELECT col1, SUM(col2) FROM src GROUP BY col1"使用增量刷新和 Serverless 计算资源:
hologres dt create -t ads_report \
--freshness "5 minutes" \
--refresh-mode incremental \
--computing-resource serverless \
-q "SELECT region, SUM(amount) FROM orders GROUP BY region"仅预览生成的 SQL:
hologres dt create -t my_dt --freshness "10 minutes" -q "SELECT 1" --dry-run查看动态表
hologres dt list # 列出所有动态表
hologres dt show public.my_dt # 查看动态表属性与刷新状态
hologres dt ddl public.my_dt # 导出 DDL
hologres dt lineage public.my_dt # 查看血缘依赖
hologres dt storage public.my_dt # 查看存储大小
hologres dt state-size public.my_dt # 查看状态表大小修改、刷新与删除
hologres dt alter my_dt --freshness "30 minutes"
hologres dt refresh my_dt
hologres dt drop my_dt # 默认仅预览
hologres dt drop my_dt --confirm # 真正删除V3.0 升级到 V3.1
将 V3.0 创建的动态表升级到 V3.1 格式:
hologres dt convert my_old_dt # 升级单个动态表
hologres dt convert --all # 批量升级当前数据库下所有 V3.0 动态表SQL 执行与查询分析
只读查询
hologres sql run "SELECT * FROM orders LIMIT 10"
hologres sql run --with-schema "SELECT * FROM orders LIMIT 10" # 输出含列名与类型信息
hologres sql run --no-limit-check "SELECT * FROM large_table" # 禁用行数检查默认情况下,无 LIMIT 的 SELECT 返回行数超过 100 行会被安全护栏拦截,详见本文「安全机制」章节的行数限制说明。如需绕过此限制,使用 --no-limit-check 参数。
写操作
写入类 SQL 必须显式声明 --write:
hologres sql run --write "INSERT INTO logs VALUES (1, 'test')"
hologres sql run --write "DELETE FROM logs WHERE created_at < '2024-01-01'"不带 WHERE 子句的 DELETE 与 UPDATE 会被强制阻断(DANGEROUS_WRITE_BLOCKED),无法通过 --write 绕过,必须显式补充过滤条件。
查看执行计划
hologres sql explain "SELECT * FROM orders WHERE status = 'active'"数据导入导出
通过 hologres data 命令族在本地文件与 Hologres 表之间双向迁移数据,并支持行数统计:
# 导出
hologres data export my_table -f output.csv
hologres data export -q "SELECT * FROM users WHERE active=true" -f users.csv
# 导入
hologres data import my_table -f input.csv
hologres data import my_table -f input.csv --truncate # 导入前清空目标表
# 行数统计
hologres data count my_table
hologres data count my_table --where "status='active'"data import 与 data export 不受 100 行 SELECT 行数检查限制,可直接处理大表。
GUC 参数管理
使用 hologres guc 命令族在数据库级查看、修改、重置 Hologres 的 GUC(Grand Unified Configuration)参数:
hologres guc show statement_timeout # 查看指定参数当前值
hologres guc list # 列出所有常用参数
hologres guc list --filter timeout # 按关键字过滤
hologres guc set statement_timeout '5min' # 数据库级设置(执行 ALTER DATABASE)
hologres guc reset statement_timeout # 重置为默认值guc set 等价于执行 ALTER DATABASE ... SET ...,仅对该数据库的新连接生效。如需会话级临时设置,使用 hologres sql run "SET param = value"。
AI 内容生成
CLI 集成 Hologres AI 函数,支持文本、图像、视频生成与编辑。生成结果(图像、视频)默认写入指定的 Volume,再由 Volume 关联的 OSS Bucket 持久化。
使用前提
使用 AI 功能前必须完成以下两步配置:
注册大模型:通过
hologres model create将所选模型(如通义千问、通义万相等)注册到 Hologres 实例,注册时提供模型类型、名称与 API Key。详见本文「模型管理」小节。配置 Volume:通过
hologres volume create在 Hologres 中注册一个指向 OSS Bucket 的 Volume,作为生成内容的存储位置。详见本文「Volume 存储管理」章节。
创建 Volume 时推荐通过 RAM 角色(RoleArn)授权访问 OSS,凭据请通过环境变量传入,避免在命令行中明文写出 AccessKey:
# 通过 RAM 角色授权(推荐)
hologres volume create my_vol \
--endpoint oss-cn-hangzhou-internal.aliyuncs.com \
--root oss://my-bucket/ai-output/ \
--rolearn acs:ram::123456:role/AliyunHologresDefaultRole
# 如必须使用 AccessKey,请通过环境变量传入,避免硬编码
export HOLO_AK="$(security find-generic-password -s holo_ak -w)"
export HOLO_SK="$(security find-generic-password -s holo_sk -w)"
hologres volume create my_vol \
--endpoint oss-cn-hangzhou-internal.aliyuncs.com \
--root oss://my-bucket/ai-output/ \
--access-key "$HOLO_AK" \
--access-secret "$HOLO_SK"禁止在命令行中明文出现真实的 AccessKey 与 AccessSecret。命令行参数会被 shell history、ps 进程列表、CI 日志等多处记录。生产环境推荐使用 RAM 角色(RoleArn)授权;如必须使用 AccessKey,请通过环境变量、密钥管理服务(KMS)或 STS Token 注入。
文本生成
hologres ai gen "介绍一下 Hologres 的核心优势"
hologres ai gen "写一首关于数据的诗" --model qwen-max图像生成
hologres ai image-gen "科技感数据仓库概念图" -o volume://my_vol/images
hologres ai image-gen "产品展示图" --size "1280*720" -n 2 -o volume://my_vol/output
hologres ai image-gen "Q版风格" --reference-url volume://my_vol/ref.png -o volume://my_vol/output视频生成与编辑
# 文字转视频
hologres ai t2v "一只猫在草地上奔跑" -o volume://my_vol/output
# 图片转视频
hologres ai i2v "让这张图动起来" --img-url volume://my_vol/frame.png -o volume://my_vol/output
# 参考图生成视频
hologres ai r2v "女性在花园漫步" --reference-url volume://my_vol/girl.png -o volume://my_vol/output
# 视频编辑
hologres ai video-edit "转为动漫风格" --video volume://my_vol/input.mp4 -o volume://my_vol/output模型管理
model 命令族用于在 Hologres 实例中注册、查询和删除大模型。注册后的模型可被 ai 命令族(文本/图像/视频生成)调用。
# 列出所有支持的模型
hologres model catalog [--task T] [--search S]
# 列出已在 Hologres 中注册的模型
hologres model list [--task T] [--model-type T] [--search S]
# 将一个支持的模型注册到 Hologres 中
hologres model create --name N --type T --api-key K [--config J] [--dry-run]
# 从 Hologres 中删除一个已注册的模型
hologres model delete <model_name> [--confirm]Volume 存储管理
Volume 是 Hologres 对外部对象存储(OSS)的逻辑映射。一个 Volume 对应一个 OSS Bucket 的某个前缀路径,被 Hologres SQL 函数(如 AI 生成函数)和 CLI 同时使用。Volume 与 OSS 的对应关系如下:
Volume 通过 RoleArn 或 AccessKey 持有访问 OSS 的凭据,Hologres 实例通过 RAM 角色扮演 OSS 操作。
RoleArn 来自 RAM 控制台创建的角色(推荐使用预置的
AliyunHologresDefaultRole),授权策略须包含目标 Bucket 的oss:GetObject、oss:PutObject、oss:ListObjects权限。hologres volume delete仅删除 Hologres 端的 Volume 配置,不会删除 OSS Bucket 中的实际文件。如需清理 OSS 数据,先用hologres volume delete-file删除文件,或在 OSS 控制台批量清理。
常用命令
hologres volume list # 列出所有 Volume
hologres volume list-files --volume my_vol # 列出 Volume 内的文件
hologres volume list-files --volume my_vol --prefix images/ --max-count 50
hologres volume upload-file --volume my_vol --local-file ./data.csv --target-file data/data.csv
hologres volume download-file --volume my_vol --file report.csv -d ./output
hologres volume view volume://my_vol/images/photo.png # 在终端中预览文件
hologres volume delete-file --volume my_vol --file old.csv --confirm
hologres volume delete my_vol # 删除 Volume 配置(不删 OSS 数据)网络类型
Volume 操作支持公网与内网两种传输路径,使用 --net 参数指定:
hologres volume list-files --volume my_vol --net internet # 公网(默认)
hologres volume list-files --volume my_vol --net intranet # 内网(ECS 与 VPC 内推荐)安全机制
Hologres CLI 内置 6 层安全护栏,配合敏感数据脱敏与凭据加密,覆盖从 SQL 输入到结果输出的全链路安全。
第 1 层:行数限制
不带 LIMIT 的 SELECT 默认最多返回 100 行,超过即返回 LIMIT_REQUIRED 错误。该限制用于防止误操作拉取超大结果集。
行数上限为 CLI 内置默认值,需要绕过时通过 --no-limit-check 参数关闭。data export 与 data import 等批量命令不受此限制约束。
第 2 层:连接级只读
所有连接默认执行 SET default_transaction_read_only = ON,由数据库引擎在事务级别拒绝写入。即使 SQL 误带写入语义,也无法落库。
第 3 层:写操作显式授权
写操作必须显式授权才能执行:
授权方式 | 示例 |
|
|
|
|
非 |
|
命令本身即写入 |
|
未通过显式授权的写入返回 WRITE_GUARD_ERROR。
第 4 层:危险操作阻断
不带 WHERE 子句的 DELETE 与 UPDATE 直接返回 DANGEROUS_WRITE_BLOCKED,无法通过 --write 绕过,必须补充明确的过滤条件后重新执行。
第 5 层:Serverless 计算隔离
Agent 调用产生的 SQL 默认路由到独立的 Serverless 算力池,与生产实例的常驻计算资源隔离,避免 AI 试探性查询冲击在线业务。
第 6 层:自适应执行(Adaptive Execution)
复杂 SQL 通过自适应执行机制分阶段调度,按需扩展算力,避免单条查询触发 OOM。
敏感数据自动脱敏
查询返回结果中匹配以下字段的列会自动脱敏:
字段 | 脱敏效果 |
phone |
|
| |
password |
|
id_card |
|
如需关闭脱敏(例如在合规通过的运维场景下查看完整字段),添加 --no-mask 参数:
hologres sql run --no-mask "SELECT * FROM users LIMIT 10"凭据加密
数据库密码与 AccessKey 在写入 ~/.hologres/config.json 之前使用 Fernet 算法加密,加密密钥保存在 ~/.hologres/.cipher_key,文件权限为 0600。旧版明文配置自动兼容并在下一次写入时升级为加密格式。
错误码
错误码 | 含义 |
| 连接失败 |
| 需要 LIMIT |
| 写操作未授权 |
| 危险写操作 |
| 资源不存在 |
| 输入无效 |
| OSS 操作失败 |
安装 Agent Skills
Agent Skills 是为各主流 AI 编程工具准备的技能包文件集合。安装后,Agent 可以读取技能包中的提示词模板和最佳实践,自动调用 Hologres CLI 完成数据库任务。
安装方式
推荐使用一键安装脚本,自动完成下载、依赖安装和交互式部署:
curl -sSf https://raw.githubusercontent.com/aliyun/hologres-ai-plugins/master/agent-skills/install.sh | sh也可以使用 uvx 直接运行(无需提前安装):
uvx hologres-agent-skills交互式安装流程
安装脚本启动后进入交互式选择器,按 3 步完成部署:
选择 AI 工具:从 Claude Code、Cursor、OpenAI Codex、GitHub Copilot、Qoder、Trae、OpenClaw、OpenCode 列表中选择目标工具。使用方向键 ↑/↓ 移动光标,Enter 键确认选择。
选择技能包:进入多选界面,使用空格键勾选或取消勾选技能包,使用方向键移动光标,使用 Enter 键完成选择并继续。如需中途退出,按 Esc 键返回上一步。
自动部署:脚本将所选技能包复制到对应 AI 工具的本地目录,部署完成后输出每个 Skill 的安装路径与版本信息。
交互界面示例:
? 选择 AI 工具 (使用 ↑/↓ 键,Enter 确认):
❯ Claude Code
Cursor
OpenAI Codex
GitHub Copilot
Qoder
Trae
OpenClaw
OpenCode
? 选择要安装的 Skills (空格键勾选,Enter 确认):
[x] hologres-cli
[x] hologres-query-optimizer
[ ] hologres-slow-query-analysis
[x] hologres-schema-generator
[ ] hologres-privileges
[ ] hologres-uv-compute
[ ] hologres-bsi-profile-analysis
[ ] hologres-ad-campaign
✔ 部署完成
hologres-cli → ~/project/.claude/skills/hologres-cli
hologres-query-optimizer → ~/project/.claude/skills/hologres-query-optimizer
hologres-schema-generator → ~/project/.claude/skills/hologres-schema-generator安装路径
不同 AI 工具的 Skills 默认安装位置:
AI 工具 | 路径 |
Claude Code |
|
Cursor |
|
OpenAI Codex |
|
GitHub Copilot |
|
Qoder |
|
Trae |
|
OpenClaw |
|
OpenCode |
|
内置 8 个技能包
Skill | 功能 |
hologres-cli | CLI 使用指南,覆盖 60+ 命令的正确用法 |
hologres-query-optimizer | 执行计划分析与瓶颈定位 |
hologres-slow-query-analysis | 慢查询诊断,基于 hg_query_log 分析 |
hologres-schema-generator | Schema 设计(存储格式 / 索引 / 分区) |
hologres-privileges | 权限管理(GRANT / REVOKE / 角色) |
hologres-uv-compute | UV / PV 去重(基于 RoaringBitmap) |
hologres-bsi-profile-analysis | BSI 画像(圈人 / GMV / TopK) |
hologres-ad-campaign | AIGC 广告全链路 |
Agent Skills 使用场景
以下场景展示 AI 工具中 Agent 调用 Skills 的典型对话流程。下例以 Claude Code 为例,其他 AI 工具用法类似。
场景一:查询优化
在 Claude Code 中输入自然语言请求,Agent 调用 query-optimizer Skill 完成执行计划分析与优化建议:
用户: 这条 SQL 跑了 30 秒,帮我看看怎么优化:
SELECT region, SUM(amount)
FROM orders
WHERE created_at > '2025-01-01'
GROUP BY region;
Agent 调用:
$ hologres sql explain "SELECT region, SUM(amount) FROM orders \
WHERE created_at > '2025-01-01' GROUP BY region"
CLI 返回(节选):
Seq Scan on orders (cost=0..120000 rows=10000000)
Filter: (created_at > '2025-01-01')
Redistribution: HashRedistribution by region
Agent 总结:
瓶颈一:Seq Scan 全表扫描,缺少 created_at 上的有效过滤路径
瓶颈二:按 region 重分布数据传输量大
优化建议:
1. 将 created_at 设为聚簇键: ALTER TABLE orders SET clustering_key='created_at:asc'
2. 将 region 设为分布键,避免 GROUP BY 重分布: ALTER TABLE orders SET distribution_key='region'
3. 启用结果缓存: hologres guc set hg_cache_enable on场景二:慢查询排查
用户: 线上查询有点慢,帮我排查一下。
Agent 调用 (slow-query-analysis Skill):
1. hologres sql run "SELECT query, duration, start_time FROM hg_query_log
WHERE start_time > NOW() - INTERVAL '10 minutes'
ORDER BY duration DESC LIMIT 10"
2. 定位最耗时的 SQL
3. hologres sql explain "<最耗时 SQL>"
4. 输出执行计划分析与优化方案场景三:建表设计
用户: 帮我设计一张日增 1 亿行的订单表。
Agent 调用 (schema-generator Skill):
1. 询问查询模式:高频按 user_id 查询、按日聚合统计
2. 推荐方案:列存 + 按日逻辑分区 + user_id 分布键 + created_at 聚簇键
3. hologres table create --name public.orders \
--columns "order_id BIGINT NOT NULL, user_id INT, amount DECIMAL(10,2), created_at TIMESTAMPTZ, ds DATE NOT NULL" \
--primary-key "order_id,ds" \
--partition-by ds --partition-mode logical \
--orientation column \
--distribution-key user_id \
--clustering-key "created_at:asc" \
--partition-expiration-time "180 day" \
--dry-run
4. 输出 DDL 与设计理由,待用户确认后去掉 --dry-run 真正建表场景四:实时 UV 去重
用户: 5 亿用户实时统计各频道 UV,帮我设计方案。
Agent 调用 (uv-compute Skill):
1. 推荐 RoaringBitmap + 动态表方案
2. 创建用户字典编码表与按频道聚合的 Bitmap 表
3. 用动态表增量刷新各频道 Bitmap
4. 查询时使用 RB_CARDINALITY 函数实现亚秒级 UV 返回常见问题
执行 hologres 命令时提示 command not found 怎么办?
CLI 安装目录未加入 PATH。重新加载 shell 配置文件:
source ~/.bashrc # 或 source ~/.zshrc如仍未生效,将 uv 默认安装目录手动加入 PATH:
export PATH="$HOME/.local/bin:$PATH"连接失败如何排查?
先查看当前配置和连接状态:
hologres config show # 查看当前 Profile 详情
hologres status # 查看连接状态与错误描述
hologres config # 重新进入向导修正配置重点检查 4 项:
网络类型与运行环境是否匹配(本地选 internet、VPC 内选 vpc)。
Instance ID 与 Region 是否正确。
认证信息(账号密码或 AccessKey)是否有目标实例的访问权限。
公网访问场景下,客户端 IP 是否已加入实例白名单。
写操作被拒绝怎么办?
根据返回的错误码采取对应处理:
# WRITE_GUARD_ERROR:写操作未授权,添加 --write
hologres sql run --write "INSERT INTO logs VALUES (1, 'test')"
# DANGEROUS_WRITE_BLOCKED:DELETE / UPDATE 缺少 WHERE,补充过滤条件
hologres sql run --write "DELETE FROM users WHERE id = 1"执行 SELECT 时提示 LIMIT_REQUIRED 怎么办?
无 LIMIT 的 SELECT 默认最多返回 100 行。两种处理方式任选其一:
hologres sql run "SELECT * FROM table LIMIT 100" # 显式添加 LIMIT
hologres sql run --no-limit-check "SELECT * FROM table" # 关闭行数检查忘记数据库密码怎么办?
CLI 不存储明文密码。重新运行配置向导,重新输入即可:
hologres config如何更新 CLI 与 Skills 到最新版本?
pip install --upgrade hologres-cli # 升级 CLI
uvx hologres-agent-skills # 重新启动 Skills 安装器,覆盖更新命令速查表
按命令族分类的常用命令一览:
命令族 | 常用子命令 | 说明 |
| list / show / switch / set / get / delete | Profile 配置管理 |
| list / create / show / dump / size / properties / alter / drop / truncate | 表管理 |
| list / show | 视图管理 |
| list / create / alter / drop | 分区管理 |
| create / list / show / ddl / lineage / storage / state-size / refresh / alter / drop / convert | 动态表管理 |
| run / explain | SQL 执行与执行计划 |
| export / import / count | 数据导入导出与行数统计 |
| show / set / reset / list | GUC 参数管理 |
| list / create | 扩展管理 |
| gen / image-gen / t2v / i2v / r2v / video-edit | AI 内容生成 |
| create / list / delete / list-files / delete-file / download-file / upload-file / view | Volume 存储管理 |
| catalog / list / create / delete | 大模型管理 |
通用 | status / instance / warehouse / history / ai-guide | 连接状态、实例、计算组、命令历史与 AI 用法指引 |
相关链接
许可协议:Apache License 2.0
Python 包管理器 uv:https://github.com/astral-sh/uv