一种基于内存计算的数据查询加速方法和设备与流程

文档序号:22759851发布日期:2020-10-31 09:58阅读:82来源:国知局
一种基于内存计算的数据查询加速方法和设备与流程

本申请涉及大数据处理领域,更具体地,涉及一种基于内存计算的数据查询加速方法和设备。



背景技术:

自助分析业务系统为电信运营商提供数据提取和分析的自助化平台。此平台利用已有的用户数据资源,通过提取和分析,变为具有商业价值的可用资源。自助分析业务系统支撑运营商内部业务运营分析及其用户自助查询消费记录、套餐使用情况等业务需求,是一种自助类型的数据统计分析服务平台,业务人员在自助分析平台进行数据模型上架、自助取数、数据关联分析、自助报表等操作流程。

如图1所述为现有技术中自助分析业务系统数据获取过程示意图,以某省运营商为例,系统服务的用户覆盖全省及下属各个地市。目前,该省运营商各个地市的业务及用户数据均单独存放在各个地市搭建的本地数据源中,而为高效快速地进行数据理解和处理,保证数据质量和数据完整性,需要汇聚运营商从各个市、县的所有业务及用户数据的关系数据库,以满足用户的个性化自助查询和分析的要求,保障系统能够根据用户查询条件查找出相关数据,并将查询结果反馈给用户。

自助分析业务访问并发量高,地市数据集中化导致自助取数时需要从大数据量中进行复杂查询,部分小量数据频繁加载并展示给前端,执行周期延长,结果反馈延迟,用户等待时间长,影响业务运行效率,用户交互体验差,阻碍电信运营商业务发展。

如何提高自助分析业务系统中的数据查询速度,是目前有待解决的技术问题。



技术实现要素:

本发明提供一种基于内存计算的数据查询加速方法和设备,用以解决现有技术自助分析业务系统中查找数据执行周期长,结果反馈延迟的技术问题,所述方法应用于包括数据仓库和内存数据库的系统中,所述内存数据库中存储有从所述数据仓库提取的热数据,所述方法包括:

接收用户发送的数据查询请求;

根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果;

若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程。

优选地,在接收用户发送的数据查询请求之前,还包括:

接收监测到的热数据事件,所述热数据事件是根据所述数据仓库中各数据页的访问频次触发的;

根据所述热数据事件确定所述数据仓库中的待提取热数据的热数据量;

根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中。

优选地,根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中,具体为:

判断所述可用存储空间是否大于所述热数据量;

若是,基于所述可用存储空间将所述待提取热数据加载到所述内存数据库中;

若否,基于扩展后的可用存储空间将所述待提取热数据加载到所述内存数据库中。

优选地,在根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中之前,所述方法还包括:

基于预设数据量对所述待提取热数据划分,所述预设数据量小于所述热数据量;

根据所述划分的结果确定所述待提取热数据的多个加载批次,以根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据按多个所述加载批次加载到所述内存数据库中。

优选地,若所述查询结果中不存在所述结果数据,所述方法还包括:

根据所述执行计划查询所述数据仓库,以判断所述数据仓库中是否存在所述结果数据;若所述数据仓库中也不存在所述结果数据,向所述用户返回查询失败的通知。

相对应的,本发明还提出了一种基于内存计算的数据查询加速设备,所述设备应用于包括数据仓库和内存数据库的系统中,所述内存数据库中存储有从所述数据仓库提取的热数据,所述设备包括:

接收模块,用于接收用户发送的数据查询请求;

确定模块,用于根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果;

返回模块,用于若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程。

优选地,还包括加载模块,用于:

接收监测到的热数据事件,所述热数据事件是根据所述数据仓库中各数据页的访问频次触发的;

根据所述热数据事件确定所述数据仓库中的待提取热数据的热数据量;

根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中。

优选地,所述加载模块,具体用于:

判断所述可用存储空间是否大于所述热数据量;

若是,基于所述可用存储空间将所述待提取热数据加载到所述内存数据库中;

若否,基于扩展后的可用存储空间将所述待提取热数据加载到所述内存数据库中。

