数据储存方法及系统、数据查询方法及系统与流程

文档序号:25213537发布日期:2021-05-28 14:10阅读:61来源:国知局
数据储存方法及系统、数据查询方法及系统与流程

本发明涉及数据处理领域,尤其涉及一种数据存储技术和一种数据查询技术。



背景技术:

现今业务系统(记为源业务系统)往往承担数据写入和数据查询双重功能,业务系统往往按照业务类别将数据分类存储于相应的数据库(记为源数据库)中。

用户发起的查询请求往往涉及多种业务,故源业务系统需要根据查询请求分别从源数据库中相对应的子数据库中抽取数据,并对所抽取的数据进行统计、整合及计算等处理步骤后生成查询结果进行展示;故当业务类别多,且各种业务所对应的数据量大时,查询速度将会变慢。



技术实现要素:

本发明针对现有查询过程中需要根据查询请求分别从多个子数据库中抽取数据,还需对抽取的数据进行统计、整合及计算等处理,步骤繁琐,查询速度慢缺点,提供了一种基于查询维度整合数据并存储的数据存储技术,还提供一种基于整合数据所进行的数据查询技术,其查询速度快。

为了解决上述技术问题,本发明通过下述技术方案得以解决:

本发明提出一种数据存储方法,包括以下步骤:

配置查询维度、业务标识以及所述查询维度和所述业务标识的映射数据;

基于外部的源数据库获取包含业务标识的业务数据,并基于所述映射数据将所述业务数据作为相应查询维度的待处理数据;

对各查询维度所对应的待处理数据进行处理,获得相应的整合数据并将其存储至目标数据库。

作为一种可实施方式:

所述映射数据包括第一映射数据和第二映射数据;

所述第一映射数据包括相映射的查询维度和主题列表,所述主题列表包括至少一个业务主题;

所述第二映射数据包括相映射的业务主题和标识列表,所述标识列表包括至少一个业务标识。

作为一种可实施方式:基于预设的源数据库获得包含业务标识的业务数据;

基于所述业务标识从所述第二映射数据中提取与所述业务数据相匹配的业务主题;

基于业务主题从所述第一映射数据中提取与所述业务数据相映射的查询维度,将所述业务数据作为所述查询维度的待处理数据。

作为一种可实施方式:

基于查询维度提取预设的数据处理规则,基于所述数据处理规则对所述查询维度的待处理数据进行处理,获得相应的整合数据并将其存储至目标数据库。

本发明还提出一种数据存储系统,包括目标数据库和数据处理模块,所述数据处理模块与所述目标数据库信号相连;

所述数据处理模块,用于获取包含业务标识的业务数据,并基于预设的映射数据将所述业务数据作为相应查询维度的待处理数据;还用于对各查询维度所对应的待处理数据进行处理,获得相应的整合数据;

所述目标数据库,用于基于查询维度存储所述整合数据。

作为一种可实施方式,所述数据处理模块包括若干个处理单元,各处理单元均与所述目标数据库信号相连;

所述处理单元与所述查询维度一一对应,所述处理单元用于获取并处理所对应的查询维度的待处理数据,获得相应的整合数据,并将所述整合数据存储于所述目标数据库。

作为一种可实施方式,所述数据处理模块还包括分发单元,该分发单元包括依次相连的订阅子单元、清洗子单元和发布子单元,其中发布子单元与各处理单元信号相连;

所述订阅子单元,用于获取原始数据;

所述清洗子单元,用于对所述原始数据进行清洗,获得包含业务标识的业务数据,还用于基于预设的映射数据获取与所述业务标识相映射的业务主题;

所述发布子单元,用于基于业务主题发布所述业务数据;

所述处理单元,用于基于业务主题获取与其查询维度相对应的业务数据,将所得业务数据作为待处理数据进行处理,获得相应的整合数据。

本发明还提出一种数据查询方法,包括以下步骤:

获取查询请求,基于所述查询请求于上述任意一项所述的数据存储系统中的目标数据库进行查询,获得并反馈查询结果。

本发明还提出一种数据查询系统,其特征在于包括查询模块、目标数据库和数据处理模块;

