一种数据计算方法、系统、装置及电子设备
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种数据计算方法、系统、装置及电子设备。
背景技术
在大数据时代,经常会遇到需要在海量数据中获取特定的数据,并对获取的特定的数据进行在线计算以得到用户需要的统计数据的场景。
现有技术中,在接收到数据计算请求时,服务器会根据该数据计算请求所对应的计算数据时间范围查询数据库中所对应的存量数据,然后对查询到的存量数据进行计算,得到数据计算请求的计算结果。
发明内容
有鉴于此,本说明书实施例提供了一种数据计算方法、系统、装置及电子设备,用于解决现有技术中在海量数据的场景下无法对在线计算请求进行精准计算的问题。
本说明书实施例采用下述技术方案:
本说明书实施例提供一种数据计算方法,包括:
接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围;
根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
获取所述计算数据时间范围内的存量数据;
根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据;
利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
本说明书实施例还提供一种数据计算系统,包括:
管控平台,接收携带业务标识和计算数据时间范围的数据计算请求,根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
在线计算模块,获取所述计算数据时间范围内的存量数据,根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据,对所述在线增量数据进行在线计算,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果;
离线计算模块,对拆分得到的所述离线数据进行离线计算,得到所述离线数据的计算结果。
本说明书实施例还提供一种数据计算装置,包括:
接收模块,接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围;
确定模块,根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
获取模块,获取所述计算数据时间范围内的存量数据;
拆分模块,根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据;
聚合模块,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
本说明书实施例还提供一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成至少一个处理器执行以下步骤:
接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围;
根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
获取所述计算数据时间范围内的存量数据;
根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据;
利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过根据与业务标识对应的业务配置信息将获取的存量数据拆分成在线增量数据和离线数据,然后利用查询的在线增量数据的计算结果和离线数据的计算结果,聚合得到数据计算请求所对应的计算结果。
这样,通过将存量数据拆分成在线增量数据和离线数据,将利用查询的在线增量数据的计算结果和离线数据的计算结果,聚合得到数据计算请求所对应的计算结果,大幅度减少一次计算所要操作的数据量,降低数据计算结果的返回时间,实现海量数据场景下的数据计算请求的精准计算。
附图说明
此处所说明的附图用来提供对本说明书实施例的进一步理解,构成本说明书实施例的一部分,本说明书的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种数据计算系统的结构示意图;
图2为本说明书实施例提供的一种数据计算系统中管控平台的结构示意图;
图3为本说明书实施例提供的一种数据计算系统中在线计算模块的结构示意图;
图4为本说明书实施例提供的一种数据计算系统中离线计算模块的结构示意图;
图5为本说明书实施例提供的一种数据计算系统的结构示意图;
图6为本说明书实施例提供的一种数据计算方法的流程示意图;
图7为本说明书实施例提供的一种数据计算方法的时序图;
图8为本说明书实施例提供的一种数据计算方法的时序图;
图9为本说明书实施例提供的一种数据计算方法的时序图;
图10为本说明书实施例提供的一种数据计算方法的时序图;
图11为本说明书实施例提供的一种数据计算方法的时序图;
图12为本说明书实施例提供的一种数据计算方法的时序图;
图13为本说明书实施例提供的一种数据计算方法的时序图;
图14为本说明书实施例提供的一种数据计算方法的时序图;
图15为本说明书实施例提供的一种数据计算装置的结构示意图。
具体实施方式
现有技术中,通过查询数据库中对应计算数据时间范围内的存量数据,然后对查询到的存量数据进行计算,得到数据计算请求的计算结果,在海量数据场景下,无法保证对查询到的存量数据进行计算的精准性,计算耗时较长,从而导致系统响应时间较长。
因此,本说明书实施例提供一种数据计算方法、系统、装置和电子设备,通过将存量数据拆分成在线增量数据和离线数据,将利用查询的在线增量数据的计算结果和离线数据的计算结果,聚合得到数据计算请求所对应的计算结果,大幅度减少一次计算所要操作的数据量,降低数据计算结果的返回时间,实现海量数据场景下的数据计算请求的精准计算。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的一种数据计算系统的结构示意图。
所述数据计算系统可以包括管控平台1A、在线计算模块1B、离线计算模块1C和终端1D。
所述终端1D可以向所述管控平台1A发送携带业务标识和计算数据时间范围的数据计算请求,并从所述管控平台1A接收所述数据计算请求所对应的计算结果。
所述管控平台1A可以接收携带业务标识和计算数据时间范围的数据计算请求,根据所述数据计算请求确定与所述业务标识对应的业务配置信息。
所述在线计算模块1B可以获取所述计算数据时间范围内的存量数据,根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据,对所述在线增量数据进行在线计算,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
所述离线计算模块1C可以对所述离线数据进行离线计算,得到所述离线数据的计算结果。
在线计算模块1B获取的存量数据可以从数据库中获得,数据库可以实时存储用户所产生的在线数据。
所述管控平台1A还可以利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
在本说明书实施例中,所述管控平台1A可以理解为直接暴露给业务用户的在线管理平台,业务用户可以在所述管控平台1A上进行元数据的在线配置管理以及在线业务接入。
在线业务具体可以是数据计算请求、数据查询请求或者其他在线业务,在此不做具体限定。
在具体应用场景中,管控平台1A、在线计算模块1B和离线计算模块1C可以属于同一个一体式服务器,还可以属于相互独立的分体式服务器,在此不做具体限定。
图2为本说明书实施例提供的一种数据计算系统中管控平台的结构示意图。
所述管控平台2A可以包括业务管理单元21和运维管控单元22,所述业务管理单元21可以对接入的在线业务进行统一管理,所述运维管控单元22可以对管控平台2A的运行环境等进行统一的维护管理。
所述业务管理单元21可以包括事件新增211、模型定义212、计算场景213、计算规则214、计算算子215等子单元。
其中,事件新增211子单元可以对新接入的在线业务进行管理,并对新接入的在线业务的合法性进行校验。
在具体应用场景中,所述在线业务可以包括数据计算请求、数据查询请求或者其他在线业务,在此不做具体限定。
模型定义212子单元可以根据新接入的在线业务对用户的计算模型进行定义,在同一用户后期接入在线业务时,可以根据该用户的计算模型确定用户的计算需求,减少后续的分析操作。
计算场景213子单元可以对新接入的在线业务的计算场景进行分析确定。
计算规则214子单元可以根据计算场景对新接入的在线业务的计算规则进行确定。
计算算子215子单元可以根据计算规则对新接入的在线业务的计算算子进行配置。
所述运维管控单元22可以包括租户管理221、流量监控222、数据源223等子单元。
其中,租户管理221子单元可以理解为业务域的管理单元,每个在线业务以及数据存储均需要挂载到指定租户下,即指定的业务域的管理单元,方便对在线业务和数据存储进行有效的管理和维护。
流量监控222子单元可以对管控平台2A的运行流量进行监控,以监控管控平台2A的运行状态,避免管控平台2A超负载运行,以减少故障发生的概率。
数据源223子单元可以对在线业务所对应的数据源进行统一管理。
图3为本说明书实施例提供的一种数据计算系统中在线计算模块的结构示意图。
所述在线计算模块3B可以包括服务层31、引擎层32、业务组件33、基础组件34和基础层35。
所述服务层31可以包括写入服务311、查询服务312、元数据服务313等子单元。
其中,所述写入服务311子单元可以提供数据计算请求及存量数据的在线写入服务。
所述查询服务312子单元可以向管控平台提供数据查询服务。
所述元数据服务313子单元可以向管控平台提供描述数据计算请求的属性信息的服务。
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data aboutdata),主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
所述引擎层32可以包括聚合引擎321、路由管理322、合并引擎323等子单元。
其中,所述聚合引擎321子单元可以根据业务配置信息对在线增量数据进行聚合处理,对在线增量数据进行在线统计计算。
所述路由管理322子单元可以对在线增量数据的位置状态进行管理,以便查询和获取。
所述合并引擎323子单元可以根据业务配置信息对在线增量数据进行合并处理。
所述业务组件33可以包括时间窗口331、计算规则332、计算算子333等子单元。
其中,所述时间窗口331子单元可以根据业务配置信息对接收数据时间范围进行时间区间的划分,以进行在线增量数据和离线数据的汇总统计计算。
所述计算规则332子单元可以根据数据计算请求的数据需求配置对应的计算规则。
所述计算算子333子单元可以根据业务配置信息对数据计算请求配置对应的计算算子,以满足数据计算请求的数据计算需求。
所述基础组件34可以包括拆分合并341、资源监控342、缓存组件343、SQL(Structured Query Language,结构化查询语言)解析器344等子单元。
其中,所述拆分合并341子单元可以根据业务配置信息对计算数据时间范围内的数据进行拆分或者合并操作。
所述资源监控342子单元可以对在线计算模块3B的计算资源、负载资源等资源进行监控。
所述缓存组件343子单元可以对在线计算模块3B在进行在线计算过程中产生的中间数据进行缓存。
所述SQL解析器344子单元可以对管控平台提供结构化查询数据的执行能力。
所述基础层35可以包括存储隔离351和多线程352等子单元。
其中,所述存储隔离351子单元可以将计算逻辑和数据存储隔离,方便维护。
所述多线程352子单元可以提供同时执行多个在线计算任务的能力,能够有效提高在线计算的效率。
图4为本说明书实施例提供的一种数据计算系统中离线计算模块的结构示意图。
所述离线计算模块4C可以包括计算层41和平台层42。
所述计算层41可以包括业务调度411、算子实现412、离线核对413、历史补齐414等子单元。
其中,业务调度411子单元可以根据接入的在线业务进行业务功能的调度。
算子实现412子单元可以根据接入的在线业务的离线计算任务,进行离线计算所需要的计算算子的配置。
离线核对413子单元可以对离线数据进行核对校验,确保数据计算的准确性。
历史补齐414子单元可以提供对接入的在线业务所需要的历史数据进行一次性补齐的能力,确保接入的在线业务所需要的数据的完整性,以得到符合该在线业务需求的业务处理结果。
所述平台层42可以包括数据回流421、质量监控422等子单元。
其中,所述数据回流421子单元可以将在线增量数据的计算结果和离线数据的计算结果回流至数据库,以备后续的数据查询操作。
所述质量监控422子单元可以对离线计算模块的离线计算操作进行监控,以保证离线计算的准确进行。
图5为本说明书实施例提供的一种数据计算系统的结构示意图。
所述数据计算系统可以包括业务层5A、协议层5B、服务层5C、计算层5D、引擎层5E和存储层5F。
所述业务层5A可以理解为,具体可以包括计收费、营销抽发奖、预算管理、圈人、社交、限额、库存管理、业务决策等业务。
协议层5B可以包括SQL协议、DS API(Data Streaming Application ProgrammingInterface,流式计算编程接口)、图形界面、API(Application Programming Interface,应用程序编程接口)等计算协议。
服务层5C可以提供包括聚合查询服务、写入计算服务、明细查询服务、Group By(分组)查询服务在内的服务类型。
Group By可以是根据预设的分组规则对系统中的数据进行分组,所述数据可以是存量数据、在线增量数据、离线数据、执行过程中产生的中间数据或者其他数据类型。GroupBy查询服务可以提供对数据的分组情况进行查询的服务。
计算层5D可以包括计算算子单元和时间窗口单元,其中,计算算子单元可以提供包括sum(求和)、count(清点数量)、max(最大值)等在内的计算算子,时间窗口单元可以包括固定窗口、滑动窗口、滚动窗口、终身窗口等时间窗口。
固定窗口可以对计算数据时间范围进行固定时间区间的划分;滑动窗口可以对计算数据时间范围进行滑动时间区间的划分;滚动窗口可以对计算数据时间范围进行滚动时间区间的划分;终身窗口可以选取指定用户终身的在线数据所在的时间范围。
引擎层5E可以包括聚合引擎、计算规则、窗口动态拆分、任务调度、任务拆分、动态路由、资源监控、SQL解析等处理引擎。
聚合引擎可以为上述在线计算模块提供数据聚合操作的能力;窗口动态拆分引擎可以为上述在线计算模块提供计算数据时间范围动态划分的能力;任务调度引擎可以为上述管控平台、在线计算模块和离线计算模块提供任务调度的能力;动态路由引擎可以为管控平台、上述在线计算模块和在线计算模块提供获取所需数据路径的能力。
存储层5F可以包括至少一个实时数据库和至少一个离线数据库,实时数据库可以实时存储在线数据,即存量数据,离线数据库可以定时对存量数据进行归档,归档是根据预设的归档策略对存量数据进行至少一个时间粒度的汇总统计计算。
图6为本说明书实施例提供的一种数据计算方法的流程示意图。
S601:接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围。
在本说明书实施例中,数据计算请求可以理解为用户针对自身的数据需要通过终端向管控平台发送的获取需要的数据的请求,具体可以是获取用户在一段时间范围内的交易量数据。
业务标识可以理解为表征该数据计算请求的标识信息,在数据计算处理过程中,通过传递业务标识来表征对应的数据计算请求。
计算数据时间范围可以理解为数据计算请求所需要计算的数据的覆盖时间范围。如,数据计算请求具体可以是计算用户2008年5月3日至2018年12月3日的时间范围内的交易金额。
S603:根据所述数据计算请求确定与所述业务标识对应的业务配置信息。
在本说明书实施例中,业务配置信息可以理解为针对接收的数据计算请求的属性特征、计算要素等信息的信息集合,使得管控平台根据该业务配置信息对数据计算请求进行具体的数据计算操作。
作为一种应用实施例,根据所述数据计算请求确定与所述业务标识对应的业务配置信息,包括:
在判断所述数据计算请求符合预设的规则时,根据所述数据计算请求确定与所述业务标识对应的所述业务配置信息。
预设的规则可以理解为管控平台对接入的数据计算请求所规定的统一的格式规范,具体可以是对数据计算请求的格式、编码形式等的统一规定。
当接入的数据计算请求符合预设的规则时,表明该数据计算请求符合管控平台的规定,管控平台可以根据该数据计算请求执行相关的操作。
作为一种应用实施例,根据所述数据计算请求确定与所述业务标识对应的业务配置信息,包括:
根据所述数据计算请求确定与包括如下所述业务配置信息在内的所述业务配置信息:
所述数据计算请求的时间粒度配置;
所述数据计算请求的时间切分位点;
所述数据计算请求的计算算子配置;
所述数据计算请求的业务属性配置。
时间粒度配置可以理解为根据计算数据时间范围配置划分的时间粒度,以实现对计算数据时间范围的最少划分,具体可以是分钟粒度、小时粒度、天粒度、月粒度、年粒度或者其他粒度配置,在此不做具体限定,如计算用户2008年5月3日至2018年12月3日的时间范围内的交易金额时,则可以配置天粒度、月粒度和年粒度等时间粒度。
时间切分位点可以理解为在计算数据时间范围内拆分在线增量数据和离线数据的时间位点,如计算用户2008年5月3日至2018年12月3日的时间范围内的交易金额时,可以以2018年11月30日作为时间切分位点,2008年5月3日至2018年11月30日范围内的数据为离线数据,2018年12月1日至2018年12月3日范围内的数据为在线增量数据。
计算算子配置可以理解为根据数据计算请求配置的计算算子,具体可以是加法算子、减法算子等算子,在此不做具体限定。
业务属性配置可以理解为针对数据计算请求的计算要求的任务属性配置,如数据计算请求是需要获取一段时间范围内的交易总量时,可以配置求和的任务属性;数据计算请求是需要获取一段时间范围内的平均交易量时,可以配置求平均值的任务属性。
S605:获取所述计算数据时间范围内的存量数据。
在本说明书实施例中,存量数据可以理解为存储在数据库中的用户所产生的数据,具体可以是交易数据、操作行为数据或者其他类型的数据,在此不做具体限定。
在具体应用场景中,用户在线所产生的数据可以实时存储到数据库中,离线计算模块可以定时对数据库中的存量数据按照预设的汇总规则进行统计汇总,并将统计汇总的结果存储在数据库中。
S607:根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据。
在本说明书实施例中,在线增量数据可以理解为在数据计算请求发生时新产生的数据以及还没有进行离线汇总的数据。离线数据可以理解为预先按照预设的数据汇总规则进行了离线汇总的数据。
作为一种应用实施例,根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据,包括:
根据所述数据计算请求的所述时间切分位点将所述存量数据拆分成所述在线增量数据和所述离线数据。
时间切分位点可以将存量数据拆分成在线增量数据和离线数据,这样,一个较大时间范围内的数据计算请求需要进行的在线计算的数据只有一部分的在线增量数据,大部分的数据可以通过离线数据预先进行离线统计汇总,减少在线计算的数据量,提高数据计算效率。
作为一种应用实施例,在根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据之后,还包括:
根据所述数据计算请求的时间粒度配置对所述在线增量数据进行在线统计计算,得到所述在线增量数据的计算结果。
对在线增量数据进行在线统计计算可以是根据时间粒度配置统计至少一种时间粒度范围内的数据汇总,以用于后续的数据查询。
作为一种应用实施例,根据所述数据计算请求的时间粒度配置对所述在线增量数据进行在线统计计算,包括:
调用所述数据计算请求的计算算子配置,根据所述时间粒度配置对所述在线增量数据进行在线统计计算。
通过调用计算算子配置,对在线增量数据进行符合数据计算请求的在线统计计算,以得到符合数据计算请求的需求的在线计算结果。
在具体应用场景中,根据所述数据计算请求的时间粒度配置对所述在线增量数据进行在线统计计算,包括:
根据所述数据计算请求的时间粒度配置对所述在线增量数据进行如下至少一种在线统计计算:
年粒度汇总统计计算;
月粒度汇总统计计算;
天粒度汇总统计计算;
小时粒度汇总统计计算;
分钟粒度汇总统计计算。
作为一种应用实施例,在根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据之后,还包括:
根据所述数据计算请求的时间粒度配置对所述离线数据进行离线计算更新,得到所述离线数据的计算结果。
在接收到数据计算请求之前,离线计算模块可以预先对离线数据定时进行离线汇总计算,并将离线汇总计算的结果存储在数据库中。
当接收到数据计算请求时,离线计算模块可以根据数据计算请求的业务配置信息及实时写入的在线数据对离线数据进行进一步的更新计算,生效离线数据的计算结果,以备后续数据查询。
作为一种应用实施例,根据所述数据计算请求的时间粒度配置对所述离线数据进行离线计算更新,包括:
调用所述数据计算请求的计算算子配置,根据所述数据计算请求的时间粒度配置对所述离线数据进行离线计算更新。
通过调用计算算子配置,对离线数据进行符合数据计算请求的离线计算更新,以得到符合数据计算请求的需求的离线计算结果。
S609:利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
通过进行在线增量数据的在线计算和离线数据的离线计算,以减轻在线计算的数据量和在线压力,为得到计算数据时间范围内的计算结果,需聚合在线增量数据的计算结果和离线数据的计算结果。
在本说明书实施例中,聚合在线增量数据的计算结果和离线数据的计算结果,可以是对在线增量数据的计算结果和离线数据的计算结果的求和,还可以是对在线增量数据的计算结果和离线数据的计算结果进行求和之后再取平均值,具体根据数据计算请求的需求而定,在此不做具体限定。
作为一种应用实施例,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果,包括:
根据所述数据计算请求的时间粒度配置,将所述计算数据时间范围拆分成至少一个时间区间;
利用拆分得到的所述至少一个时间区间查询所述在线增量数据的计算结果和所述离线数据的计算结果;
对查询到的所述在线增量数据的计算结果和所述离线数据的计算结果进行聚合处理,得到所述数据计算请求对应的计算结果。
在本说明书实施例中,时间区间可以是根据时间粒度配置拆分的分钟粒度时间区间、小时粒度时间区间、天粒度时间区间、月粒度时间区间、年粒度时间区间或者其他时间区间,在此不做具体限定。
作为一种应用实施例,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果,可以包括:
在接收到用户的触发操作时,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
在具体应用场景中,接收到用户的触发操作,可以包括:
接收用户发送的数据查询请求,所述数据查询请求携带所述业务标识。
用户通过终端向管控平台发送数据查询请求时,可以触发管控平台对业务标识所对应的数据计算请求的计算结果进行查询。
作为另外一种应用实施例,在得到在线增量数据的计算结果和离线数据的计算结果之后,可以将在线增量数据的计算结果和离线数据的计算结果发送至用户所对应的终端,通过在该终端上缓存在线增量数据的计算结果和离线数据的计算结果,用户可以直接在该终端上查询得到需要的数据。
本说明书实施例提供的数据计算方法,通过将存量数据拆分成在线增量数据和离线数据,将利用查询的在线增量数据的计算结果和离线数据的计算结果,聚合得到数据计算请求所对应的计算结果,大幅度减少一次计算所要操作的数据量,降低数据计算结果的返回时间,实现海量数据场景下的数据计算请求的精准计算。
图7至图14为本说明书实施例提供的一种数据计算方法的时序图。
其中,图7至图10为本说明书实施例提供的一种数据计算方法的数据计算操作的时序图。
图7为本说明书实施例提供的一种数据计算方法在进行在线计算前的时序图。
S701:外围系统调用计算存储服务模块的接口发送数据计算请求。
在本说明书实施例中,外围系统可以理解为调用管控平台进行数据计算任务的外部系统,具体可以是用户所使用的终端。其中,计算存储服务模块是管控平台与外围系统直接接触的模块。
S703:计算存储服务模块调用服务模板对数据计算请求所对应的业务标识进行校验,若校验合法通过,则进行步骤S705。
S705:服务模板调用项目组件根据接收的数据计算请求确定数据计算请求的业务配置信息。
S707:服务模板调用请求校验模块对业务配置信息的校验参数进行校验,若校验合法通过,则进行步骤S709。
S709:服务模板调用计算引擎根据业务配置信息对数据计算请求进行计算处理。
通过确定数据计算请求的业务配置信息,从而可以确定数据计算请求的计算需求及其属性信息,方便后续计算处理过程中采用符合数据计算请求需求的计算规则,保证计算过程的有效进行。
图8为本说明书实施例提供的一种数据计算方法对数据计算请求进行计算处理的时序图。
S801:计算引擎从前触发管理器获取前置计算规则。
S803:计算引擎对获取的前置计算规则进行逐一调用。
S805:计算引擎调用前触发模块制定执行计划,并对执行计划进行前置处理。
S807:计算引擎调用约束分析模块对所述执行计划进行分析查询处理。
S809:计算引擎调用执行计划解析器执行所述执行计划。
通过制定执行计划,并对执行计划进行前置处理,可以进一步保证数据计算过程的准确性,并提高数据来源的精确性。
图9为本说明书实施例提供的一种数据计算方法执行所述执行计划的时序图。
S901:执行计划解析器调用数据仓库,从数据仓库中装载所述执行计划所需要的存量数据。
S903:编码器将装载的存量数据的格式转换成统一的Unicode编码格式。
S905:执行计划解析器调用聚合引擎对存量数据进行聚合处理。
对存量数据进行聚合处理,包括对在线增量数据的聚合处理和离线数据的聚合处理。
S907:聚合引擎调用算子管理器加载运算子。
S909:聚合引擎对加载的运算子进行逐一调用。
S911:聚合引擎调用算子模块对调用的运算子进行聚合计算。
S913:聚合引擎向执行计划解析器返回聚合结果。
S915:执行计划解析器将聚合结果保存至数据仓库。
S917:数据仓库调用编码器将聚合结果的Unicode编码格式转换成存量数据的格式。
Unicode(也称万国码)编码格式是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode编码格式是为了解决传统的字符编码方案的局限而产生的,它为每种编码语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台的文本转换、处理的要求。
通过编码格式的转换,使得输入的存量数据的格式符合对数据进行计算处理的规范,并使得输出的聚合结果的格式符合终端对数据格式的要求,保证数据的有效传递。
图10为本说明书实施例提供的一种数据计算方法在执行所述执行计划后的时序图。
S1001:计算引擎调用后触发管理器,获取后置处理规则。
S1003:计算引擎对获取的后置处理规则进行逐一调用。
S1005:计算引擎调用后触发模块,根据逐一调用后置处理规则的处理结果对聚合结果进行后处理。
S1007:计算引擎根据后触发模块的后处理结果向服务模板返回聚合结果。
S1009:服务模板调用计算存储服务对返回的聚合结果进行校验,若校验通过,则执行步骤S1011。
S1011:计算存储服务模块向外围系统返回聚合计算结果。
计算存储服务模块向外围系统返回的聚合结果包括在线增量数据的计算结果和离线数据的计算结果,外围系统对接收的计算结果进行缓存。
在具体应用场景中,外围系统可以根据缓存的计算结果在本地查询需要的在线增量数据的计算结果和/或离线数据的计算结果。
外围系统还可以在本地对在线增量数据的计算结果和离线数据的计算结果进行聚合查询处理,得到数据计算请求对应的计算结果。
如图11至图14所示,作为一种应用实施例,外围系统还可以调用管控平台进行数据查询操作,以得到数据计算请求对应的计算结果。
图11至图14为本说明书实施例提供的一种数据计算方法的数据查询操作的时序图。
图11为本说明书实施例提供的一种数据计算方法在对在线增量数据的计算结果和离线数据的计算结果进行查询时的时序图。
S1101:外围系统向查询计算服务模块发送数据查询请求,所述数据查询请求携带所述业务标识。
S1103:查询计算服务模块调用服务模板对接收的数据查询请求进行校验。
S1105:服务模板调用请求检查模块对数据查询请求的参数进行检查。
S1107:请求检查模块向服务模板返回校验结果,若校验通过,则执行步骤S1109。
S1109:服务模板调用查询计算引擎对数据查询请求执行数据查询操作。
通过对接收的数据查询请求进行校验,保证接入的数据查询请求符合管控平台的在线业务接入规范。
图12为本说明书实施例提供的一种数据计算方法对数据查询请求执行查询操作的时序图。
S1201:查询计算引擎调用默认分析查询器对数据查询请求进行分析查询处理。
S1203:默认分析查询器单元调用时间划分器对计算数据时间范围进行时间划分。
S1205:时间划分器向默认分析查询器返回划分后的时间间隔。
S1207:默认分析查询器根据返回的时间间隔从算子管理器中加载运算子。
S1209:算子管理器向默认分析查询器返回加载到的运算子。
S1211:默认分析查询器向查询计算引擎返回分析查询结果。
S1213:查询计算引擎根据接收的分享查询结果调用查询执行模块执行计算。
通过对数据时间范围进行划分,使其符合数据计算请求的时间粒度配置,使得查询到的数据均经过在线增量数据的在线统计计算和离线数据的离线统计计算,以减少数据查询过程中的数据计算操作。
图13为本说明书实施例提供的一种数据计算方法中查询执行模块执行计算操作的时序图。
S1301:查询执行模块调用数据路由器获取数据路径。
S1303:数据路由器根据数据路径从数据装载器中进行数据装载。
S1305:数据装载器向数据路由器返回需要的数据。
S1307:数据路由器向查询执行模块返回需要的数据。
S1309:查询执行模块调用聚合引擎进行数据聚合操作。
S1311:聚合引擎向查询执行模块返回聚合结果。
通过对查询到的数据进行聚合操作,以得到与数据计算请求对应的计算结果。
图14为本说明书实施例提供的一种数据计算方法聚合引擎返回聚合结果后的时序图。
S1401:查询执行模块向查询计算引擎返回聚合结果。
S1403:查询计算引擎调用服务模板对聚合结果进行校验,若校验通过,则执行步骤S1405。
S1405:服务模板向查询计算服务模块返回聚合结果,得到数据计算请求所对应的计算结果。
S1407:查询计算服务模块向外围系统返回数据计算请求所对应的计算结果。
具体的,如查询用户2008年5月3日至2018年12月3日的时间范围内的交易金额时,可以将该时间范围拆分为如下几个时间区间:
【2008年5月3日,2008年6月1日),在此时间区间内,可以直接查询天粒度数据,可以查询到29条数据;
【2008年6月1日,2009年1月1日),在此时间区间内,可以直接查询月粒度数据,可以查询到7条数据;
【2009年1月1日,2018年1月1日),在此时间区间内,可以直接查询年粒度数据,可以查询到10条数据;
【2018年1月1日,2018年12月1日),在此时间区间内,可以直接查询月粒度数据,可以查询到11条数据;
【2018年12月1日,2018年12月3日】,在此时间区间内,可以直接查询天粒度数据,可以查询到3条数据。
这样,一个较大时间范围内的计算任务,缩减为60条(29+7+10+11+3=60)数据的求和计算,而数据吞吐量从几年的数据量(可能几千条甚至几万条交易数据)缩减为60条数据的吞吐量,很大程度上减少了海量数据的查询计算耗时。
本说明书实施例提供的一种数据计算方法,外围系统通过调用管控平台来进行数据查询操作,既可以得到数据计算请求所对应的计算结果,还可以减轻外围系统的存储和运行压力。
另外,将数据计算操作和数据查询操作分离开,将计算和存储分离,存储层不感知计算逻辑,方便维护计算层和存储层,提高数据反应能力。
图15为本说明书实施例提供的一种数据计算装置的结构示意图。
接收模块1502,接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围;
确定模块1504,根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
获取模块1506,获取所述计算数据时间范围内的存量数据;
拆分模块1508,根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据;
聚合模块1510,利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
本说明书实施例提供的数据计算装置,通过将存量数据拆分成在线增量数据和离线数据,将利用查询的在线增量数据的计算结果和离线数据的计算结果,聚合得到数据计算请求所对应的计算结果,大幅度减少一次计算所要操作的数据量,降低数据计算结果的返回时间,实现海量数据场景下的数据计算请求的精准计算。
基于同一发明构思,本说明书实施例还提供一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围;
根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
获取所述计算数据时间范围内的存量数据;
根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据;
利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
基于同一发明构思,本说明书实施例还提供一种计算机可读存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
接收携带业务标识的数据计算请求,所述数据计算请求包括计算数据时间范围;
根据所述数据计算请求确定与所述业务标识对应的业务配置信息;
获取所述计算数据时间范围内的存量数据;
根据所述业务配置信息将所述存量数据拆分成在线增量数据和离线数据;
利用查询的所述在线增量数据的计算结果和所述离线数据的计算结果,聚合得到所述数据计算请求对应的计算结果。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进),还是软件上的改进(例如,对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程利用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块和/或各种单元分别描述。当然,在实施本申请时可以把各模块和/或各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求的保护范围之内。