优选地,所述加载模块,还用于:

基于预设数据量对所述待提取热数据划分,所述预设数据量小于所述热数据量;

根据所述划分的结果确定所述待提取热数据的多个加载批次,以根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据按多个所述加载批次加载到所述内存数据库中。

优选地,还包括查询模块,用于:

根据所述执行计划查询所述数据仓库,以判断所述数据仓库中是否存在所述结果数据;若所述数据仓库中也不存在所述结果数据,向所述用户返回查询失败的通知。

与现有技术相比,本发明具备以下有益效果:

本发明公开了一种内存计算的数据查询加速方法和设备,应用于包括数据仓库和内存数据库的系统中,所述内存数据库中存储有从所述数据仓库提取的热数据,接收用户发送的数据查询请求,根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果,若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程,实现缩短数据查询的执行周期,提高自助分析业务系统中的数据查询速度以及提升了用户交互体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了现有技术自助分析业务系统数据获取过程示意图;

图2示出了本发明优选实施例提出的一种基于内存计算的数据查询加速方法的流程示意图;

图3示出了本发明具体实施例提出的一种将热数据加载至内存数据的方法的流程示意图;

图4示出了本发明又一实施例提出的一种基于内存计算的数据查询加速方法的流程示意图;

图5示出了本发明实施例中提出的本发明中的系统结构示意图;

图6示出了本发明实施例提出的一种基于内存计算的数据查询加速设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如背景技术中所述,自助分析业务系统是为电信运营商提供数据提取和分析的自助化平台,用户可在该平台上进行数据模型上架、自助取数、数据关联分析、自助报表等操作流程。

自助分析业务访问并发量高,地市数据集中化导致自助取数时需要从大数据量中进行复杂查询,部分小量数据频繁加载并展示给前端,执行周期延长且结果反馈延迟,影响业务运行效率。

因此,本发明提出了一种基于内存计算的数据查询加速方法,用以解决现有技术中查找数据执行周期长、结果反馈延迟以及自助分析业务运行效率低下的问题。

如图2所示为本发明优选实施例提出的一种基于内存计算的数据查询加速方法的流程示意图,该方法应用于包括数据仓库和内存数据库的系统中,所述内存数据库中存储有从所述数据仓库提取的热数据,接收用户发送的数据查询请求,根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果,若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程,该方法包括以下步骤:

步骤s201、接收用户发送的数据查询请求。

内存数据库中存储有从数据仓库提取的热数据,数据仓库为决策支持系统和联机分析应用数据源的结构化数据环境,被用于研究和解决从数据库中获取信息的问题,内存数据库为数据存储在内存中的数据库,而热数据是需要被计算节点频繁访问查询的在线类数据。

本步骤中,数据查询请求为用户通过自助分析业务平台发送的查询请求,所述系统接收该请求。

为了更加快速对数据进行查询,在本发明优选实施例中,在接收用户发送的数据查询请求之前,还包括:

接收监测到的热数据事件,所述热数据事件是根据所述数据仓库中各数据页的访问频次触发的;

根据所述热数据事件确定所述数据仓库中的待提取热数据的热数据量;

根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中。

对系统存储使用的数据可以有两种类型的分类,一种是按数据的大小划分,分为大数据和小数据,另一种是按数据的访问频次进行划分,分为热数据和冷数据,热数据是需要被计算节点频繁访问的在线类数据,访问频次需求大,效率要求高,相应的冷数据则是不需要被经常访问的数据。

而本发明中的方法将访问频次较高的热数据加载至内存数据库中,而内存数据库是基于内存建立的数据库,可以保障数据读写性能的高效性和及时性。

本步骤中,接收监测到的热数据事件,该热数据事件是根据数据仓库中各数据页的访问频次触发的,可以预先设置热数据访问频次阈值,当数据仓库中的数据页的访问频次达到热数据访问频次阈值,则触发热数据事件,然后根据该热数据事件确定其对应的数据仓库中待提取热数据的热数据量,然后根据该热数据量和内存数据库的可用存储空间将待提取热数据加载至内存数据库中,将其余非热数据继续存储至数据仓库中。