所述数据处理模块,与所述目标数据库信号相连,用于获取包含业务标识的业务数据,并基于预设的映射数据将所述业务数据作为相应查询维度的待处理数据;还用于对各查询维度所对应的待处理数据进行处理,获得相应的整合数据;

所述目标数据库,用于基于查询维度存储所述整合数据;

所述查询模块,与所述目标数据库信号相连,用于获取查询请求,并基于所述查询请求于所述目标数据库中进行查询,生成并反馈相应的查询结果。

作为一种可实施方式,还包括提取模块和源数据库,所述源数据库分别与所述数据处理模块和所述提取模块信号相连;

所述源数据库,用于存储原始数据;

所述数据处理模块,用于基于所述源数据库获取原始数据,还用于基于所述原始数据生成包含业务标识的业务数据;

所述提取模块,用于获取提取请求,并基于所述提取请求于所述源数据库中提取相应的原始数据并反馈。

本发明由于采用了以上技术方案,具有显著的技术效果:

本发明通过对业务数据按照查询维度进行处理后储存,使得后续对数据进行查询的过程中,可根据查询维度于目标数据库中进行单表查询即可直接获得查询结果,有效提升检索速度。

附图说明

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

图1是本发明一种数据存储方法的流程示意图;

图2是实施例2中数据存储系统的模块连接示意图;

图3是实施例3中数据存储系统的模块连接示意图;

图4是图3中分发单元120的模块连接示意图;

图5是本发明一种数据查询系统的模块连接示意图。

具体实施方式

下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。

实施例1、一种数据存储方法,用于在源业务系统将所产生的数据按照业务类别写入源数据库300后,将源数据库300中的数据基于查询维度进行汇总整合,并将所得的整合数据存储至目标数据库200中,以便于为后续查询过程提供数据支持。

上述将源数据中的数据基于查询维度进行汇总整合,并将所得的整合数据存储至目标数据库200中的步骤如图1所示,包括以下步骤:

s100、配置查询维度、业务标识以及所述查询维度和所述业务标识的映射数据;

本领域技术人员可根据实际需要对上述数据进行配置;

例如在加油站领域中,查询维度包括订单维度、优惠券维度和油站维度,业务标识可与源数据库300中业务类别相对应,由技术人员根据实际情况建立所述查询维度和所述业务标识的映射关系。

s200、基于源数据库300获取包含业务标识的业务数据,并基于所述映射数据将所述业务数据作为相应查询维度的待处理数据;

s300、对各查询维度所对应的待处理数据进行处理,获得相应的整合数据并将其存储至目标数据库200,即,目标数据库200按照查询维度分类存储整合数据。

以订单维度为例,基于业务标识和映射数据获取订单维度下的多类业务数据并进行汇总整合,将所得整合数据发送至目标数据库200,存储于订单维度对应的宽表中,即,将源数据库300的多表数据转换为单表数据;

本实施例通过对源数据库300中数据进行处理后储存,使得后续对数据进行查询的过程中,可根据实际需要在源数据库300进行单表查询或在目标数据库200中进行单表查询,有效提升检索速度。

进一步地,步骤s100中所述的映射数据包括第一映射数据和第二映射数据;

所述第一映射数据包括相映射的查询维度和主题列表,所述主题列表包括至少一个业务主题;

所述第二映射数据包括相映射的业务主题和标识列表,所述标识列表包括至少一个业务标识。

当业务标识的数量较少时,可直接令查询维度与业务标识相映射,但在实际使用过程中,业务标识的数量较多,且业务标识将随着业务或用户需求的变更而变化,当查询维度与业务标识直接映射时,不便于后续对映射关系的管理与维护;如加油站为增加用户粘性,增加会员制度,业务标识将新增等级和积分,查询维度将新增会员维度;此时需为涉及等级和积分的查询维度(如订单维度)新增映射关系,还需为会员维度新增映射关系,工作量大,配置效率低。

本实施例通过业务主题对业务标识进行分组,针对新增的业务标识等级与积分,仅需将其添加至相应业务主题的标识列表中,针对新增的会员维度,仅将其与相应的主题列表相映射即可,由此可见,本实施例通过对第一映射数据和第二映射数据的设计能够便于映射关系的维护。

