Text2SQL、ChatBI 落地难在哪?数据团队要做什么?
自测:先别看答案
试着用 1~2 分钟把这道题讲出来(说出声或写下要点),再展开对照。
面试怎么回答
直接让大模型对着原始表生成 SQL,难点在于它不懂业务口径、表太多容易选错、结果对错难以验证,还有权限和查询代价的风险。可行的做法是先建好语义层:指标、维度和口径由数据团队定义,模型只负责把问题解析成指标、维度和过滤条件,再由语义层生成确定的 SQL。数据团队的重点是指标体系、元数据描述、示例问答和评估集,以及权限和代价控制。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
AI 时代的数据岗面试开始问:让业务用自然语言查数,大模型直接生成 SQL 可行吗?难点在哪里?
为什么直接生成 SQL 不靠谱
- 不懂业务口径:「活跃用户」「GMV」在每家公司的定义都不同,模型不知道该用哪张表、哪个过滤条件。
- 表太多:数仓里有成千上万张表和字段,全部塞给模型既放不下,也容易选错表。
- 结果难验证:SQL 能跑通不代表数是对的,业务方往往没有能力判断。
- 权限和安全:生成的 SQL 可能查到用户无权访问的数据,或者执行代价极高的全表扫描。
落地的关键是语义层
比较可行的做法是不让模型直接面对原始表,而是面对一个语义层(指标平台):
- 数据团队预先定义好指标(含口径、计算逻辑)、维度和它们之间的关系;
- 大模型负责把自然语言解析成「指标 + 维度 + 过滤条件 + 时间范围」;
- 由语义层根据定义生成确定的 SQL 并执行。
这样口径由人定义、模型只做理解,结果的准确性可控。
数据团队要做的事
- 建设统一的指标体系和语义层,补全表和字段的业务描述;
- 准备典型问题和标准 SQL 作为示例,用于检索增强和评估;
- 建立评估集,持续衡量准确率;
- 对生成的查询做权限校验、代价限制和结果展示时的口径说明。