此外,还可设置温数据访问频次阈值,温数据是预设时间周期内数据页的访问频次小于热数据访问频次的数据,数据仓库中可划分出两个区域,一区域存储着温数据,另一区域存储着冷数据,当数据仓库中数据页的访问频次达到温数据访问阈值且未达到热数据访问频次时,将对应数据页以及数据量加载至数据仓库中温数据存储区域,将未达到温数据访问频次的冷数据加载至冷数据存储区域中,实现数据的查询优先级,实现对经常被访问的数据更快速的查询确定。

为了更准确的将热数据加载至内存数据库中,在本发明优选实施例中,根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中,具体为:

判断所述可用存储空间是否大于所述热数据量;

若是,基于所述可用存储空间将所述待提取热数据加载到所述内存数据库中;

若否,基于扩展后的可用存储空间将所述待提取热数据加载到所述内存数据库中。

具体的,当确定出待提取热数据的热数据量时,会判断内存数据库的可用存储空间是否大于所述热数据量,若是,则直接将待提取热数据加载至内存数据库中,若否,则将内存数据库的可用存储空间进行扩展后再将待提取热数据加载到内存数据库中,

同时,系统会实时或定期监测内存数据库中热数据在预设时间周期内的访问频次,当监测到内存数据库中热数据的访问频次下降至预设热数据访问频次时,则将对应热数据从内存数据库中移出至数据仓库中,也可移出至设置的温数据存储区域或冷数据存储区域,节省内存数据库使用资源,使系统中的数据分布更加合理、查询更加高效。

内存数据库所在的内存节点可以是系统内其中的一个或多个节点,系统中还可预先设置空闲存储节点或备用存储节点,当系统判断到待接入热数据的热数据量大于内存数据库的可用存储空间时便会执行扩展可用存储空间,将空闲存储节点或备用存储节点进行启用,若是空闲存储节点或备用存储节点已用完则进行联网将待提取热数据存储至服务器中。

需要说明的是,以上扩展可用存储空间和将数据页按访问频次进行热数据、温数据、冷数据的优先级划分的方案仅为本申请中的一种具体实现方式,其他扩展可用存储空间,和根据数据的不同访问方式例如访问的在线时长以及不同数据类型对应的权重来划分数据的存储优先级的方式,均属于本申请的保护范围。

为了更加快速的将待提取热数据加载至内存数据库中,在本发明优选实施例中,在根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中之前,所述方法还包括:

基于预设数据量对所述待提取热数据划分,所述预设数据量小于所述热数据量;

根据所述划分的结果确定所述待提取热数据的多个加载批次,以根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据按多个所述加载批次加载到所述内存数据库中。

具体的,为了防止一次性加载至内存数据库的待提取热数据过大导致系统卡顿和占用过多的系统资源,会基于预设数据量对待提取热数据进行划分,该预设数据量小于热数据量,根据划分的结果确定待提取热数据的多个加载批次,根据热数据量内存数据库的可用存储空间将待提取热数据按确定的加载批次依次加载至内存数据库中。

另外,将待提取热数据划分为多个加载批次还可根据待提取热数据中的数据类型进行划分,根据不同类型划分不同的加载批次进行加载,例如视频类、文档类以及账单类等。

本领域技术人员可根据实际情况灵活设置预设数据量加载批次或按不同数据类型进行划分加载批次,这并不影响本申请的保护范围。

步骤s202、根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果。

具体的,在接收到数据查询请求后会触发一个与查询请求对应的查询进程,系统将查询请求中提交的sql语句进行解析、优化,生成对应的执行计划,然后系统执行该执行计划从内存数据库中查找并确定查询结果。

执行计划也可以是数据查询请求中已经生成的可直接执行的计划,当系统接收该数据查询请求后直接根据该执行计划开启对应的查询进程从内存数据库中确定查询结果。

步骤s203、若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程。

具体的,查询进程在内存数据库中进行查询,若存在与数据查询请求对应的结果数据,则将该结果数据返回给用户,并结束对应的查询进程,系统释放查询进程占用的内存、计算、网络传输等资源。