进一步地,步骤s200中,获取包含业务标识的业务数据基于所述映射数据将所述业务数据作为相应查询维度的待处理数据的具体步骤为:

s210、获得包含业务标识的业务数据,具体步骤为:

监听源数据库300的binlog日志,获取源数据库300发生更新的数据,获得原始数据;

对所述原始数据进行预处理,获得包含业务标识的业务数据;

本领域技术人员可根据实际需要自行设置预处理方式,本实施例基于原始数据获取其所在表的表名,将所述表名作为业务标识,并对所得原始数据进行格式转换和清洗,从而获得相应的业务数据。

s220、基于所述业务标识从所述第二映射数据中提取与所述业务数据相匹配的业务主题;

s230、基于业务主题从所述第一映射数据中提取与所述业务数据相映射的查询维度,将所述业务数据作为所述查询维度的待处理数据。

一条业务数据可作为多个查询维度下的待处理数据,如用户的积分所对应的业务数据,其将在订单维度下被整合,以体现某一订单下用户的积分变动,还将在会员维度下被整合,以体现用户的积分变化情况以及当前剩余积分。

进一步地,s300中对各查询维度所对应的待处理数据进行处理,获得相应的整合数据并存储的具体步骤为:

基于查询维度提取预设的数据处理规则,基于所述数据处理规则对所述查询维度的待处理数据进行处理,获得相应的整合数据并储存。

本领域技术人员可根据实际情况预先为各查询维度设置相对应的数据处理规则,如统计、数据整合和计算,令响应查询请求时,可直接从目标数据库200中提取相应的查询结果,无需在查询过程中进行复杂的运算。

实施例2、一种数据存储系统,用于实现实施例1所述的数据存储方法,如图2所示,其包括目标数据库200和数据处理模块100,所述数据处理模块100与所述目标数据库200信号相连,还与外部的源数据库300信号相连;

所述数据处理模块100,用于基于外部的源数据库300获取包含业务标识的业务数据,并基于预设的映射数据将所述业务数据作为相应查询维度的待处理数据;还用于对各查询维度所对应的待处理数据进行处理,获得相应的整合数据;

所述目标数据库200,用于基于查询维度存储所述整合数据,即,所述目标数据库200中存储有若干张宽表,所述宽表与所述查询维度一一对应。

本实施例通过对数据处理模块100的设计,基于查询维度对源数据库300中的数据进行处理及整合,从而将源数据库300中的多表数据(源数据库300与查询维度相对应的若干张数据表)转换为单表数据(目标数据库200与查询维度相对应的宽表),以便于后续对数据进行查询。

进一步地,所述数据处理模块100包括若干个处理单元110,所述处理单元110分别与所述目标数据库200和所述源数据库300信号相连;

所述处理单元110与所述查询维度一一对应,所述处理单元110用于获取并处理所对应的查询维度的待处理数据,获得相应的整合数据,并将所述整合数据存储于所述目标数据库200。

每个处理单元110进行数据处理的步骤相同,以下以一个处理单元110为例,对其数据处理的步骤进行详细介绍:

①、处理单元110基于外部的源数据库300获取原始数据,具体步骤为:

本实施例中处理单元110通过mq(消息队列)订阅源数据库300的binlog日志,当源数据库300中数据发生更新时,处理单元110订阅获得更新的数据作为原始数据,例如可采用现有已公开的阿里云订阅服务(kafka)。

基于阿里云订阅服务订阅获得的数据为sql语句,其包含表名,故本实施例中将表名转换为业务标识。

本实施例通过订阅源数据库300的binlog日志的方式获取原始数据,不会对源业务系统和源数据库300造成影响,其与源数据库300的耦合度低,可与不同数据存储方式的源数据库300进行对接,如mysql、oracle、elasticsearch、clickhouse等,可扩展性强。

在实际使用过程中,可根据实际需要与一个或多个源数据库300对接,基于实施例1所提供的数据存储方法进行数据整合及存储。

②、处理单元110根据预设的数据处理规则对所得原始数据进行处理后,获取整合数据并存储,具体步骤为:

基于处理单元110所对应的查询维度,为所述处理单元110设置数据处理规则,该数据处理规则包括清洗规则和整合规则;

