基于OLAP系统的数据查询方法、装置及系统制造方法及图纸

技术编号:10346392 阅读:149 留言:0更新日期:2014-08-22 11:27
本发明专利技术实施例提供一种基于OLAP系统的数据查询方法、装置及系统,包括:接收用户终端发送的数据查询请求,对第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并对于每个第一分区,建立对应的连接映射关系;对第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,并对每个第二分区,从第二分区中获取第一外键值,第一外键值在一个第一分区的边界值范围内;查询连接映射关系,获取与第一外键值对应的第一哈希子表;扫描第一哈希子表,获取对应的数据,将数据返回用户终端,本发明专利技术实施例通过建立连接映射关系,有效缩短数据查询时间,降低服务器开销。

【技术实现步骤摘要】
基于OLAP系统的数据查询方法、装置及系统
本专利技术实施例涉及计算机技术,尤其涉及一种基于联机分析处理(On-LineAnalytical Processing,简称0LAP)系统的数据查询方法、装置及系统。
技术介绍
OLAP作为数据库系统的一种典型应用场景,主要用于对数据进行查询操作,在对数据的查询过程中经常会涉及到多张数据表的联合查询,表与表之间需要通过连接操作进行关联,常见的连接操作为哈希连接。现有技术中,采用哈希连接的数据查询的方式主要为:数据库系统的后台服务器接收用户发送的数据查询消息,根据该数据查询消息中携带的第一数据表标识和第二数据表的标识,将其中行数较少的第一数据表的主键进行哈希运算,建立共享哈希表,再对第二数据表进行并行扫描,将其中每个查询线程的外键进行哈希运算获取每个线程对应的哈希值,根据每个线程的哈希值对该共享哈希表进行并行扫描,以获取用户需要的完整的数据。但是,因为多线程并行查询存在写冲突,在并行的线程较多的情况下,造成数据查询时间长,服务器的开销大的问题。
技术实现思路
本专利技术实施例提供一种基于OLAP系统的数据查询方法、装置及系统,以克服现有技术中多线程查询时间长,服务器开销大的问题,通过对第一数据表和第二数据表进行分区,并建立连接映射关系,在进行多线程查询的过程中,每个线程通过该连接映射关系,获取并扫描第一哈希子表,从而获取数据,有效缩短数据查询时间,降低服务器开销。本专利技术实施例第一方面提供一种基于OLAP系统的数据查询方法,包括:接收用户终端发送的数据查询请求,所述数据查询请求包括查询信息、第一数据表标识和第二数据表标识;根据所述数据查询请求,对所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并对于每个第一分区,建立对应的连接映射关系,所述连接映射关系包括:所述第一分区的边界值和对应的哈希子表;对所述第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,并对每个第二分区,从所述第二分区中获取第一外键值,所述第一外键值在一个所述第一分区的边界值范围内;查询所述连接映射关系,获取与第一外键值对应的第一哈希子表;扫描所述第一哈希子表,获取与所述查询信息对应的数据,并将所述数据返回用户终端。结合第一方面,在第一方面的第一种的可能的实施方式中,所述对所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并建立连接映射关系,包括:根据所述第一数据表的固有顺序,对所述第一数据表进行分区处理,获取至少两个第一分区;对于每个所述第一分区,根据所述第一分区的主键,进行哈希运算,建立对应的哈希子表;对于每个所述第一分区,根据所述第一分区对应的哈希子表,建立对应的连接映身寸关系。结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,包括:若所述第一数据表有序,则将所述第一数据表按照所述第一数据表的固有顺序进行逻辑分区处理,获取至少两个所述第一分区;或者,若所述第一数据表无序,则在所述第一数据表中增加有序代理列作为主键列,并将所述第一数据表按照所述有序代理列的顺序进行逻辑分区处理,获取至少两个所述第一分区。结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述对所述第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,包括:若所述第一数据表有序,且第二数据表有序,则根据所述第二数据表的固有顺序和并行处理能力对所述第二数据表进行分区处理,获取至少两个第二分区。或者,若所述第一数据表有序,且所述第二数据表无序,则根据并行处理能力对所述第二数据表进行分区处理,获取至少两个第二分区;或者,若所述第一数据表无序,且所述第二数据表无序,则将所述第二数据表中原外键值替换为与所述第一数据表中所述有序代理列对应的新的主键值,并根据并行处理能力对替换后的所述第二数据表进行分区处理,获取至少两个第二分区。结合第一方面和第一方面的第一至第三种中的任一种可能的实施方式,在第一方面的第四种可能的实施方式中,所述扫描所述第一哈希子表,获取与所述查询信息对应的数据,包括:扫描所述第一哈希子表,获取与所述查询信息对应的所述第一数据表和所述第二数据表中的关联行中的所有数据信息作为所述数据。本专利技术实施例第二方面提供一种基于OLAP系统的数据查询装置,包括:收发模块,用于接收用户终端发送的数据查询请求,所述数据查询请求包括查询信息、第一数据表标识和第二数据表标识;处理模块,用于根据所述数据查询请求,对所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并对于每个第一分区,建立对应的连接映射关系,所述连接映射关系包括:所述第一分区的边界值和对应的哈希子表;所述处理模块还用于对所述第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,并对每个第二分区,从所述第二分区中获取第一外键值,所述第一外键值在一个所述第一分区的边界值范围内;获取模块,用于查询所述连接映射关系,获取与第一外键值对应的第一哈希子表;所述获取模块还用于扫描所述第一哈希子表,获取与所述查询信息对应的数据,并通过所述收发模块将所述数据返回用户终端。结合第二方面,在第二方面的第一种的可能的实施方式中,所述处理模块具体用于:根据所述第一数据表的固有顺序,对所述第一数据表进行分区处理,获取至少两个第一分区;对于每个所述第一分区,根据所述第一分区的主键,进行哈希运算,建立对应的哈希子表;对于每个所述第一分区,根据所述第一分区对应的哈希子表,建立对应的连接映身寸关系。结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述处理模块用于:若所述第一数据表有序,则将所述第一数据表按照所述第一数据表的固有顺序进行逻辑分区处理,获取至少两个所述第一分区;或者,若所述第一数据表无序,则在所述第一数据表中增加有序代理列作为主键列,并将所述第一数据表按照所述有序代理列的顺序进行逻辑分区处理,获取至少两个所述第一分区。结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述处理模块还用于:若所述第一数据表有序,且第二数据表有序,则根据所述第二数据表的固有顺序和并行处理能力对所述第二数据表进行分区处理,获取至少两个第二分区。或者,若所述第一数据表有序,且所述第二数据表无序,则根据并行处理能力对所述第二数据表进行分区处理,获取至少两个第二分区;或者,若所述第一数据表无序,且所述第二数据表无序,则将所述第二数据表中原外键值替换为与所述第一数据表中所述有序代理列对应的新的主键值,并根据并行处理能力对替换后的所述第二数据表进行分区处理,获取至少两个第二分区。结合第二方面、第二方面的第一至第三种中的任一种可能的实施方式,在第二方面的第四种可能的实施方式中,所述获取模块具体用于:扫描所述第一哈希子表,获取与所述查询信息对应的所述第一数据表和所述第二数据表中的关联行中的所有数据信息作为所述数据。本专利技术实施例第三方面提供一种基于OLAP系统的数据查询系统,包括:用户终端和第二方面提供的基于OLAP系统的数据查询装置。本专利技术实本文档来自技高网...
基于OLAP系统的数据查询方法、装置及系统

