Alibabacloud Emr Starrocks Assistant — Alibabacloud Emr StarRocks 助手
v0.0.1阿里云 EMR Serverless StarRocks 开发与运维助手。涵盖五种场景:集群连接、schema 设计、数据导入、SQL 开发与优化、集群健康诊断。当用户询问 StarRocks 表设计、写 SQL、选择导入方法、查询执行计划、物化视图、集群健康检查、FE/BE/CN 节点状态、tablet 健康或压缩时,请使用此 Skill。典型场景:表设计、Stream Load / Routine Load / Broker Load 选择、SQL 优化、窗口函数、CTEs、JOIN 调优、物化视图设计、集群健康检查、节点宕机诊断。不适用于:StarRocks 实例生命周期管理(创建 / 缩放 / 重启 / 配置更改 / 版本升级 —— 这些是控制平面操作,请使用 EMR Serverless 控制台或对应的 OpenAPI)、或其他阿里云产品(EMR Cluster、Spark、Milvus、ClickHouse、Doris、RDS、ECS)。
运行时依赖
安装命令
点击复制技能文档
阿里云 EMR Serverless StarRocks 开发与运维助手 帮助用户在阿里云 EMR Serverless StarRocks 上执行日常表设计、数据导入、SQL 编写和优化、健康诊断等操作。所有集群访问都通过捆绑的 srsql CLI(基于pymysql,使用用户自己的账户)进行;无需 MySQL 客户端。非只读 SQL 由 sqlglot 分类,并需要 --yes 确认才能执行。
范围声明:本 Skill 重点使用 StarRocks — 开发、诊断和日常数据操作。集群内部数据和模式操作(DDL、DML、物化视图刷新、GRANT 等)均受支持,并在用户自己的账户下执行,受 sqlglot 分类 + --yes 确认限制。实例生命周期操作(创建、扩缩、重启、配置更改、版本升级)是控制平面操作,不在本 Skill 的范围内;请使用 EMR Serverless 控制台或对应的 OpenAPI。
何时使用 / 何时不使用 何时使用:
- 模式设计(表模型、分区、分桶、排序键、索引、存储参数)
- 数据导入选择(Stream/Broker/Routine Load、INSERT、Pipe、Flink/Kafka Connector、CDC)
- SQL 编写、重写和优化(JOIN 策略、窗口函数、CTE、聚合优化、统计)
- 物化视图设计和操作
- 集群健康诊断(FE/BE/CN 节点、tablet 健康、压缩、仓库、最近失败的加载)
何时不使用:
- 实例生命周期控制:创建 / 扩缩 / 重启 / 配置更改 / 升级 StarRocks 实例 — 这些是控制平面操作;请使用 EMR Serverless 控制台或对应的 OpenAPI 代替
- 操作非 StarRocks 产品:EMR 集群、Spark、Milvus、ClickHouse、Doris、RDS、ECS 等
首次设置:安装和登录 本 Skill 附带 sr-connect Python CLI。请参阅 references/connect.md 以获取详细信息。
助手引导协议(针对 Claude 的说明) 当本 Skill 被调用并且您预计运行任何集群查询时,请确保 srsql 可用,然后再询问用户任何内容:
- 运行 which srsql。如果它返回一个路径,则跳转到步骤 4。
- 如果缺失,请自行安装:uv tool install ,其中 是包含本 SKILL.md 和 pyproject.toml 的目录(Skill 的基目录,在调用时显示;通常为 ~/.claude/skills/alibabacloud-emr-starrocks-assistant/,可能是符号链接)。
- 不要要求用户运行此命令 — 捆绑的 CLI 是 Skill 能力表面的组成部分,而不是用户基础设施。
- 如果 uv 本身缺失(即 which uv 失败),请将其显示给用户 — uv 是系统工具,不会自动安装。
- 检查 ~/.starrocks/{profile}.cnf(默认配置文件名:default;如果设置了 SR_PROFILE 环境变量,则尊重该变量)。如果它存在,则跳转到步骤 6。
- 如果缺失:
- 首先尝试 sr-login --from-env。安全地调用它 — 即使环境中没有所需的凭据,它也会以清晰的“缺失”消息退出 2,并且不会执行其他操作。
- 您不需要自己检查环境变量。
- 如果 sr-login --from-env 以非零值退出,则用户尚未登录。请提供 sr-login --host ... --user ... 命令,并要求他们自己运行它。
- 不要自己运行交互式 sr-login — 它会在密码提示上阻塞,而您无法回答。
- 在 srsql 可用且配置文件存在后,通过 srsql -e "..." 自行运行查询。
- 如果 srsql 刚刚在本次会话中安装,并且 PATH 尚未在用户的 shell 中刷新,则请回退到 uv tool install 打印的绝对路径(通常为 ~/.local/bin/srsql)。
引导后成功的聊天式规则:
- 不要将 sr-whoami / srsql -e "..." 调用语法回显给用户作为“现在可以运行 …” 的提示。
- 您是代表用户调用这些 CLI 的人 — 用户驱动 Skill,而不是二进制文件。
- 完全跳过成功后的“下一步”叙述,只要询问他们想做什么,或者如果他们的意图已经明确,则继续执行。
登录命令(当用户的配置文件缺失时提供给用户) # EMR Serverless StarRocks — 内部和公共端点都使用 MySQL 线协议通过 plain TCP;无 SSL/TLS。使用相同的形式进行任一操作。 sr-login --host --port 9030 --user # 验证 sr-whoami srsql -e "SELECT CURRENT_VERSION()"
重新运行 sr-login 具有相同的 --profile 悄悄覆盖存储的凭据(与 docker login 相同的语义)。 使用 --profile 进行多集群: sr-login --profile prod --host fe-prod.xxx --user app_user SR_PROFILE=prod srsql -e "..."
安全模型 本 Skill 有两层:
- FE 是权威的权限边界。用户提供自己的 StarRocks 账户;无论他们被允许做什么,都可以做。
- 本 Skill 不创建、提升或轮换任何账户。
- srsql 是 UX 门槛,而不是安全边界。每个语句都由 sqlglot 解析(dialect starrocks):