处理单元110按照所述清洗规则对所得原始数据格式转换及清洗,获得包含业务标识的业务数据,保留业务标识与其查询维度相对应的业务数据,如处理单元110对应的维度为会员维度时,保留业务标识与会员维度相映射的业务数据,作为该处理单元110的待处理数据。

处理单元110按照所述整合对所得待处理数据进行处理,生成相应的整合数据,将所述整合数据写入目标数据库200中,如整合数据与为会员维度的数据,处理单元110则将其写入目标数据库200中与会员维度对应的宽表中。

实施例3、参照图3,于实施例2中数据处理模块100中增加分发单元120,其余均等同于实施例2;

如图4所示,所述分发单元120包括依次相连的订阅子单元121、清洗子单元122和发布子单元123,其中订阅子单元121与外部的源数据库300信号相连,发布子单元123与各处理单元110信号相连;

所述订阅子单元121,用于从源数据库300中获取原始数据;

所述清洗子单元122,用于对所述原始数据进行清洗,获得包含业务标识的业务数据,还用于基于预设的映射数据获取与所述业务标识相映射的业务主题;

所述发布子单元123,用于基于业务主题发布所述业务数据;

所述处理单元110,用于基于业务主题获取与其查询维度相对应的业务数据,将所得业务数据作为待处理数据进行处理,获得相应的整合数据。

本实施例中由订阅子单元121通过mq订阅源数据库300的binlog日志,获得原始数据;由清洗子单元122基于预设的清洗规则对所述原始数据进行格式转换(以匹配传输格式,如本实施例将原始数据转换为jsonutf8编码的格式)和清洗,获得包含业务标识的业务数据,且所述清洗子单元122基于业务标识按照预设的映射数据确定各业务数据所对应的业务主题,由发布子单元123通过mq按业务主题发布各业务数据。

即,将所得业务数据发布至相应业务主题所对应的消息队列,各处理单元110仅需订阅相对应的业务主题即可。

本实施例中各处理单元110仅需将其订阅获得的业务数据作为待处理数据,按照预设的数据处理规则进行统计、数据整合和计算,以获得相应的整合数据,即,各处理单元110按照实施例1中第一映射数据获取与其相对应的主题列表,按照所述主题列表中的业务主题进行消息订阅。

实施例2中各处理单元110直接订阅源数据库300的binlog日志,每个处理单元110都需要对订阅所得的原始数据进行清洗,且处理单元110所订阅的原始数据中可能不存在作为该处理单元110待处理数据的业务数据,即,重复进行数据筛选工作且筛选后的待处理数据可能为空,该方案中各处理单元110具有不必要的开销。

本实施例通过对分发单元120的设计,由分发单元120订阅源数据库300的binlog日志,仅需分发单元120对所得原始数据进行清洗,且由分发单元120将清洗所得的业务数据进行发布,由各处理单元110订阅并处理其所需的数据,有效避免计算资源的浪费,有效提升数据整合的速率。

本实施例所公开的数据存储系统应用于加油站时,数据存储系统的工作内容包括:

1、数据配置:

基于上述源数据库300中所保存的数据表类别为分发单元120配置业务标识,如源数据库300中存储订单表(加油订单)、用户表、油站表、班次表、充值表、积分表、等级表(会员等级)和卡表(用户卡),配置与各数据表的表名一一对应的业务标识;

基于数据查询需求为各处理单元110配置查询维度,本案例中查询维度包括订单维度、会员维度、优惠券维度和油站维度;

对业务标识进行分组,各组业务标识所对应的业务主题不同;

为各查询维度配置与其相映射的业务主题。

为分发单元120配置数据清洗规则以及消息发布的主题(业务主题);

为处理单元110配置消息订阅的主题(业务主题)以及相应的数据处理规则,各处理单元110的数据处理规则不同。

于目标数据库200中构建与查询维度一一对应的宽表,包括订单宽表、会员宽表、劵宽表和油站宽表;

订单宽表中将每一笔加油订单及其关联数据(如油站信息、油品信息、支付信息和用户信息)进行整合,便于快速查询订单详情。

