语义层为基,NL2DSL与NL2SQL融合解锁数据分析新边界
在ChatBI飞速迭代的今天,“人人都是数据分析师”不再是口号,但落地过程中总有一道绕不开的坎:如何平衡数据分析的精准性、安全性与灵活度?
很多企业尝试过各种方案,却陷入两难:要么方案太僵化,应对不了复杂查询;要么太灵活,权限管控失控、结果不可追溯。其实答案早已明确——语义层,才是智能数据分析的核心基石,而当前主流的NL2DSL(自然语言转领域特定语言)与NL2SQL(自然语言转结构化查询语言)方案,是两条核心路径。它们各有优劣,却始终难以单独满足企业全场景需求。
今天,我们结合行业实践与实操方案,聊聊语义层的核心价值,拆解NL2DSL与NL2SQL方案的利弊,更将揭秘一套“融合方案”——如何打破各自局限,解锁复杂数据分析的新可能。
一、先立基石:语义层,决定数据分析的“天花板”
在聊具体方案前,我们必须先明确:语义层不是“锦上添花”,而是智能数据分析的“地基”。所谓语义层,本质是搭建在底层数据库与用户需求之间的“翻译官”——它将复杂的数据库表结构、字段关系、指标口径,转化为业务人员能理解的“业务语言”,比如把“t_income_f”表定义为收入模型,而其中的“income_f”字段,定义为“收入预算”模型度量字段。在模型上进一步提炼收入预算、达标率等指标,让用户无需懂技术,也能精准表达查询需求。
结合业界经验来看,语义层的价值主要体现在三点,这三点也是所有方案的核心前提:
1. 统一口径,消除歧义:通过指标字典、维度词典,确保全公司对“收入”“毛利”等指标的定义一致,避免出现“各算各的数”,让数据分析结果具备可比性。2. 屏蔽复杂度,降低门槛:业务人员无需关注底层表关联、字段命名,只需用自然语言提问(如“各部门上月收入多少”),语义层会自动映射到底层数据逻辑。3. 承载权限与校验,保障安全:语义层可内置权限管控逻辑,同时对用户查询意图进行校验,避免敏感数据泄露,让数据分析“可控、可追溯”。
脱离语义层的数据分析,要么陷入“技术人员懂数据、业务人员懂需求,两者无法同频”的困境,要么出现“查询结果失真、权限失控”的风险——这也是为什么,无论是2DSL还是2SQL方案,都必须以语义层为基础搭建。
如图所示,数据库物理层所获取和感知的模型、指标,结合着企业环境中的各种业务知识,组成了完整、可信的语义层。

二、主流方案对决:NL2DSL与NL2SQL,各有优劣难两全
当前业界最主流的两大智能查询方案是NL2DSL与NL2SQL,两者各有侧重,适配不同场景,但也都存在明显局限,我们结合行业实践与材料中的落地经验,逐一拆解。
(一)NL2DSL:精准可控,但有“能力天花板”
NL2DSL(自然语言转领域特定语言)的核心逻辑是:先基于业务场景,定义一套专属的领域特定语言(DSL),将用户的自然语言需求,转化为标准化的DSL语句,再由系统将DSL转化为可执行的SQL,完成查询。下图是一个基础的DSL设计:

简单说,DSL就像‘填空题’——语义层已经定义好所有可查询的指标、维度、筛选条件,大模型只需根据用户需求,填充对应的参数,就能生成规范的查询逻辑。
核心优势(结合业界实践、材料总结):1. 精准度高,幻觉风险低:DSL是预定义的标准化语言,大模型只需做“填空式生成”,无需自主创造复杂逻辑,大幅降低生成错误的概率,尤其适合常规指标查询场景。2. 权限管控更优雅:可在DSL层内置行级、列级权限逻辑,比如某部门员工只能查询本部门数据,无需在最终SQL中额外处理,适配企业级安全需求。3. 可解释性强,易追溯:DSL语句可直接映射回业务语义,用户能清晰看到查询的指标、维度、筛选条件,理解结果背后的逻辑,尤其适合金融、医疗等严谨领域。4. 适配常规业务场景:固化了指标查数、归因分析、趋势对比等常见场景,响应速度快,能满足大部分业务人员的日常查询需求。
明显局限(材料核心痛点、业界共识):1. 复杂查询“无力”:这是DSL最突出的问题——面对涉及窗口函数、复杂子查询、多步推理的查询(如“2025年上半年各部门产品实际收入与2024年上半年预算的差值”),DSL的预定义逻辑无法覆盖,准确率会显著下降,这就是材料中提到的“复杂查询天花板”。2. 灵活性不足,依赖指标库:DSL是自定义语言,并非通用语法,其能力完全依赖指标库的完善程度,若业务场景变化快、指标新增频繁,企业需要不断更新DSL定义,维护成本高。3. 学习成本高:不同企业的DSL定义不同,新员工或业务人员需要学习专属的DSL规则,一定程度上降低了“全员数据分析”的效率。
(二)NL2SQL:灵活高效,但有“安全与可控隐患”
NL2SQL(自然语言转SQL)的核心逻辑是:跳过中间的DSL环节,由大模型直接将用户的自然语言需求,转化为可直接执行的SQL语句,无需预定义复杂的领域语言,是当前业界应用较广泛的方案之一。
核心优势(结合业界实践、材料总结):1. 灵活性极高,无“天花板”:SQL是通用的数据库查询语言,支持多层嵌套、窗口函数、复杂子查询等各种复杂逻辑,能应对DSL无法处理的复杂查询场景。2. 工程化难度低,落地快:无需自定义DSL语言,只需给大模型提供表结构、指标口径等上下文,就能快速实现自然语言到SQL的转化,适合快速落地试点。3. 通用性强,学习成本低:SQL是行业通用语言,技术人员可直接复用现有知识,业务人员也能通过简单学习,理解查询逻辑,无需适配专属规则。
明显局限(材料核心痛点、业界共识):1. 幻觉风险高,结果不可控:自然语言的模糊性与SQL的结构化特性存在天然矛盾,大模型在生成复杂SQL时,容易出现字段错误、表关联错误等问题,尤其大模型生成大量token后,幻觉现象更明显。2. 权限管控难度大:复杂SQL生成过程中,难以加入细粒度的行列权限控制,容易出现‘越权查询’、泄露敏感数据,这也是企业级应用中最头疼的问题。3. 可解释性差,信任度低:大模型直接生成SQL,用户无法理解SQL背后的逻辑,一旦结果出错,难以定位问题根源,尤其在严谨领域,难以获得业务人员的信任;4. 依赖上下文质量:若给大模型提供的指标口径、表结构等上下文不完整,会直接影响SQL生成的准确率,且维度code、维度值的处理难度较大。
总结来看:NL2DSL 的核心优势为精准、可控、安全,NL2SQL 的核心优势为灵活、高效。两者单独使用,都无法满足企业“常规查询高效化、复杂查询精准化、全程安全可控”的核心需求——于是,“DSL+SQL融合方案”应运而生。
三、破局之路:DSL与SQL融合,兼顾精准与灵活
我们找到了一条平衡之路:以语义层为基石,采用类SQL的指标语义查询语言MQL,实现双向互补——常规查询用DSL,保证精准可控;复杂查询用MQL,突破能力边界。
融合方案核心逻辑整个方案的核心的是“智能路由+双向互补”,兼顾精准性与灵活性,同时解决权限、可解释性等痛点:

1. 意图判断,智能路由:首先通过语义层定义的指标、维度、维度值等信息,判断用户的查询意图是否能被DSL覆盖——若能,直接走NL2DSL路径,快速生成查询结果;若不能(如涉及复杂子查询、多步推理),则自动切换到NL2MQL路径,避免DSL的“天花板”限制。当然这个判断的过程也可以延后至生成DSL和MQL两种语句之后。2. 复用一套语义转化逻辑:无论是DSL转换成最终的物理SQL,还是MQL中替换相应的指标作为子查询,过程都可以通过语义层的模型直接完成,且不需要大模型参与,中间的绝大部分逻辑是可以共用的。3. 复用一套权限管控体系:原本作用在指标目录、指标、维度上的列级和行级权限,在DSL或者MQL转化成物理可执行SQL的过程中都统一被嵌入,无需单独维护。4. 可解释性弥补:若用MQL路径替换原有DSL方案,会失去DSL的可解释性和图形化展示能力,可通过大模型将SQL反向转化为意图文本,让用户理解查询逻辑。5. 技术支撑:借助成熟的SQL处理框架(如Calcite等),实现MQL到AST的转换、AST操作及SQL优化,通过伪代码封装逻辑,降低工程化落地难度。
实操示例:一看就懂的融合方案落地
我们用一个实际场景,看看融合方案中MQL部分如何工作:
用户需求:‘3月的营业收入最多的部门比最少的部门多多少,分别是什么部门?
步骤1:意图判断——该需求涉及单个指标(营业收入)、时间维度单一,但涉及多个维度值之间的横向比较,属于复杂查询,一般的DSL无法覆盖完整语法,系统自动切换到MQL路径。
步骤2:生成语义MQL——大模型结合语义层提供的相关指标信息(营业收入、营业收入的维度-部门名称、营业收入度量字段),生成简化的MQL。

在MQL中,涉及的字段名只有‘统计时间’、维度名、指标名,底层表名均为指标名。
步骤3:AST转换与优化——通过SQL的解析工具(parser),将MQL转成AST,在语义层的基础上,将指标表替换为实际子查询(如将‘营业收入’替换为‘select .. from `br`.`fact_financial_detail` `t1`’),替换维度条件,必要时加入维度限制条件,生成可执行物理SQL。

步骤4:执行与返回——执行优化后的物理SQL,获取结果,同时可选择性地通过大模型将SQL反向转化为意图文本,供用户查看逻辑,确保可解释性。
整个过程,既发挥了SQL的灵活性,突破了DSL的复杂查询天花板,又借助语义层和AST操作,解决了SQL方案的权限、可解释性痛点,实现了‘精准+灵活+安全’的三重目标。
四、行业启示:融合才是未来,语义层永不过时
我们不难发现:智能数据分析的未来绕不开语义层作为基石,保障了数据口径的统一、权限的可控,对于企业而言,无需盲目追求‘最先进’的方案,而是要立足自身业务场景:若常规查询多、对安全和可解释性要求高,可优先搭建DSL体系,若复杂查询多、业务场景灵活,可引入SQL融合,逐步实现‘常规场景高效化、复杂场景精准化。
毕竟,智能数据分析的核心,从来不是‘技术越复杂越好’,而是‘能精准解决业务问题、能落地、能复用’——而语义层为基、DSL与SQL融合,正是这条落地之路的最优解之一。后续我们将持续拆解融合方案的技术落地细节,包括AST操作伪代码解析、SQL优化技巧、权限管控实现等内容,关注不迷路,一起解锁智能数据分析的更多可能。