一种基于sql的文本数据统计实现方法

文档序号:9579367阅读:492来源:国知局
一种基于sql的文本数据统计实现方法
【技术领域】
[0001]本发明属于数据存储与查询技术领域,特别涉及一种基于SQL的文本数据统计实现方法。
【背景技术】
[0002]随着信息时代来临,计算机技术的飞速发展,特别是Internet技术的不断应用,数据呈现了飞快的增长趋势,数据类型也越来越复杂,原有结构化数据仓库已经无法满足目前大数据存储和分析的需求,全文索引技术已经在应用中得到广泛的应用,但全文检索技术在数据统计支撑能力方面,相比结构化数据仓库还存在较大差距。
[0003]结构化数据仓库是利用MPP多机并行计算技术将结构化数据分散存储在多台独立的设备上。基于分布式可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。大幅提升了结构化数据统计分析计算的性能,在接口层面提供标准SQL接口,极大地降低了数据分析人员应用技术门槛,是一种理想的结构化数据存储分析技术架构。
[0004]全文检索引擎是基于分词技术、倒排索引技术、分布式存储技术所形成的面向文本数据的快速高效的数据检索引擎,能够达到TB级、甚至PB级数据秒级检索响应能力,是理想的文本数据的存储和索引引擎。但是,在面向统计分析业务场景,以及与结构化数据进行联合分析的场景中,尚无法满足功能需求。
[0005]目前,结构化和非结构化数据的爆炸式增长,必然带来大量的文本数据统计,以及文本数据和结构化数据联合统计分析的业务需求,结构化数据仓库和全文检索引擎均无法支撑此类业务,如何即能够利用全文检索引擎高效快速的文本数据检索能力,同时利用结构化数据仓库的数据统计分析能力,已经成为一个迫切需要研究的问题。

【发明内容】