会员宽表中将基于会员数据,将各会员的关联数据(加油订单、充值订单、积分信息和等级信息)进行整合,用于维护会员数据,便于快速查询会员的实时变更,以及各会员的消费记录、会员等级及会员积分等关联数据。

劵宽表中用于提供劵的详细信息,如每张优惠券情况和来源途径。

油站宽表的用于提供油站的详细关联信息,如油站的地理位置以及相对应的商户信息。

2、数据分发:

分发单元120通过订阅源数据库300的binlog日志,提取binlog日志中记录的insert和update语句,并按照所述数据清洗规则进行清洗后,获得相应的业务数据;

按照业务数据所对应的业务主题,将该业务数据发布至与所述业务主题相对应的消息队列中。

3、数据处理:

处理单元110从所订阅的消息队列中获取消息并处理,获得相应的整合数据;

将所得整合数据写入目标数据库200中相应的宽表中存储,如处理单元110对应的查询维度为订单维度,以订单id作为唯一主键于目标数据库200的订单宽表中新增一数据行,并根据订单宽表的字段(技术人员自行配置)将所订阅数据进行相应处理后写入该数据行进行存储。

实施例4、一种数据查询方法,包括以下步骤:获取查询请求,基于所述查询请求于实施例2或实施例3所述的数据存储系统中的目标数据库200进行查询,获得并反馈查询结果。

上述查询请求特指需要对从源数据库300至少两个数据表中抽取数据和/或需要对所抽取的数据进行运算的复杂查询请求。

由于目标数据库200中存储的数据为与查询维度相对应的宽表,故基于查询请求可直接从对应宽表中提取相应数据作为查询结果,查询效率高。

实施例5、一种数据查询系统,用于执行实施例4所述的数据查询方法,参照图5其包括查询模块400、目标数据库200和数据处理模块100;所述数据处理模块100,与所述目标数据库200信号相连,用于获取包含业务标识的业务数据,并基于预设的映射数据将所述业务数据作为相应查询维度的待处理数据;还用于对各查询维度所对应的待处理数据进行处理,获得相应的整合数据;

所述目标数据库200,用于基于查询维度存储所述整合数据。

所述查询模块400,与所述目标数据库200信号相连,用于获取查询请求,并基于所述查询请求于所述目标数据库200中进行查询,生成并反馈相应的查询结果。

所述查询模块400与外部的源业务系统信号相连或不相连;

当查询模块400与源业务系统信号相连时,由源业务系统采集用户的操作数据,并生成相应的查询请求;所述源业务系统将所述查询请求发送至查询模块400,由所述查询模块400于目标数据库200中进行查询,生成相应的查询结果并通过源业务系统反馈给用户。

当查询模块400与源业务系统信号不相连时,由查询模块400采集用户的操作数据并生成相应的查询请求(包含查询维度);查询模块400基于查询请求于目标数据库200中进行查询,生成相应的查询结果反馈给用户;

当查询模块400与源业务系统信号不相连时,查询模块400例如为查询业务系统,其与源业务系统相分离,所述查询业务系统基于目标数据库200进行数据查询,其查询结果为数据处理模块100对原始数据加工后的结果,大大减少了查询业务系统在查询过程中的运算量,有效提高查询速度,且查询业务系统与源业务系统相分离,查询业务不会影响源业务系统的核心业务(如加油、充值等)。

进一步地,还包括提取模块500和源数据库300,所述源数据库300分别与所述数据处理模块100和所述提取模块500信号相连;

所述源数据库300,用于存储原始数据;

所述数据处理模块100,用于基于所述源数据库300获取原始数据,还用于基于所述原始数据生成包含业务标识的业务数据;

所述提取模块500与外部的源业务系统信号相连,用于获取提取请求,并基于所述提取请求于所述源数据库300中提取相应的原始数据并反馈。

即,源业务系统用于将工作过程中所产生的数据写入源数据库300,还用于基于用户的操作数据生成提取请求,并将提取请求发送至提取模块500,由提取模块500从所述源数据库300中抽取相应数据,所述提取模块500仅抽取数据,不对数据做统计、整合和计算等复杂处理,如用户查询其会员等级,此时仅需基于用户id于源数据库300的等级表中调取相应的等级数据进行反馈即可,不涉及关联查询和运算。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是:

说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

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