专利名称 ---【 一种基于Spark SQL的分布式全文检索系统及方法 】

基本信息
申请号
CN201710269870.2
申请日
20170424
公开(公告)号
CN107122443B
公开(公告)日
20170901
申请(专利权)人
中国科学院软件研究所
申请人地址
100190 北京市海淀区中关村南四街4号
发明人
许利杰;崔光范;刘杰;马志柔;吴怀林;叶丹; 专利类型 发明专利
摘要
本发明涉及一种基于Spark SQL的分布式全文检索系统及方法,包括SQL翻译层、数据源管理层、并行计算层、分布式存储层,在SQL翻译层中提出了基于SQL的全文检索文法以及全文检索SQL语句在SQL翻译层各模块间的翻译过程;在数据源管理模块设计了全文检索过程的并行化方法;检索优化模块中,设计了两种索引存储模型和相应的查询时原表数据还原策略,其中基于索引指定列存储模型设计了一种用于在查询时还原原表数据、复杂度为O(n)的分区对齐连接算法。在两种存储模型下,索引构建时间缩短为传统数据库的0.6%/0.5%,查询时间缩短为传统数据库的1%/10%,索引存储量减少为传统数据库的55.0%。增强了Spark SQL数据分析功能,能够满足传统业务迁移和现有业务对海量数据进行全文检索的需求。
主权项
1.一种基于Spark SQL的分布式全文检索系统,其特征在于:包括SQL翻译层、数据源管理层、并行计算层、分布式存储层;SQL翻译层定义了全文检索文法,包括索引建立文法和查询文法,通过接收用户输入的全文检索SQL语句,翻译转换为对索引数据源的接口调用;该层包括文法解析模块、元数据绑定和校验模块、计划树优化模块、物理计划生成模块和物理计划执行模块;文法解析模块首先对输入的SQL语句进行切分,去掉空格形成词序数组;之后根据全文检索文法,提取词序数组中的关键信息,在索引建立过程中,关键信息包括原表名、索引表名、索引列、存储模型,在查询过程中,关键信息包括索引表名、返回结果包含的列名、查询类型、查询条件,这些关键信息分别形成一个语法节点,最终形成一颗语法树;然后对语法树进行遍历,对索引建立语句形成的语法树中原表名节点转换为未关联元数据的数据源节点,索引列节点转换为映射节点,索引表名和存储模型节点转换为索引建立节点,形成逻辑计划树;对查询语句形成的语法树中索引表名节点转换为未关联元数据的数据源节点,返回结果包含的列名节点转换为映射节点,查询类型和查询条件语法树节点转换为查询条件计划树节点,形成逻辑计划树;元数据绑定和校验模块对文法解析模块生成的逻辑计划树中实际类型为表、列、视图的节点与元数据仓库进行关联,校验成功的同时将这些节点替换为关联元数据的数据源节点;计划树优化模块仅对索引查询的计划树进行优化,该计划树优化模块将查询条件计划树节点利用过滤下推技术下推到数据源节点并去掉计划树中的查询条件计划树节点,同时利用列裁剪技术将映射节点包含的映射内容下推到数据源节点并去掉计划树中的映射节点;在索引建立过程中,物理计划生成模块合并数据源节点、映射节点和索引建立节点生成索引建立物理计划节点,在查询过程中,将数据源节点转换为扫描数据源物理计划节点,生成物理计划树;在索引建立过程中,物理计划执行模块将索引建立物理计划节点转化为对索引数据源索引建立接口的调用,调用参数包含了原表名、索引列、存储模型和索引表名,然后索引表的元数据信息中加入原表的名称并存入元数据仓库,在查询过程中,物理计划执行模块将扫描数据源物理计划节点转化为对索引数据源查询接口的调用,调用参数包含了索引表名、查询类型和条件、返回结果包含的列名;数据源管理层,根据SQL翻译层对索引数据源的接口调用,转换为索引建立或查询的数据处理逻辑,交给并行计算层执行;数据源管理层包括数据源管理模块和检索优化模块;数据源管理模块管理目前Spark支持的所有数据源,根据SQL翻译层的索引数据源调用,实例化索引数据源,索引数据源包含全文检索过程的并行化方法即索引建立过程并行化和查询过程并行化;数据源管理模块将实例化的索引数据源传入检索优化模块对索引数据源中的索引建立和查询过程进行优化,检索优化模块针对索引建立过程设计了两种存储模型,包括全量存储模型和索引指定列存储模型,针对查询过程为与存储模型相对应的原表数据还原策略,原表数据还原策略的输出为得分与相对应的原表数据拼接后的结果,其中,基于索引指定列存储模型为一种用于在查询时还原原表数据、复杂度为O(n)的分区对齐连接算法,该算法获取原表数据并与得分数据进行拼接;最终,检索优化模块的输出为优化过的索引建立或查询过程的数据处理逻辑,交给并行计算层;并行计算层,接收数据源管理层的数据处理逻辑,生成作业,并对作业进行规划,分配集群资源,将作业数据处理逻辑分发到每个物理机器上,之后,各物理机器上并行执行作业;分布式存储层接收并行计算层对于文件读写的接口调用,采用分布式读写的方式进行索引的建立和查询,建立的索引和查询的结果都存储在分布式索引层,并返回执行结果。

 

IPC信息
IPC主分类号
G06F16/33

 

法律状态信息
法律状态公告日
20190917
法律状态
授权 法律状态信息
CN201710269870 20190917 授权 授权
法律状态公告日
20170929
法律状态
实质审查的生效 法律状态信息
CN201710269870 20170929 实质审查的生效 实质审查的生效IPC(主分类):G06F 17/30申请日:20170424
法律状态公告日
20170901
法律状态
公开 法律状态信息
CN201710269870 20170901 公开 公开

 

代理信息
代理机构名称
北京科迪生专利代理有限责任公司 11251
代理人姓名
杨学明;顾炜

 

被引专利信息
引用阶段 被引时间 专利号 申请人 公开时间

 

被引非专利信息
引用阶段 被引时间 被引文档类型 被引文档信息


| 联系我们 | 网站地图 | 版权声明 |

版权:中国科学院 主办:中国科学院科技促进发展局 承办:中国科学院成都文献情报中心 蜀ICP备05003827号-12

建议使用1024×768 分辨率 IE6.0以上版本浏览器