用途:帮助用户在阿里云 EMR Serverless StarRocks 上完成日常表设计、数据导入、SQL 编写与调优以及集群健康诊断。所有集群访问均通过内置的 srsql CLI(基于 pymysql,使用用户自有账号),无需 MySQL 客户端。
主要能力与场景:一、表结构设计,涵盖四种表模型(日志明细用 Duplicate Key、预聚合指标用 Aggregate、实时 upsert/CDC 用 Primary Key、简单去重用 Unique Key)、分区、分桶、排序键、索引与存储参数;二、数据导入选型,如本地小文件用 Stream Load、对象存储/HDFS 批量用 Broker Load 或 INSERT INTO ... FROM FILES()、持续到文件用 Pipe + AUTO_INGEST、Kafka/Pulsar 用 Routine Load 或连接器、MySQL CDC 用 Flink CDC;三、SQL 编写与调优,包括窗口函数、Broadcast/Colocate JOIN、CTE、异步物化视图、外部 Catalog;四、集群诊断,按架构、FE、BE/CN、warehouse、tablet 健康、调度队列、compaction、近 24 小时导入的顺序排查;五、集群连接管理,涉及 sr-login、sr-logout、sr-whoami、sr-doctor、srsql 等命令。
使用方式:先确认 srsql 可用(which srsql),缺失时用 uv tool install <skill-project-root> 安装;若 uv 本身缺失需告知用户。随后检查 ~/.starrocks/{profile}.cnf,不存在时先尝试 sr-login --from-env,失败则让用户自行执行 sr-login --host <fe-endpoint> --port 9030 --user <account>,并用 sr-whoami 与 srsql -e "SELECT CURRENT_VERSION()" 验证。多集群可用 --profile 与 SR_PROFILE 切换。查询通过 srsql -e "..." 执行。
安全与限制:FE 是权限边界,技能不创建或提升账号;srsql 仅为交互层门禁,SQL 由 sqlglot 分类,READ 直接执行,非 READ(INSERT/UPDATE/DELETE/DDL/GRANT/SET/USE 等)须加 --yes;无法解析的语句回退关键字检查。生产表 DDL 或改变全局集群状态的操作建议打印 SQL 交由用户执行。标识符需符合 [A-Za-z0-9_] 或反引号;用户字符串值不得直接拼接。禁止 curl/wget/pip/npm 下载执行外部代码及运行远程脚本(安装自带 CLI 除外)。实例生命周期(创建、扩缩容、重启、改配、升级)不在范围内,需使用控制台或 OpenAPI;非 StarRocks 产品亦不适用。