【技术保护点】
一种基于OLAP系统的数据查询方法,其特征在于,包括:接收用户终端发送的数据查询请求,所述数据查询请求包括查询信息、第一数据表标识和第二数据表标识;根据所述数据查询请求,对所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并对于每个第一分区,建立对应的连接映射关系,所述连接映射关系包括:所述第一分区的边界值和对应的哈希子表;对所述第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,并对每个第二分区,从所述第二分区中获取第一外键值,所述第一外键值在一个所述第一分区的边界值范围内;查询所述连接映射关系,获取与第一外键值对应的第一哈希子表;扫描所述第一哈希子表,获取与所述查询信息对应的数据,并将所述数据返回用户终端。

【技术特征摘要】
1.一种基于OLAP系统的数据查询方法,其特征在于,包括: 接收用户终端发送的数据查询请求,所述数据查询请求包括查询信息、第一数据表标识和第二数据表标识; 根据所述数据查询请求,对所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并对于每个第一分区,建立对应的连接映射关系,所述连接映射关系包括:所述第一分区的边界值和对应的哈希子表; 对所述第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,并对每个第二分区,从所述第二分区中获取第一外键值,所述第一外键值在一个所述第一分区的边界值范围内; 查询所述连接映射关系,获取与第一外键值对应的第一哈希子表; 扫描所述第一哈希子表,获取与所述查询信息对应的数据,并将所述数据返回用户终端。2.根据权利要求1所述的方法,其特征在于,所述对所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,并建立连接映射关系,包括: 根据所述第一数据表的固有顺序,对所述第一数据表进行分区处理,获取至少两个第一分区; 对于每个所述第一分区,根据所述第一分区的主键,进行哈希运算,建立对应的哈希子表; 对于每个所述第一分区,根据所述第一分区对应的哈希子表,建立对应的连接映射关系O3.根据权利要求1或2所述的方法,其特征在于,所述第一数据表标识对应的第一数据表进行逻辑分区处理,获取至少两个第一分区,包括: 若所述第一数据表有序,则将所述第一数据表按照所述第一数据表的固有顺序进行逻辑分区处理,获取至少两个所述第一分区; 或者, 若所述第一数据表无序,则在所述第一数据表中增加有序代理列作为主键列,并将所述第一数据表按照所述有序代理列的顺序进行逻辑分区处理,获取至少两个所述第一分区。4.根据权利要求3所述的方法,其特征在于,所述对所述第二数据表标识对应的第二数据表进行分区处理,获取至少两个第二分区,包括: 若所述第一数据表有序,且第二数据表有序,则根据所述第二数据表的固有顺序和并行处理能力对所述第二数据表进行分区处理,获取至少两个第二分区; 或者, 若所述第一数据表有序,且所述第二数据表无序,则根据并行处理能力对所述第二数据表进行分区处理,获取至少两个第二分区; 或者, 若所述第一数据表无序,且所述第二数据表无序,则将所述第二数据表中原外键值替换为与所述第一数据表中所述有序代理列对应的新的主键值,并根据并行处理能力对替换后的所述第二数据表进行分区处理,获取至少两个第二分区。5.根据权利要求1至4任一项所述的方法,其特征在于,所述扫描所述第一哈希子表,获取与所述查询信息对应的数据,包括: 扫描所述第一哈希子表,获取与所述查询信息对应的所述第一数据表和所述第二数据表中的关联行中的所有数据信息作为...

【专利技术属性】
技术研发人员:张宇范旭张兵朱银聪王方舟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1