为了更准确的确定查询结果,在本发明优选实施例中,若所述查询结果中不存在所述结果数据,所述方法还包括:

根据所述执行计划查询所述数据仓库,以判断所述数据仓库中是否存在所述结果数据;若所述数据仓库中也不存在所述结果数据,向所述用户返回查询失败的通知。

具体的,查询进程若在内存数据库中进行查询的查询结果中不存在结果数据,则根据执行计划查询数据仓库中是否存在结果数据。

若数据仓库中预先设置有温数据存储区域和冷数据存储区域,则先查询温数据存储区域是否有结果数据,仍没有结果数据,则再查询冷数据存储区域,以判断数据仓库中是否存在结果数据。

查询完内存数据库和数据仓库后若是均没有对应的结果数据则返回不存在结果,然后结束查询进程并释放查询进程占用的内存、计算、网络传输等资源。

查询进程在整个系统中只要查询到对应的结果数据时都将该结果数据返回给用户并根据用户下一步指示进行操作,同时,系统会将该被访问的结果数据访问频次进行更新,以便定期针对每个数据的访问频次决定该数据是加载至内存数据库中还是温数据存储区或冷数据存储区。

通过以上技术方案,所述内存数据库中存储有从所述数据仓库提取的热数据,接收用户发送的数据查询请求,根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果,若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程,实现缩短数据查询的执行周期,提高自助分析业务系统中的数据查询速度以及提升了用户交互体验。

为了进一步阐述本发明的技术思想,如图3所示为本发明具体实施例提出的一种将热数据加载至内存数据库的方法,该方法应用于包括数据仓库和内存数据库的系统中,该方法包括以下步骤:

步骤s301、系统实时接收热数据事件。

首先,汇集地市关系型数据库或大数据存储中的业务数据源到地市集中关系型数据仓库,形成统一的业务大数据池。

具体的,系统实时的接收热数据事件,而热数据事件是由数据仓库中各数据页的访问频次触发的,系统会实时或定期监测数据仓库以及内存数据库中各数据页在预设时间周期内的访问频次,当该访问频次达到预设热数据访问频次时便会触发热数据事件,访问频次未达到预设热数据访问频次的数据页则放置在数据仓库中。

另外,还可以在数据仓库中设置温数据存储区域和冷数据存储区域,设置预设温数据访问频次,该预设温数据访问频次小于预设热数据访问频次,将数据仓库中的数据页按温数据和冷数据进行划分,以便在进行查询时按照内存数据库—温数据存储区域—冷数据存储区域的顺序进行查询,通过将数据页按访问频次进行划分能更加快速的对用户的数据查询请求进行查询反馈。

步骤s302、确定待提取热数据的热数据量。

具体的,系统接收到热数据事件后,根据该热数据事件确定数据仓库中对应的待提取热数据的热数据量。

步骤s303、将待提取热数据加载至内存数据库的可用存储空间。

具体的,系统确定出待提取热数据的热数据量后,根据该热数据量需要的存储空间与内存数据库的可用存储空间进行对比,若可用存储空间满足热数据量需要的存储空间,则将待提取热数据加载至内存数据库中,若可用存储空间不满足热数据量需要的存储空间,则将内存数据库的可用存储空间进行扩展后再将待提取热数据加载至内存数据库中。

内存数据库所在的内存节点可以是系统内其中的一个或多个节点,系统中还可预先设置空闲存储节点或备用存储节点,当系统判断到待接入热数据的热数据量大于内存数据库的可用存储空间时便会执行扩展可用存储空间,将空闲存储节点或备用存储节点进行启用,若是空闲存储节点或备用存储节点已用完则进行联网将待提取热数据存储至服务器中。

另外,上述系统与自助分析系统相连接,具体是内存数据库与自助分析系统相连接,如图5所示为本发明系统组成示意图。

通过以上技术方案,系统实时的接收热数据事件,并对存储在数据仓库中的大量数据进行热数据提取,进而根据待提取热数据的热数据量和内存数据库的可用存储空间将待提取热数据存储到内存数据库中进行加速处理分析,查询结果可快速反馈给用户,达到数据查询请求响应延迟,提高业务运行效率。

