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、Container Service、Function Compute、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,請通過環境變數、Key Management Service(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 對外部Object Storage Service的邏輯映射。一個 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