1.一种隐私保护的SQL查询任务安全解析方法,其特征在于,包括步骤:获取SQL查询任务和参与数据表参数;将所述SQL查询任务解析为抽象语法树;在抽象语法树层面,对嵌套的JOIN操作进行扁平化优化与连接等值对抽取,根据抽取到的全局等值连接对集合确定各执行子任务的链接锚点数据列;将WHERE条件转换为析取范式,然后对析取范式中的每个合取子句进行扫描,提取出能下推到单个数据表的原子条件;递归识别SELECT语句中的所有聚合函数,根据数据表参数的节点匹配结果,确定每个聚合函数的参数列所属的表;对原子条件执行规范化操作,得到规范化的条件组合,从条件组合中精准抽取参与检索的列名集合;根据表名称、参与检索的列名集合、规范化的条件组合、各执行子任务的链接锚点数据列、聚合函数数组与对应参数列,按照每个数据表对应一个子任务的要求,生成总执行计划文本。
2.根据权利要求1所述的隐私保护的SQL查询任务安全解析方法,其特征在于,在抽象语法树层面,对嵌套的JOIN操作进行扁平化优化与连接等值对抽取,根据抽取到的全局等值连接对集合确定各执行子任务的链接锚点数据列,包括:通过SQL语句中的FROM树递归展开所有参与查询任务的数据表,并记所述数据表的别名/基数据表名;对每个ON子句仅保留等值原子并扁平化JOIN操作的AND组合,得到全局等值连接对集合;根据所述全局等值连接对集合确定各执行子任务的链接锚点数据列。
3.根据权利要求1所述的隐私保护的SQL查询任务安全解析方法,其特征在于,将WHERE条件转换为析取范式,然后对析取范式中的每个合取子句进行扫描,提取出能下推到单个数据表的原子条件,包括:将SQL语句中的WHERE部分转换为析取范式DNF,逐原子扫描列引用集合,仅当原子不引用任何数据表或只引用单一数据表的列时,将该原子下推到该数据表;将包含多数据表列引用的原子视为跨数据表原子,拒绝原子条件下推;对每个数据表侧的DNF分支进行分支级去重与排序。
4.根据权利要求1所述的隐私保护的SQL查询任务安全解析方法,其特征在于,递归识别SELECT语句中的所有聚合函数,根据数据表参数的节点匹配结果,确定每个聚合函数的参数列所属的表,包括:自顶向下遍历SQL语句中的SELECT列表,解包AS语句的别名内容,识别并记录常用聚合操作:SUM、AVG、MAX、MIN和COUNT;对可能存在的ROUND()外层取整语义包装进行栈式记录,得到形如round(avg)的聚合操作说明;参数列依据限定符归属到具体数据表,将同一数据表侧的聚合函数数组agg与对应参数列val_cols一一对齐,确定每个聚合函数的参数列所属的表。
5.根据权利要求1所述的隐私保护的SQL查询任务安全解析方法,其特征在于,规范化操作包括:去外围括号、去标识符引号、去别名前缀、压缩空白。
6.一种隐私保护的SQL查询任务安全解析装置,其特征在于,包括:SQL查询任务获取模块,用于获取SQL查询任务和参与数据表参数;SQL语句解析模块,用于将所述SQL查询任务解析为抽象语法树;扁平化JOIN操作模块,用于在抽象语法树层面,对嵌套的JOIN操作进行扁平化优化与连接等值对抽取,根据抽取到的全局等值连接对集合确定各执行子任务的链接锚点数据列;确定析取范式模块,用于将WHERE条件转换为析取范式,然后对析取范式中的每个合取子句进行扫描,提取出能下推到单个数据表的原子条件;递归识别模块,用于递归识别SELECT语句中的所有聚合函数,根据数据表参数的节点匹配结果,确定每个聚合函数的参数列所属的表;参与检索的列名集合确定模块,用于对原子条件执行规范化操作,得到规范化的条件组合,从条件组合中精准抽取参与检索的列名集合;总执行计划文本生成模块,用于根据表名称、参与检索的列名集合、规范化的条件组合、各执行子任务的链接锚点数据列、聚合函数数组与对应参数列,按照每个数据表对应一个子任务的要求,生成总执行计划文本。
7.根据权利要求6所述的隐私保护的SQL查询任务安全解析装置,其特征在于,扁平化JOIN操作模块,还用于通过SQL语句中的FROM树递归展开所有参与查询任务的数据表,并记所述数据表的别名/基数据表名;对每个ON子句仅保留等值原子并扁平化JOIN操作的AND组合,得到全局等值连接对集合;根据所述全局等值连接对集合确定各执行子任务的链接锚点数据列。
8.根据权利要求6所述的隐私保护的SQL查询任务安全解析装置,其特征在于,确定析取范式模块,还用于将SQL语句中的WHERE部分转换为析取范式DNF,逐原子扫描列引用集合,仅当原子不引用任何数据表或只引用单一数据表的列时,将该原子下推到该数据表;将包含多数据表列引用的原子视为跨数据表原子,拒绝原子条件下推;对每个数据表侧的DNF分支进行分支级去重与排序。
9.根据权利要求6所述的隐私保护的SQL查询任务安全解析装置,其特征在于,递归识别模块,还用于自顶向下遍历SQL语句中的SELECT列表,解包AS语句的别名内容,识别并记录常用聚合操作:SUM、AVG、MAX、MIN和COUNT;对可能存在的ROUND()外层取整语义包装进行栈式记录,得到形如round(avg)的聚合操作说明;参数列依据限定符归属到具体数据表,将同一数据表侧的聚合函数数组agg与对应参数列val_cols一一对齐,确定每个聚合函数的参数列所属的表。
10.根据权利要求6所述的隐私保护的SQL查询任务安全解析装置,其特征在于,参与检索的列名集合确定模块中规范化操作包括:去外围括号、去标识符引号、去别名前缀、压缩空白。