为了更好的提升数据查询的速度,如图4所示为本发明又一实施例提出了一种基于内存计算的数据查询加速方法的流程示意图,该方法应用于包括数据仓库和内存数据库的系统中,所述内存数据库中存储有从所述数据仓库提取的热数据,该方法包括以下步骤:

步骤s401、接收用户发送的数据查询请求。

具体的,用户可通过前端自助分析取数业务系统发送相应的取数请求,也即数据查询请求。

步骤s402、基于数据查询请求生成执行计划。

具体的,系统在接收到数据查询请求时,会开启一个对应的查询进程,而数据查询请求中包含着sql语句,系统会将查询请求中的sql语句进行解析、优化,然后生成对应的执行计划。

步骤s403、在内存数据库中执行生成的执行计划。

步骤s404、判断是否有符合查询条件的结果数据。

具体的,系统在内存数据库中按执行计划执行时,同时通过查询进程确定内存数据库中是否有符合查询条件的结果数据,若有符合查询条件的结果数据,则执行步骤s407,若没有符合查询条件的结果数据,则执行步骤s405。

步骤s405、执行计划下推至数据仓库。

具体的,当在内存数据库中未查询到符合查询条件的结果数据时,将执行计划下推至数据仓库中执行,若预先设置有温数据存储区域和冷数据存储区域,则按温数据存储区域—冷数据存储区域的顺序进行查询。

步骤s406、判断数据仓库中是否有符合查询条件的结果数据。

具体的,判断数据仓库中是否有符合查询条件的结果数据,若是,则执行步骤s407,若否,则执行步骤s409。

步骤s407、获取结果数据。

具体的,通过查询进程确定出符合条件的结果数据后直接获取该结果数据。

步骤s408、反馈结果数据。

步骤s409、查询结束。

具体的,关闭查询进程,释放查询进程占用的内存、计算、网络传输等资源。

通过应用以上技术方案,接收到用户发送的数据查询请求,解析数据查询请求生成执行计划,并依次在内存数据库、数据仓库中执行,数据仓库与热数据隔离开,利用内存数据库处理特性,大大提高了数据查询性能和效率,解决了全量大数据分析场景中,查询数据时效性差的问题。

与本申请优选实施例中的一种基于内存计算的数据查询加速方法相对应,本申请还提出了一种基于内存计算的数据查询加速设备,应用于包括数据仓库和内存数据库的系统中,所述内存数据库中存储有从所述数据仓库提取的热数据,如图6所示,所述设备包括:

接收模块601,用于接收用户发送的数据查询请求;

确定模块602,用于根据所述数据查询请求对应的执行计划从所述内存数据库中确定查询结果;

返回模块603,用于若在所述查询结果中存在与所述数据查询请求对应的结果数据,将所述结果数据返回所述用户并结束所述数据查询请求对应的查询进程。

在具体的应用场景中,还包括加载模块,用于:

接收监测到的热数据事件,所述热数据事件是根据所述数据仓库中各数据页的访问频次触发的;

根据所述热数据事件确定所述数据仓库中的待提取热数据的热数据量;

根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据加载到所述内存数据库中。

在具体的应用场景中,所述加载模块,具体用于:

判断所述可用存储空间是否大于所述热数据量;

若是,基于所述可用存储空间将所述待提取热数据加载到所述内存数据库中;

若否,基于扩展后的可用存储空间将所述待提取热数据加载到所述内存数据库中。

在具体的应用场景中,所述加载模块,还用于:

基于预设数据量对所述待提取热数据划分,所述预设数据量小于所述热数据量;

根据所述划分的结果确定所述待提取热数据的多个加载批次,以根据所述热数据量和所述内存数据库的可用存储空间将所述待提取热数据按多个所述加载批次加载到所述内存数据库中。

在具体的应用场景中,还包括查询模块,用于:

根据所述执行计划查询所述数据仓库,以判断所述数据仓库中是否存在所述结果数据;若所述数据仓库中也不存在所述结果数据,向所述用户返回查询失败的通知。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1