用途:输入业务需求文本加数仓目录,输出可读、可执行、可验收的最终 SQL。默认策略是减少询问、先出 SQL,用户反馈后再调整。默认行为:数仓目录取当前目录,搜不到再问;输出字段自行决定;时间范围取最新分区 MAX(dt);分层选表按 ADS → DWS → DWT;表名带库名前缀,prod 环境。流程:先运行 scripts/build_catalog.py 建立目录索引,再用 scripts/search_catalog.py 按优先级检索候选表,读表文档确认粒度、分区字段与指标口径,然后组装 SQL——数组字段默认用 LATERAL VIEW EXPLODE 全部展开,多条件筛选明确交集/并集,分区过滤用 SELECT MAX(dt) 动态获取,CTE 结构为 base → agg → dim → final;随后自检字段存在、join key 类型一致、group by 与 select 一致、分区下推;最后输出带库名的可执行 SQL 与中文别名。护栏:禁止生成 DROP/TRUNCATE/DELETE/INSERT OVERWRITE 等破坏性语句,禁止 TRANSFORM 函数及 SELECT/ON 中的子查询表达式以兼容 Hive,口径不确定时给出多分支 SQL 或在注释中说明假设。收尾:每次交付后用 scripts/log_qa.py 写日志,并询问用户结果是否可用(回复 good 或 bad 加原因),再更新日志标签。资源包括生成索引、检索候选表、SQL 静态检查、记录日志脚本,以及需求问卷模板、方言与兼容性、调用示例等参考文档。适用场景为数据仓库取数与 SQL 生成;限制是需先有数仓目录与表文档,具体方言支持范围与运行环境暂未提供。
smart-data-query
数据与分析
更新于 10-16 05:05