Text-to-SQL
Text-to-SQL 是把人用日常语言提出的问题,转换成数据库能理解的查询语言 SQL 的技术。即使不会 SQL,也能直接向数据提问。
通俗解释 这就像在外国图书馆用母语问馆员“去年借阅次数最多的书”,由翻译把它转换成该图书馆借阅系统能理解的检索词输进去。不过,正如翻译若搞错了图书馆的分类体系就会找来不相干的书,如果误解了数据结构,也会得出错误的答案。
工作原理
当用户提出“显示上个月各地区的销售额”之类的问题时,系统会先收集 schema,即说明数据库中有哪些表和列的信息。把这些 schema 和问题一起输入 LLM,模型就会生成合适的 SQL 语句。生成的 SQL 在数据库中执行,结果以表格、图表或摘要文字的形式返回给用户。如果执行中出错,也常把错误信息再交给模型,让它修改 SQL。
为什么重要
公司数据大多存放在数据库或数据仓库中,但会写 SQL 的人并不多。因此,业务人员哪怕只想看一个数字,也得向分析师提出需求并等待。Text-to-SQL 缩短了这段等待时间,让更多人能直接查看数据。随着 LLM 的进步,它正快速进入公司内部的数据分析工具和 BI 服务。
注意事项
SQL 即使语法正确,含义也可能有误,因此结果看起来合理,数字也可能是错的。尤其是“销售额”“活跃用户”这类各公司定义不同的词,模型很容易凭猜测处理,所以常会配合使用预先整理好这些定义的语义层。为避免误执行删除或修改数据的 SQL,基本做法是只以只读权限连接。如果是用于重要决策的数字,设置由人检查生成的 SQL 的环节会更稳妥。
引入前检查
安全
- 是否仅以只读权限连接
- 是否阻止了修改数据的 SQL
准确性
- 是否整理好了业务术语的定义
- 是否向用户展示生成的 SQL
- 重要数字是否由人工审核
示例
销售人员在接入公司内部通讯工具的数据聊天机器人中输入“把本季度新客户数和上季度比较一下”,聊天机器人会在内部生成 SQL,在数据仓库中执行,然后以两个数字和一张简单的柱状图作答。许多 BI 工具和云数据平台都提供这种“用自然语言提问”的功能,通常还会一并显示生成的 SQL,方便用户检查。