[0006]本发明的目的在于克服现有技术的不足,提供一种设计合理、能够满足海量文本数据并行高效统计、文本数据和结构化数据并行联合分析的业务需求的基于SQL的文本数据统计实现方法。
[0007]本发明解决现有的技术问题是采取以下技术方案实现的:
[0008]—种基于SQL的文本数据统计实现方法,构建基于一个文本统计协调器和多个文本统计执行器的分布式文本数据统计集群系统,所述文本统计协调器包括统一元数据管理模块、查询优化模块、SQL语法解析模块、结构化数据仓库SQL执行模块、分布式通信模块;所述文本统计执行器包括SQL语法向全文检索语义翻译模块、全文检索结果向结构化数据仓库导入模块,并且通过如下步骤实现:
[0009]步骤1:文本统计协调器对输入SQL语法进行解析,提取所有存储在全文索引引擎中数据的子查询;
[0010]步骤2:文本统计协调器在结构化数据仓库中建立和子查询投影结构一致的临时表,并将原查询语句的子查询部分重写为基于临时表的查询;
[0011]步骤3:文本统计协调器识别全文索引引擎数据分布规则,向每个文本数据存储端部署的文本统计执行器下发,并将全文索引引擎的子查询结果导入到结构化数据仓库引擎;
[0012]步骤4:文本统计执行器将文本统计协调器下发请求中基于SQL的简单子查询翻译为全文索引引擎语法,并在全文索引引擎中执行;
[0013]步骤5:文本统计执行器获取全文索引查询结果,并将结果导入到结构化数据仓库引擎临时表中;
[0014]步骤6:文本统计协调器等待每个文本统计执行器完成查询结果导入过程,待导入结束后向数据仓库下发重写后的基于临时表SQL查询语句,并向客户端返回查询结果。
[0015]所述的步骤1包括以下处理过程:业务应用基于标准JDBC开发接口向文本统计协调器发送SQL查询请求,文本统计协调器对SQL查询进行语法解析生成语法树,文本统计协调器遍历语法树,标识并提取所有在元数据定义中包括在文本数据存储中存储数据的子查询。
[0016]所述的步骤2包括以下处理过程:文本统计协调器分析步骤1中识别的子查询,提取子查询中的投影结构,基于此投影结构自动形成在结构化数据仓库的临时表建表语句,调用结构化数据仓库DDL执行接口,在结构化数据仓库中建立临时表,将原有输入SQL语句中的子查询部分进行SQL重写,替换为基于数据仓库临时表的子查询,并生成新的基于临时表的完整SQL语句。
[0017]所述步骤3中文本统计协调器通过获取分布式全文索引引擎的数据分布规则,下发分布式检索查询和数据仓库导入请求。
[0018]所述步骤4中文本统计执行器能够完成高级SQL文本检索条件的全文检索引擎翻译,包括分词查询、模糊查询、邻近搜索和检索结果打分。
[0019]本发明的优点和积极效果是:
[0020]1、本发明构建基于文本统计协调器和文本统计执行器的分布式文本数据统计集群系统,结合全文索引引擎和结构化数据仓库引擎的特点,实现对海量文本数据的基于通用SQL语言的统计分析方法,解决了传统全文索引统计功能薄弱和结构化数据仓库无法支持高效文本检索的问题,大大提高了文本数据统计分析的易用性。
[0021]2、本发明以分布式全文检索系统和MPP并行数据仓库为基础,搭建了新的基于SQL的文本数据统计分布式集群,通过查询计划分解,在执行层利用全文检索系统和MPP并行数据仓库完成高效执行,充分发挥两者的优势,实现了一种简单易用的基于SQL的文本数据统计方法,解决了原有全文检索系统统计功能差和MPP并行数据仓库文本检索性能差的缺点。
[0022]3、本发明充分考虑海量数据处理需求,针对海量数据进行专门的设计,对全文检索查询过程,采用了有针对性的基于位置感知的二阶段查询协议,第一阶段获取数据分布位置,并下发查询每个到文本检索服务,第二阶段将查询结果点对点的插入到MPP并行数据仓库中。
[0023]4、本发明大大提高了文本数据统计处理海量数据的效率和能力,开辟了国产文本数据统计的先河。
[0024]5、本发明相对于传统的文本数据统计计算方法,在接口层面更加易用,提供了 SQL标准查询语法支持,在统计分析性能方面,由于采用了基于位置感知的二阶段查询协议,实现了查询结果的分布式并行统计,大大提升了全文检索查询结果输出性能,相比原有通过应用层进行数据交换的性能有了极大的提升。
【附图说明】
[0025]图1为基于SQL的文本数据统计集群模式部署图;
[0026]图2为基于SQL的文本数据统计集群并行架构功能示意图。
【具体实施方式】
[0027]以下结合附图对本发明实施例做进一步详述:
[0028]—种基于SQL的文本数据统计实现方法,是在如图1及图2所示的基于SQL的文本数据统计集群系统实现的。该文本数据统计集群系统为一个协调接入服务和多个文本统计执行服务的分布式文本数据统计结构,通过利用已有的全文检索及存储系统的全文检索功能和MPP并行数据库近SQL全集的数据统计分析功能,辅以基于数据分布的负载均衡及就近检索结构,最终提供基于SQL的文本数据统计分布式集群架构。该集群架构包括一个文本统计协调服务器、多个分布式的文本统计执行服务器,外部集成有全文检索及存储服务和MPP并行数据库服务;所述的文本统计协调服务器包括查询接入模块、查询改写服务、资源管理模块、多节点并行调度执行服务和MPP并行数据库执行管理服务;所述的文本统计执行服务器包括执行调度、SQL语法翻译、全文检索执行代理、MPP数据装载模块;MPP数据库执行管理服务和外部MPP并行数据库服务集成,全文检索执行代理模块和外部全文检索及存储服务集成,资源管理模块和外部全文检索接入服务集成。
[0029]下面对文本统计协调器和文本统计执行器的功能分别进行说明:
[0030]1、文本统计协调器负责SQL查询请求接入,SQL查询语义解析,提取文本检索部分并进行查询改写,向文本统计执行服务发送文本检索结果导入请求,使用MPP并行数据库执行改写后SQL,并向客户端发送查询结果。
[0031](1)查询改写流程:识别SQL语句中的文本数据表,提取文本数据表相关的查询条件,进行查询条件下降处理,下降后形成基于文本数据单表子查询,识别子查询投影,构建和子查询投影模式一致的临时表,将子查询替换为临时表查询。
[0032](2)查询条件下降规则:
[0033]针对文本数据表在多表关联中的join位置,进行如下判定:1)当join位置为inner join的左右子表,可下降join中on子句中的条件和join后查询where子句中的条件;2)当join位置为left join的左表,仅能下降join后wh
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1