SuperAPI AI 工具集

clickhouse

数据与分析

查看项目

更新于 10-16 09:30

技能介绍

用途:该技能说明在 Gram 的分析与遥测(telemetry)功能中操作 ClickHouse 数据库时需要遵守的规则。server/internal/telemetry 包使用 ClickHouse 承担高性能分析查询。

主要能力与约定:ClickHouse 查询不由 SQLc 自动生成(SQLc 不支持 ClickHouse),因此使用 squirrel 查询构建器进行动态查询构造。关键限制是 squirrel 只允许用于 telemetry 包中的 ClickHouse 查询,PostgreSQL 查询一律必须使用 SQLc 生成的代码,这是“禁止使用查询构建器”政策唯一的可接受例外。

文件结构:queries.sql.go 存放基于 squirrel 的查询实现;pagination.go 提供游标分页辅助函数(如 withPagination、withOrdering 等);README.md 记录 ClickHouse 专属的详细文档与模式。

新增查询的步骤:为查询输入创建 params 结构体;使用 squirrel(queries.sql.go 中的 sq 变量已为 ClickHouse 预配置)构建查询,可选过滤条件应显式写明,例如存在 DeploymentID 时追加 squirrel.Eq 条件,再调用 ToSql() 执行。

测试方式:在 TestMain 中使用 testenv.Launch() 完成基础设施搭建;插入数据后需加 time.Sleep(100 * time.Millisecond) 等待 ClickHouse 的最终一致性;采用表驱动测试并使用带“it”前缀的描述性名称;为测试数据插入编写辅助函数。更完整说明见 server/internal/telemetry/README.md。

限制:资料仅给出上述规则与代码模式,未提供具体安装命令、平台支持、收费或价格信息;也未说明除该包之外的适用范围。