CN111813871A - 一种数据实时处理系统及方法 - Google Patents
一种数据实时处理系统及方法 Download PDFInfo
- Publication number
- CN111813871A CN111813871A CN202010622152.0A CN202010622152A CN111813871A CN 111813871 A CN111813871 A CN 111813871A CN 202010622152 A CN202010622152 A CN 202010622152A CN 111813871 A CN111813871 A CN 111813871A
- Authority
- CN
- China
- Prior art keywords
- index
- input data
- calculation
- time
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据实时处理系统及方法,涉及大数据处理技术领域,所述数据实时处理系统包括:管理模块和计算引擎;所述管理模块用于根据用户指标定义界面上配置的指标属性信息,生成指标计算任务;所述计算引擎用于获取所述管理模块发送的所述指标计算任务,以及,获取输入数据,并根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标。本发明的方案实现了不依赖于开源组件,根据接收到的输入数据,在计算引擎中实时计算指标,使得数据实时处理系统的针对性更好,计算性能更高。
Description
技术领域
本发明涉及大数据处理技术领域,尤其是涉及一种数据实时处理系统及方法。
背景技术
现有技术中的数据指标的计算无法单独实施,一般需要依赖于开源流处理框架,如flink框架,进行指标计算,这就导致数据指标的计算的针对性不足,计算性能不好;另外,现有技术中只能获知当前的数据指标,无法实现对历史数据指标的查询。
发明内容
本发明的目的在于提供一种数据实时处理系统,从而解决现有技术中数据指标的计算无法单独实施的问题。
为了达到上述目的,本发明提供一种数据实时处理系统,包括:管理模块和计算引擎;
所述管理模块用于根据用户指标定义界面上配置的指标属性信息,生成指标计算任务;
所述计算引擎用于获取所述管理模块发送的所述指标计算任务,以及,获取输入数据,并根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标。
可选的,所述计算引擎用于将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算。
可选的,所述系统还包括:处理模块,用于:接收并存储所述第一目标指标;
或者,接收所述管理模块发送的指标计算任务,以及,所述计算引擎发送的所述输入数据,并根据所述指标计算任务对所述输入数据进行离线运算,获得第二目标指标。
可选的,所述管理模块还用于,根据用户在用户查询界面输入的查询条件,在所述计算引擎和/或所述处理模块内,查询与所述查询条件相对应的目标指标,并在所述用户查询界面上显示查询到的目标指标,其中,所述目标指标包括所述第一目标指标和/或所述第二目标指标。
可选的,在根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标时,所述计算引擎用于:
根据所述指标计算任务,对所述输入数据进行维度分析,获得维度分析结果;
根据所述维度分析结果,构建或更新聚集单元;
根据所述指标计算任务对所述聚集单元中的数据进行运算,获得所述第一目标指标。
可选的,所述指标计算任务包括以下至少一项:任务名称、计算维度、计算参数、计算类型、数据结构、时效时间。
可选的,在根据所述维度分析结果,构建或更新聚集单元时,所述计算引擎用于:
根据所述计算维度,抽取所述输入数据中的维度值;
根据所述维度值、所述时效时间和所述数据结构,构建或更新所述聚集单元。
可选的,在根据所述维度值、所述时效时间和所述数据结构,构建或更新所述聚集单元时,所述计算引擎用于:
判断当前存储的多个聚集单元中,是否存在维度值与抽取的所述输入数据中的维度值相同的聚集单元;
若当前存储的多个聚集单元中,存在维度值与抽取的所述输入数据中的维度值相同的聚集单元,则根据当前接收所述输入数据的时刻、所述聚集单元中的首条输入数据的时刻和所述时效时间,构建或更新所述聚集单元;
若当前存储的多个聚集单元中,未存有维度值与抽取的所述输入数据中的维度值相同的聚集单元,则根据所述抽取的所述输入数据的维度值构建聚集单元。
可选的,在根据当前接收的所述输入数据的时刻、所述聚集单元中的首条所述输入数据的时刻和所述时效时间,构建或更新所述聚集单元时,所述计算引擎用于:
计算当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差;
在当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差小于或等于所述时效时间时,将当前接收的所述输入数据增加至所述聚集单元,以更新所述聚集单元;
当所述时间差大于所述时效时间时,根据当前接收的所述输入数据中的维度值构建聚集单元。
可选的,所述系统还包括:内存数据库;
所述计算引擎还用于:
若所述时间差大于所述时效时间,则在所述聚集单元在计算引擎中存储时间达到第一预设时长后,对所述聚集单元中的数据进行序列化处理;
将序列化处理后的所述聚集单元转存至所述内存数据库;
所述内存数据库用于:根据所述聚集单元,更新当前存储的维度表。
可选的,所述内存数据库还用于:在存储所述聚集单元的时间达到第二预设时长时,删除所述内存数据库中的所述聚集单元。
可选的,所述计算引擎用于将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算时,所述计算引擎用于:
在接收到所述输入数据后,获取内存数据库中存储的多个聚集单元中维度值与所述输入数据中的维度值相同的聚集单元;
根据所述计算类型,对所述输入数据和获取的所述聚集单元进行运算,得到计算结果;
根据所述计算结果,更新所述内存数据库中存储的所述聚集单元。
可选的,所述指标计算任务还包括:输入数据数量阈值;
所述计算引擎用于将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算时,所述计算引擎用于:
在当前接收的所述输入数据为所述计算引擎获取到的首条数据时,读取内存数据库中存储的聚集单元;
根据所述计算类型,对所述首条数据和所述聚集单元进行运算,得到中间计算结果;
在当前接收的所述输入数据为所述聚集单元中的首条数据以外的数据时,根据所述计算类型,对所述中间计算结果和所述输入数据中的计算参数进行运算,得到当前计算结果,并将所述中间计算结果更新为当前的计算结果;
在当前接收到的所述输入数据达到所述输入数据数量阈值时,根据所述当前的计算结果,更新所述内存数据库中存储的所述聚集单元。
可选的,在根据所述维度分析结果,构建或更新聚集单元时,所述计算引擎用于:
根据所述计算维度,抽取所述输入数据中的维度值;
根据所述维度值和所述数据结构,构建所述聚集单元,其中,所述聚集单元仅包含当前获取的所述输入数据;
将在所述时效时间内构建的所述聚集单元中,维度值相同的聚集单元合并为一个聚集单元。
可选的,所述计算引擎包括多个计算节点;
在根据用户指标定义界面上配置的指标属性信息,生成指标计算任务时,所述管理模块具体用于:
根据用户指标定义界面上配置的多个所述指标属性信息,生成多个所述指标计算任务,并将多个所述指标计算任务分配至至少一个所述计算节点。
可选的,所述系统还包括:
协调服务组件,用于管理集群元信息;其中,所述集群元信息包括以下至少一项:任务名称、指标名称和集群信息;
所述管理模块还用于根据协调服务组件中的集群元信息和各所述计算节点上报的集群硬件资源信息,将多个所述指标计算任务分配至至少一个所述计算节点。
可选的,所述管理模块还用于在根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标的过程中,监测每一所述计算节点计算过程的异常情况;
在至少一个所述计算节点存在计算过程异常终止时,根据所述集群元信息,在其他所述计算节点上恢复异常终止的计算过程。
可选的,所述用户查询界面包括:查询模式项及与所述查询模式项对应的查询条件输入项;
其中,所述查询模式项包括:标准模式项和高级模式项;
与所述标准模式项向对应的查询条件项包括以下至少之一:任务名称、维度和时间范围;
与所述高级模式项对应的查询条件项包括:查询语句输入项。
本发明实施例还提供一种数据实时处理方法,应用于如上所述的数据实时处理系统,所述方法包括:
显示一用户指标定义界面,所述用户指标定义界面用于供用户配置指标属性信息;
根据所述指标属性信息生成指标计算任务;
获取输入数据;
根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标。
可选的,所述根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标,包括:
将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标。
可选的,所述方法还包括:
接收并存储所述第一目标指标;
或者,接收指标计算任务,以及,所述输入数据,并根据所述指标计算任务对所述输入数据进行离线运算,获得第二目标指标。
可选的,所述方法还包括:
显示一用户查询界面,所述用户查询界面用于供用户输入查询条件;
根据用户在用户查询界面输入的查询条件,查询与所述查询条件相对应的目标指标,并在所述用户查询界面上显示查询到的目标指标,其中,所述目标指标包括所述第一目标指标和/或所述第二目标指标。
可选的,所述根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标,包括:
根据所述指标计算任务,对所述输入数据进行维度分析,获得维度分析结果;
根据所述维度分析结果,构建或更新聚集单元;
根据所述指标计算任务对所述聚集单元中的数据进行运算,获得所述第一目标指标。
可选的,所述指标计算任务包括以下至少一项:任务名称、计算维度、计算参数、计算类型、数据结构、时效时间。
可选的,所述根据所述维度分析结果,构建或更新聚集单元,包括:
根据所述计算维度,抽取所述输入数据中的维度值;
根据所述维度值、所述时效时间和所述数据结构,构建或更新所述聚集单元。
可选的,所述根据所述维度值、所述时效时间和所述数据结构,构建或更新所述聚集单元,包括:
判断当前存储的多个聚集单元中,是否存在维度值与抽取的所述输入数据中的维度值相同的聚集单元;
若当前存储的多个聚集单元中,存在维度值与抽取的所述输入数据中的维度值相同的聚集单元,则根据当前接收所述输入数据的时刻、所述聚集单元中的首条输入数据的时刻和所述时效时间,构建或更新所述聚集单元;
若当前存储的多个聚集单元中,未存有维度值与抽取的所述输入数据中的维度值相同的聚集单元,则根据所述抽取的所述输入数据的维度值构建聚集单元。
可选的,所述根据当前接收的所述输入数据的时刻、所述聚集单元中的首条所述输入数据的时刻和所述时效时间,构建或更新所述聚集单元,包括:
计算当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差;
在当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差小于或等于所述时效时间时,将当前接收的所述输入数据增加至所述聚集单元,以更新所述聚集单元;
当所述时间差大于所述时效时间时,根据当前接收的所述输入数据中的维度值构建聚集单元。
可选的,所述计算当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差之后,还包括:
若所述时间差大于所述时效时间,则在所述聚集单元存储时间达到第一预设时长后,对所述聚集单元中的数据进行序列化处理;
将序列化处理后的所述聚集单元转存至内存数据库;
根据所述聚集单元,更新当前存储的维度表。
可选的,在所述将序列化处理后的所述聚集单元转存至所述内存数据库之后,还包括:
在存储所述聚集单元的时间达到第二预设时长时,删除所述内存数据库中的所述聚集单元。
可选的,所述将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标,包括:
在接收到所述输入数据后,获取内存数据库中存储的多个聚集单元中维度值与所述输入数据中的维度值相同的聚集单元;
根据所述计算类型,对所述输入数据和获取的所述聚集单元进行运算,得到计算结果;
根据所述计算结果,更新所述内存数据库中存储的所述聚集单元。
可选的,所述指标计算任务还包括:输入数据数量阈值;
所述将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标,包括:
在当前接收的所述输入数据为首条数据时,读取当前存储的聚集单元;
根据所述计算类型,对所述首条数据和所述聚集单元进行运算,得到中间计算结果;
在当前接收的所述输入数据为所述聚集单元中的首条数据以外的数据时,根据所述计算类型,对所述中间计算结果和所述输入数据中的计算参数进行运算,得到当前计算结果,并将所述中间计算结果更新为当前的计算结果;
在当前接收到的所述输入数据达到所述输入数据数量阈值时,根据所述当前的计算结果,更新所述内存数据库中存储的所述聚集单元。
可选的,所述根据所述维度分析结果,构建或更新聚集单元,包括:
根据所述计算维度,抽取所述输入数据中的维度值;
根据所述维度值和所述数据结构,构建所述聚集单元,其中,所述聚集单元仅包含当前获取的所述输入数据;
将在所述时效时间内构建的所述聚集单元中,维度值相同的聚集单元合并为一个聚集单元。
可选的,所述根据用户指标定义界面上配置的指标属性信息,生成指标计算任务,包括:
根据用户指标定义界面上配置的多个所述指标属性信息,生成多个所述指标计算任务,并将多个所述指标计算任务分配至至少一个计算节点。
可选的,所述方法还包括:
根据集群元信息和各所述计算节点上报的集群硬件资源信息,将多个所述指标计算任务分配至至少一个所述计算节点。
可选的,所述方法还包括:
在根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标的过程中,监测每一所述计算节点的计算过程的异常情况;
在至少一个所述计算节点存在计算过程异常终止时,根据所述集群元信息,在其他所述计算节点上恢复异常终止的计算过程。
可选的,所述用户查询界面包括:查询模式项及与所述查询模式项对应的查询条件输入项;
其中,所述查询模式项包括:标准模式项和高级模式项;
与所述标准模式项向对应的查询条件项包括以下至少之一:任务名称、维度和时间范围;
与所述高级模式项对应的查询条件项包括:查询语句输入项。
本发明实施例还提供一种数据实时处理系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上所述的数据实时处理方法的步骤。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述程序被处理器执行时实现如上所述的数据实时处理方法的步骤。
本发明的上述技术方案至少具有如下有益效果:
本发明实施例的数据实时处理系统中,通过设置管理模块,实现了通过用户界面为用户提供指标服务,便于用户根据自身需求配置指标,以及,根据用户配置的指标和数据实时处理系统的集群信息分配指标计算任务;通过设置计算引擎,实现了根据管理模块分配的指标计算任务,对输入数据进行独立分布运行,从而使得指标运算过程不需要依赖于flink等开源组件,提高了数据处理的针对性和计算性能。
附图说明
图1为本发明实施例的数据实时处理系统的示意图之一;
图2为本发明实施例的数据实时处理系统的示意图之二;
图3为本发明实施例的用户查询界面的示意图之一;
图4为本发明实施例的用户查询界面的示意图之二;
图5为本发明实施例的数据实时处理方法的步骤示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有技术中的指标计算过程依赖开源组件,导致指标计算无法独立、分布式运行,使得计算的针对性不好,计算性能不高的问题,提供了一种数据实时处理系统,实现了对指标的独立、开放式计算,提高了计算的针对性,使得计算性能提高。
如图1所示,本发明实施例提供了一种数据实时处理系统,包括:管理模块1和计算引擎2;
管理模块1用于根据用户指标定义界面上配置的指标属性信息,生成指标计算任务;
计算引擎2用于获取管理模块1发送的指标计算任务,以及,获取输入数据,并根据指标计算任务对输入数据进行实时运算,获得第一目标指标。
需要说明的是,一方面,数据实时处理系统需要显示一个用户指标定义界面,用于为用户提供指标服务,例如:该用户指标定义界面为web界面,用户在该web界面上根据需求选择需要计算的指标的属性信息,具体的,指标的属性信息可以包括:指标名称、维度、数据结构、计算参数、计算方式,时间区间等指标配置信息。其中,指标名称为指标的唯一标识,如:交易总额;维度是数据进行运算的依据,例如为:时间、数量、地理位置、交易账号等,需要说明的是,维度为数据的唯一标识;数据结构为数据的存储形式,如可以配置为字段名、字段类型(字段名为:timestamp、字段类型为:long)的形式;计算参数为用于参与计算指标的数据,如交易金额、贷款金额等;计算方式为对多个计算参数进行运算的类型,可以包括:算数运算、聚合运算和衍生运算等;时间区间用于确定计算多长时间内的数据,该时间区间可以为用于参与计算指标的数据的生成时间区间,或者为数据分析处理系统获取该数据的时间区间。
另外,用户指标定义界面上还可设置用于指标管理的图标,如启动/停止任务等,在用户完成指标属性信息的配置且对指标管理图标操作(单击、双击或长按)后,数据实时处理系统根据该指标属性信息生成对应的指标计算任务,其中,指标计算任务中的各项与指标属性信息一一对应。具体的,该指标属性信息生成指标计算任务的过程可以由管理模块1实现。
另一方面,该输入数据为数据实时处理系统从数据源7中获取的数据,该数据源7可以包括但不限于下述至少之一:kafka,第三方数据库、分布式文件系统(HadoopDistributed File System,HDFS),或者,用户自己建立的数据库,例如文件系统、内存数据库4。
本发明实施例的数据实时处理系统中,管理模块1根据用户在指标定义界面上配置的指标属性信息生成指标计算任务,计算引擎2根据接收到的指标计算任务对获取到的输入数据进行实时运算,实现了根据用户配置的指标属性信息对指标计算任务的独立、分布计算,从而使得指标运算过程不需要依赖于flink等开源组件,提高了数据处理的针对性和计算性能。
作为一个具体实施例,计算引擎2用于将输入数据加载至内存中,并在内存中根据指标计算任务对输入数据进行实时运算。
本实施例中,计算引擎2通过将输入数据加载至内存中,并在内存中根据指标计算任务对输入数据进行实时运算,实现了快速、实时运算,提高了运算效率。
作为一个可选实施例,进一步地,如图2所示,数据实时处理系统还包括:处理模块3,用于:接收并存储第一目标指标;
或者,接收管理模块1发送的指标计算任务,以及,计算引擎2发送的输入数据,并根据指标计算任务对输入数据进行离线运算,获得第二目标指标。
本实施例中,一方面,处理模块3可以具有实时接收并存储计算引擎2发送的第一目标指标的功能,实现对计算引擎2计算的第一目标功能的永久存储,方便用户进行历史指标的查询;另一方面,处理模块3可以具有计算功能,使得数据实时处理系统能够具有离线计算功能,具体的,在使用处理模块3进行计算之前,需要根据需求配置并启动相应的处理模块3任务,以方面处理模块3在接收到管理模块1发送的指标计算服务和计算引擎2发送的输入数据时,根据指标计算任务对输入数据进行离线运算,获得第二目标指标。需要强调的是,处理模块3根据所配置的参数,会自发地对输入数据进行计算,并将结果保存下来,处理模块3计算的第二目标指标可以供用户查看历史数据。再一方面,由于处理模块3会对接收到的每一条数据进行运算,而内存中仅会对规定的时间区间内的数据进行计算,因此,相对于实时计算,离线计算的结果更为准确,所以,在离线计算结果与实时计算结果不一致时,以离线计算结果为准。即处理模块3接收管理模块1发送的指标计算任务,以及,计算引擎2发送的输入数据,并根据指标计算任务对输入数据进行离线运算,获得第二目标指标的方式能够实现对计算引擎2计算指标的修正。
下面,以一个计算指标为交易总额的示例为例,具体说明处理模块3的指标计算过程:新建一个指标计算任务,任务名称是交易总额,计算类型是求和,计算维度是交易账号,计算参数是交易金额,在接收输入数据之前确保该任务是出于启动状态(由用户在配置界面启动),当输入数据进入该任务时,会按照时间戳进行存储,存储时会把相同交易账号的交易金额做求和计算。
数据1:1588750390000 154678922 10024.00(时间戳,交易账号,交易金额);
数据2:1588750390000 154678921 6350.00(时间戳,交易账号,交易金额);
数据3:1588750390210 154678922 2000.00(时间戳,交易账号,交易金额);
数据1进入处理模块3时直接存储,并且由于数据2的交易账号与数据1不同,因此,数据2进入处理模块3时也直接存储,数据3的交易账号与数据1相同,进入时则会将交易金额累加到数据1存储的结果上。
本实施例通过处理模块3对接收到的输入数据的计算,实现了对指标的离线计算,从而可以支持更多的指标计算以及历史数据的查询。
另外,需要说明的是,本发明中在处理模块3计算第二目标指标的操作与在计算引擎2中计算第一目标指标的操作可以同时进行,即:数据实时处理系统的管理模块1在生成指标计算任务后,一方面会以调用接口的方式将指标计算任务分配至计算引擎2里,另一方面会将指标计算任务发送至处理模块3;且计算引擎2还会将从数据源7中获取的输入数据转发至处理模块3,以实现两者同步进行指标计算。也就是说,本发明实施例在实时计算的基础上,同时融合了指标的离线计算,以方便用户对历史数据的查询。
当然,在处理模块3与内存中同时进行指标计算,则会出现同一份数据在不同的地方计算了2次,即计算引擎2和处理模块3中都会计算。而处理模块3中的结果主要用于历史结果的查询,为了进一步节约资源,提高指标生成系统的性能,可以考虑做进一步的优化,即:输入数据不再往处理模块3中发送,也就是说,处理模块3不再进行离线计算,而是把计算引擎2中某个时间区间(如用户定义的过期时间或系统配置的默认时间)内已经计算好的结果直接发送到处理模块3中并进行存储。也就是说,本实施例中接收并存储第一目标指标的方式能够在一定程度上节约资源。
作为一个可选实施例,管理模块1还用于,根据用户在用户查询界面输入的查询条件,在计算引擎2和/或处理模块3内,查询与查询条件相对应的目标指标,并在用户查询界面上显示查询到的目标指标,其中,目标指标包括第一目标指标和/或第二目标指标。
需要说明的是,本实施例中,处理模块3可以为高效的数据查询系统,如:Druid,该高效的数据查询系统除了具有查询功能外,还兼具存储和计算等功能。本实施例中,通过用户在用户查询界面上输入查询条件,实现了数据实时处理系统根据该查询条件进行实时指标查询和/或历史指标查询,其中,实时指标可以在计算引擎2中查询,历史指标可以在处理模块3中查询。方便用户根据需要进行所有指标的查询。
作为一个可选实施例,在根据指标计算任务对输入数据进行实时运算,获得第一目标指标时,计算引擎2用于:
根据指标计算任务,对输入数据进行维度分析,获得维度分析结果;根据维度分析结果,构建或更新聚集单元;根据指标计算任务对聚集单元中的数据进行运算,获得第一目标指标。
其中,聚集单元是一种特定数据结构,可在计算引擎2中直接参与指标的计算,并存储临时计算出的指标值,该指标值用于后续的合并操作。聚集单元内部包含维度值、聚合字段(参与指标计算的计算参数)、聚集单元的时间区间(聚集单元的时效时间)、数值Value字段(聚合产生的结果)等。
作为一个可选实施例,所述指标计算任务包括以下至少一项:任务名称、计算维度、计算参数、计算类型、数据结构、时效时间。其中,指标计算任务中的各项与指标属性信息的对应关系如下:任务名称与指标名称相对应,计算维度与维度相对应,计算参数与计算参数相对应,计算类型与计算方式相对应,目标字段名称和结构与数据结构相对应,时间区间与时效时间相对应。具体的,以获取某一账号一段时间内的交易总额为例:指标名称为交易总额、维度为交易账号、计算参数为交易金额、时间区间为用户期望计算的时间段;对应的,任务名称为:交易金额,计算维度为交易账号、计算类型为求和、计算参数为交易金额,通过对同一交易账号中在用户设定的时间区间内的交易金额的求和即可得到用户期望的交易总额的指标。
作为一个可选实施例,在根据维度分析结果,构建或更新聚集单元时,所述计算引擎2用于:
根据计算维度,抽取输入数据中的维度值;
根据维度值、时效时间和数据结构,构建或更新聚集单元。
需要说明的是,由于维度为输入数据的唯一标识,因此,需要首先对输入数据的维度进行分析而获得输入数据的维度值,从而,在将输入数据存储在聚集单元中时,可以根据输入数据中的维度值确定需要构建的聚集单元,进一步基于数据结构和时效时间构建完整的聚集单元。
具体的,在输入数据进入计算引擎2的计算节点6后,计算节点6基于当前执行的指标计算任务中维度,将输入数据中对应的维度值抽取出来,作为聚集单元的唯一标识,从而根据该输入数据中对应的维度值确定需要构建的若干个对应的聚集单元;然后,根据指标计算任务中定义的数据结构,将输入数据中需要聚合的字段值抽取出来作为聚集单元对应的值;另外,由于用户在配置指标属性信息时会配置时间区间,该时间区间即为用户期望构建聚集单元的输入数据的获取时间的时间区间,亦即,一个聚集单元中存储有一段时间内获取到的同维度值的输入数据。因此,还需要为新构建的聚集单元配置时效时间,从而得到一个完整的聚集单元。而该时效时间的起始时间可以为该聚集单元中获取到的首条数据的时间。
另外,聚集单元包括:输入数据的所有数据,还包括:时效时间,其中,时效时间即为聚集单元中所有数据所在的时间段,亦即:聚集单元中的首条数据的获取时刻和末条数据的获取时刻的差值应小于或等于时效时间。
本发明实施例首先对输入数据进行维度分析,获得维度分析结果,即:输入数据中包含的维度值;然后根据维度分析结果构建或更新聚集单元;最后根据指标计算任务对聚集单元中的数据进行运算,获得第一目标指标,实现了计算引擎2的独立、分布式运行,而不依赖于开源组件,使得计算过程的针对性更好且计算性能更高。
作为一个可选实施例,在根据维度值、时效时间和数据结构,构建或更新所述聚集单元时,计算引擎2用于:
判断当前存储的多个聚集单元中,是否存在维度值与输入数据中的维度值相同的聚集单元;
若当前存储的多个聚集单元中,存在维度值与抽取的输入数据中的维度值相同的聚集单元,则根据当前接收输入数据的时刻、聚集单元中的首条输入数据的时刻和时效时间,构建或更新聚集单元;
若当前存储的多个聚集单元中,未存有维度值与抽取的输入数据中的维度值相同的聚集单元,则根据抽取的输入数据的维度值构建聚集单元。
本实施例中,一个计算节点6中包括多个聚集单元,在当前存储的多个聚集单元中,存在维度值与输入数据中的维度值相同的聚集单元,则以接收到输入数据的时间与时效时间的关系为依据,确定是构建聚集单元还是更新聚集单元。
作为一个具体实施例,在根据当前接收的输入数据的时刻、聚集单元中的首条输入数据的时刻和时效时间,构建或更新聚集单元时,计算引擎2用于:
计算当前接收的输入数据的时刻与聚集单元中的首条输入数据的时刻的时间差;
在当前接收的输入数据的时刻与聚集单元中的首条输入数据的时刻的时间差小于或等于时效时间时,将当前接收的输入数据增加至聚集单元,以更新聚集单元;
当时间差大于时效时间时,根据当前接收的输入数据中的维度值构建聚集单元。
也就是说,本实施例中,是以接收到输入数据的时间与时效时间的关系为依据,确定是构建聚集单元还是更新聚集单元。这里,简要说明聚集单元的构建过程:如图2所示,在首个输入数据进入计算引擎2后,即:数据实时处理系统接收到输入数据后,新建聚集单元,依据任务名称和计算维度,构建若干个聚集单元,其中聚集单元的划分以维度值和时效时间为依据。具体为:将输入数据中对应的维度值抽取出来,作为聚集单元的唯一标识,即:根据该数据中对应的维度值来构建对应的聚集单元。进一步的,根据该数据中对应的维度值构建对应的聚集单元,对应同一维度值的数据其对应的聚集单元相同,输入数据首次进入计算引擎2后,计算引擎2将根据输入数据的维度构建聚集单元,若在时效时间内,后面再有维度相同的数据进入计算引擎2后,会将输入数据追加到该聚集单元中;若不在时效时间内,则根据当前接收的输入数据中的维度值构建聚集单元。
进一步的,如图2所示,数据实时处理系统还包括:内存数据库4;
计算引擎2还用于:若时间差大于时效时间,则若聚集单元在计算引擎2中存储时间达到第一预设时长后,对聚集单元中的数据进行序列化处理;将序列化处理后的聚集单元转存至内存数据库4。
需要说明的是,聚集单元中的第一预设时长为聚集单元在内存中存储的时间长度。由于数据实时处理系统的内存空间/计算引擎2空间有限,为了节约空间且确保数据实时处理系统的正常运行,本实施例中,计算引擎2/内存并不能无限制的存储所有的聚集单元,因此,本实施例中每一聚集单元仅能在内存数据库4中存储第一预设时长,具体的,可以定义为与时效时间相同的时长,也可以定义为是该时效时间的整数倍,或者其他数值倍数,本实施例对此不做限制。
为了确保数据传输的有效性,在将该聚集单元转存至该内存数据库4前,需要对该聚集单元进行序列化处理。另外,在内存读取内存数据库4中的聚集单元后,需要对读取的聚集单元进行反序列化处理,从而得到原始数据。
需要说明的是,本实施例中的序列化和反序列化可以为对聚集单元进行动态注册。动态注册则是指标在启动时,将指标对应的聚集单元进行序列化注册,即管理模块1在接收到指标启动请求时,会主动调用序列化注册接口对聚集单元进行注册。
进一步的,内存数据库4除了对第一目标指标进行存储外,还支持数据的维度管理,具体的,所述内存数据库4用于:根据所述聚集单元,更新当前存储的维度表。
在本实施例中,在更新维度表时,会将同一个指标计算过程中出现的所有维度值,都保存在同一张数据表中,作为该指标对应的维度表,其中,该维度表可以实时更新。
另外,需要说明的是,维度包括如前所述的计算维度还包括外部(用户)提供的维度,如用户根据自身需要提供的维度信息,在这种情况下,该维度表则需要定期更新,即:当用户有需求时,根据用户的需求更新与指标对应的维度表,以方便用户通过在维度表中查询与目标指标对应的维度而获得目标指标数据。
进一步地,作为一个可选实施例,内存数据库4还用于:在存储聚集单元的时间达到第二预设时长时,删除内存数据库4中的聚集单元。
本实施例中,聚集单元中还包括第二预设时长,该第二预设时长为聚集单元在内存数据库4中存储的时间长度,其中,第一预设时长大于或等于时效时间,第二预设时长大于或等于第二预设时长,将聚集单元在内存数据库4中存储第二预设时长,一方面,方便后续获得的数据与当前的聚集单元的合并;另一方面,将过期的聚集单元删除,节约存储空间。
作为一个可选实施例,计算引擎2用于将输入数据加载至内存中,并在内存中根据指标计算任务对输入数据进行实时运算时,计算引擎2用于:
A)在接收到输入数据后,获取内存数据库4中存储的多个聚集单元中维度值与输入数据中的维度值相同的聚集单元;当然,本步骤中若内存数据库4中没有符合条件的聚集单元,则无法获取到聚集单元,即:当前获取的输入数据所构建的聚集单元为该维度值的首个聚集单元。
B)根据计算类型,对输入数据和获取的聚集单元进行运算,得到计算结果;可选的,如前所述,该计算类型至少为以下之一:算数运算、聚合运算或衍生运算。
C)根据所述计算结果,更新所述内存数据库4中存储的所述聚集单元。
由上述步骤A)至C)可知,本实施例中,实现了每读取到一条数据之后,则从内存数据库4中读取相应的聚集单元,从而在该聚集单元的基础上进行计算,并将当前的计算结果立即存入至内存数据库4,这样,实现了内存数据库4中的聚集单元的实时更新。
下面,以一个具体实例对本可选实施例进行说明:
参数配置时效时间Tr为30s(开始时间为2020/04/27 10:44:10,那么截止时间就是2020/04/27 10:44:40),存储方式不进行配置修改,则会按照上述方式进行存储。在计算过程中,输入数据时间在这个范围内的都会参与计算,且每来一条数据进行则从内存数据库4中读取聚集单元,并将更新后的聚集单元存储到内存数据库4中。
当然,还可以设置定时存储,如依据读取输入数据的数量确定何时将得到的计算结果存储到内存数据库4中,也就是说,当读取的输入数据的数量达到预先设置的数量阈值时,则将根据当前得到的计算结果存储到内存数据库4中,作为下一条输入数据的中间结果。因此,作为又一个可选实施例,该指标计算任务还包括:获取的输入数据数量阈值;其中,该获取的输入数据数量阈值可以基于数据的稀疏程度进行配置。
若指标计算任务配置了获取的输入数据数量阈值,在计算引擎2用于将输入数据加载至内存中,并在内存中根据指标计算任务对输入数据进行实时运算时,计算引擎2用于:
a)在当前接收的输入数据为计算引擎2获取到的首条数据时,读取内存数据库4中存储的聚集单元;
b)根据计算类型,对首条数据和聚集单元进行运算,得到中间计算结果;
c)在当前接收的输入数据为聚集单元中的首条数据以外的数据时,根据计算类型,对中间计算结果和输入数据中的计算参数进行运算,得到当前计算结果,并将中间计算结果更新为当前的计算结果;
d)在当前接收到的输入数据达到输入数据数量阈值时,根据所述当前的计算结果,更新所述内存数据库4中存储的所述聚集单元。
下面,以一个具体实例对本实施例进行说明:
参数配置时效时间Tr为30s(开始时间为2020/04/27 10:44:10,那么截止时间就是2020/04/27 10:44:40),存储方式进行配置修改,设置条数为50条,将会按照本可选实施例的方式进行中间结果的存储。在计算过程中,输入数据时间在这个范围内的都会参与计算,且该时效时间内的第一条数据进入时,需要去内存数据库4中读取中间结果,并根据中间结果与第一条数据中的数据按照计算类型进行计算,得到输出结果(当然,若读取不到中间结果,则将第一条数据中的第一目标字段的数据作为输出结果),并将结果保存到内存中的一个容器(内存中的缓存,例如:map)里,读取到后续48条输入数据中的任一条输入数据,并不会去读取内存数据库4中的结果,而是会直接在内存容器里的结果上进行计算,并将计算的结果输出,同时把计算的结果再次保存到内存容器里。到第50条数据时,会先从内存容器里读取结果进行计算,将计算的结果输出,同时将计算的结果存储到内存数据库4中,并清空当前的内存容器里的内容。
作为一个可选实施例,在根据维度分析结果,构建或更新聚集单元时,计算引擎2用于:
根据计算维度,抽取输入数据中的维度值;
根据维度值和数据结构,构建聚集单元,其中,聚集单元仅包含当前获取的所述输入数据;
将在所述时效时间内构建的聚集单元中,维度值相同的聚集单元合并为一个聚集单元。
本实施例实现了将一条数据构建为一个聚集单元,并将在所述时效时间内构建的多个聚集单元中,维度值相同的聚集单元合并为一个聚集单元,并根据计算类型对合并后的聚集单元中的计算参数进行计算,从而得到目标指标,在获得该时效时间对应的目标指标后,则将合并后的聚集单元在计算引擎2中存储第一预设时长后进行序列化处理,并转存至内存数据库4,以方便下一时间段合并的聚集单元与当前内存数据库4中存储的聚集单元进行合并;另外,合并后的聚集单元在内存数据库4中存储第二预设时长后,则从内存数据库4中删除,以释放空间。当然,相对应的,在从内存数据库4中读取聚集单元后,需要对聚集单元中的数据进行反序列化处理。
进一步地,作为一个可选是实施例,如图2所示,计算引擎2包括多个计算节点6;在根据用户指标定义界面上配置的指标属性信息,生成指标计算任务时,管理模块1具体用于:
根据用户指标定义界面上配置的多个指标属性信息,生成多个指标计算任务,并将多个所述指标计算任务分配至至少一个所述计算节点6。
本实施例中,通过将多个指标按计算任务分配至至少一个计算节点6,如:将两个指标计算任务分配至一个计算节点6,实现了一个计算节点6内的多个指标计算任务的并行运行,如:在一个计算节点6上,将获取的第一维度值的输入数据合并至第一聚集单元中,将获取的第二维度值的输入数据合并至第二聚集单元中,这样,确保了数据实时处理系统的实时性,提高了数据实时处理系统的计算性能。
进一步地,作为一个可选实施例,如图2所示,数据实时处理系统还包括:协调服务组件5,用于管理集群元信息;其中,所述集群元信息包括以下至少一项:任务名称、指标名称和集群信息;
管理模块1还用于根据协调服务组件5中的集群元信息和各计算节点6上报的集群硬件资源信息,将多个指标计算任务分配至至少一个计算节点6。
具体的,在基于用户的配置操作定义完指标属性信息后,管理模块1为该定义完的指标分配计算节点6。可以根据协调服务组件5中的集群信息和集群硬件资源信息(各计算节点6的硬件资源信息),将指标计算任务均衡分配至多个计算节点6中,从而使每一计算节点6根据接收到的指标计算任务接收相对应的输入数据,实现目标指标的计算。
本实施例中,通过在计算引擎2中设置多个计算节点6,且多个计算节点6能够并行运行,通过管理模块1与协调服务组件5的配合,实现了对指标计算任务的合理分配,实现节点负载均衡,避免因分配不均导致运算等待时间过长,进而在一定程度上保证运算的实时性,提高了指标生成系统的性能。
需要说明的是,计算引擎2用于提供指标计算服务,指标计算服务为计算节点6上的计算实例。本发明实施例中,计算节点6和计算服务是一一对应的关系,一个计算节点6可以包含多个任务,一个任务对应一个计算节点6,但一个计算节点6可以有多个任务。因此,本发明实施例的计算节点6能够并行进行多个指标计算任务,从而提高了数据实时处理系统的时效性。
所述管理模块1还用于在根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标的过程中,监测每一所述计算节点6计算过程的异常情况;
在至少一个计算节点6存在计算过程异常终止时,根据集群元信息,在其他计算节点6上恢复异常终止的计算过程。
其中,协调服务组件5(Zookeeper):采用集群的形式,用于管理集群元信息(任务名称、指标名称、集群信息),以计算交易总额为例,任务名称是交易总额-a852036d09e84b098622a998672ecc4e、交易总额-848d01e18b2f49a5a6f4ecefed909715、交易总额-5d2b2f7475654f2a9c47bd2b5de1b3b8、指标名称是交易总额、集群信息包括:计算节点6数量、计算节点6地址信息、计算节点6上的任务数。协调服务组件5(Zookeeper)主要用于协助管理模块1进行任务分配和恢复。
需要说明的是,本实施例的监测操作可以由管理模块1执行,例如当监测到某指标计算服务异常终止时,管理模块1根据协调服务组件5上的元信息在其他计算节点6上恢复该指标计算服务的所有任务,具体的,例如:当第一计算节点6的计算服务异常终止时,管理模块1根据协调服务组件5上的集群元信息在多个其他节点上恢复该计算节点6的所有任务,从而其他计算节点6上的计算服务包括其他计算节点6的原任务和第一计算节点6的原任务。
本实施例中,通过管理模块1对计算节点6的监测,实现了所有指标计算任务的正常计算,避免了由于某一计算节点6的计算服务异常导致无法实现目标指标的计算。
作为又一个可选实施例,如图3和图4所示,所述用户查询界面包括:查询模式项及与所述查询模式项对应的查询条件输入项;
其中,所述查询模式项包括:标准模式项和高级模式项;
与所述标准模式项向对应的查询条件项包括以下至少之一:任务名称、维度和时间范围;
与所述高级模式项对应的查询条件项包括:查询语句输入项。
本实施例中,通过用户查询界面,实现了用户根据自己需求对实时指标和/或历史数据的查询,方便用户根据查询到的数据进行下一步操作,可选的,查询结果可以以多种方式显示,如:折线图、柱状图等图表方式,或者,表格的方式。具体的,在用户查询时,首先,在用户查询界面上选择查询模式,其次,指标生成系统响应于用户选择的查询模式,显示与该查询模式相对应的查询条件;然后,用户在对应的位置输入或选择查询条件,并点击查看图标按钮,指标生成系统则会根据接收到的查询条件筛选符合要求的目标指标,并显示查询到的目标指标。
如图3所示,在用户选择标准模式项后,数据实时处理系统则会在用户查询界面上显示与标准模式项相对应的查询条件,如:维度筛选(聚集单元的唯一标识)、查询时间段(用户需要查询的指标的时间区间)、任务名称(与用户查询的指标相对应)等,当然,用户也可以不填写维度值,这样,则默认查询所有维度值对应的结果。此时,维度值则从内存数据库4内的维度表中获取;在用户点击查看图表后,数据实时处理系统则会根据查询条件在计算引擎2、内存数据库4或处理模块3中查询,并将查询结果显示在查询界面上。具体的,还可以根据用户在该可视化的用户查询界面设置查询时间范围,根据该时间范围确定查询方式,若该时间范围超出计算引擎2对聚集单元设定的过期时间(第二预设时长),则进行离线指标查询,否则进行实时指标查询。
如图4所示,在用户选择高级模式项后,数据实时处理系统则会在用户查询界面上显示与高级模式项相对应的查询条件,如查询语句输入框,此时,需要用户根据需求在查询语句输入框中输入查询条件(SQL语句查询),数据实时处理系统则会根据用户输入的查询语句进行查询,并将查询结果显示在用户查询界面上。需要说明的是,在高级模式的查询下,用户还可以通过在查询语句中增加查询条件进行二次聚合操作等。
下面,以一个具体实施例,进一步对本发明实施例的数据实时处理系统的一种工作过程进行说明:
新建一个指标计算的任务,任务名称是交易总额,计算方式(计算类型)是sum(求和),计算维度是交易账号,参与计算的输入数据字段(计算参数)是交易金额,聚合时间区间(时效时间)是10秒。管理模块1分配其在哪些节点上运行,假设被分配在第一节点,那么第一节点就会去数据源7获取输入数据,获取到输入数据后对维度进行抽取,并根据维度构造或更新聚集单元,如果需要维护维度表,那么还会把维度值加到维度表中。
数据1:1588750390000 154678922 10024.00(时间戳,交易账号,交易金额);
数据2:1588750390000 154678921 6350.00(时间戳,交易账号,交易金额);
数据3:1588750390210 154678922 2000.00(时间戳,交易账号,交易金额);
数据4:1588750395000 154678922 2562.00(时间戳,交易账号,交易金额);
数据5:1588750396000 154678922 3550.00(时间戳,交易账号,交易金额);
数据6:1588750402000 154678922 15000.00(时间戳,交易账号,交易金额);
数据1进入时构造维度为154678922的聚集单元,并将维度值154678922添加到维度表中。数据2进入后的动作与数据1进入的动作相同,数据3、4、5进入时则会被直接被合并进154678922的聚集单元,数据6进入时,其时间戳不在数据1对应的154678922聚集单元计算区间内,便会将维度值为154678922聚集单元保存到内存数据库4中用于查询,同时根据数据6来构造新的维度值为154678922的聚合单元,查询维度表中有无该维度值,如没有则需要在维表中新增该维度值。其中合并是指:将数据3、4、5的聚集单元加到数据1的聚集单元中,并且合并遵循一定的合并规则(基于维度+时间),一个维度对应一个聚集单元,一个维度对应一个指标的值,该值为当前时间点的最终的计算结果。
本发明实施例的数据实时处理系统,一方面,用户在指标配置界面上配置指标属性信息后,管理模块1根据该指标属性信息生成指标计算任务,管理模块1进一步通过调用接口的方式将该指标计算任务分配至计算引擎2的计算节点6;并将指标计算任务发送给处理模块3,然后,计算引擎2从数据源7中获取输入数据,并将输入数据发送至处理模块3,实现计算引擎2与处理模块3同时计算指标,即:实现了实时指标计算和历史指标计算的同时进行。使得用户可以在处理模块3中查询历史数据。另外,计算引擎2在进行指标计算时,将每个任务构建成若干聚集单元,可以实现任务内部的并行运行,增大了任务内部的计算并发度,进而提高了计算速度。另一方面,通过用户查询界面,还实现了用户对实时指标和历史指标的查询。再一方面,通过在计算引擎2中进行指标计算,使得指标计算过程不依赖于开源组件而能够独立进行,使得其针对性更好,计算性能更高。
如图5所示,本发明实施例还提供一种数据实时处理方法,应用于如上所述的数据实时处理系统,所述方法包括:
步骤501,显示一用户指标定义界面,所述用户指标定义界面用于供用户配置指标属性信息;
步骤502,根据所述指标属性信息生成指标计算任务;
步骤503,获取输入数据;
步骤504,根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标。
本发明实施例的数据实时处理方法中,步骤504,所述根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标,包括:
将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标。
本发明实施例的数据实时处理方法还包括:
接收并存储所述第一目标指标;
或者,接收指标计算任务,以及,所述输入数据,并根据所述指标计算任务对所述输入数据进行离线运算,获得第二目标指标。
本发明实施例的数据实时处理方法还包括:
显示一用户查询界面,所述用户查询界面用于供用户输入查询条件;
根据用户在用户查询界面输入的查询条件,查询与所述查询条件相对应的目标指标,并在所述用户查询界面上显示查询到的目标指标,其中,所述目标指标包括所述第一目标指标和/或所述第二目标指标。
本发明实施例的数据实时处理方法中,步骤504,所述根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标,包括:
根据所述指标计算任务,对所述输入数据进行维度分析,获得维度分析结果;
根据所述维度分析结果,构建或更新聚集单元;
根据所述指标计算任务对所述聚集单元中的数据进行运算,获得所述第一目标指标。
本发明实施例的数据实时处理方法中,所述指标计算任务包括以下至少一项:任务名称、计算维度、计算参数、计算类型、数据结构、时效时间。
本发明实施例的数据实时处理方法中,所述根据所述维度分析结果,构建或更新聚集单元,包括:
根据所述计算维度,抽取所述输入数据中的维度值;
根据所述维度值、所述时效时间和所述数据结构,构建或更新所述聚集单元。
本发明实施例的数据实时处理方法中,所述根据所述维度值、所述时效时间和所述数据结构,构建或更新所述聚集单元,包括:
判断当前存储的多个聚集单元中,是否存在维度值与抽取的所述输入数据中的维度值相同的聚集单元;
若当前存储的多个聚集单元中,存在维度值与抽取的所述输入数据中的维度值相同的聚集单元,则根据当前接收所述输入数据的时刻、所述聚集单元中的首条输入数据的时刻和所述时效时间,构建或更新所述聚集单元;
若当前存储的多个聚集单元中,未存有维度值与抽取的所述输入数据中的维度值相同的聚集单元,则根据所述抽取的所述输入数据的维度值构建聚集单元。
本发明实施例的数据实时处理方法中,所述根据当前接收的所述输入数据的时刻、所述聚集单元中的首条所述输入数据的时刻和所述时效时间,构建或更新所述聚集单元,包括:
计算当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差;
在当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差小于或等于所述时效时间时,将当前接收的所述输入数据增加至所述聚集单元,以更新所述聚集单元;
当所述时间差大于所述时效时间时,根据当前接收的所述输入数据中的维度值构建聚集单元。
本发明实施例的数据实时处理方法中,所述计算当前接收的所述输入数据的时刻与所述聚集单元中的首条所述输入数据的时刻的时间差之后,还包括:
若所述时间差大于所述时效时间,则在所述聚集单元存储时间达到第一预设时长后,对所述聚集单元中的数据进行序列化处理;
将序列化处理后的所述聚集单元转存至内存数据库;
根据所述聚集单元,更新当前存储的维度表。
本发明实施例的数据实时处理方法中,在所述将序列化处理后的所述聚集单元转存至所述内存数据库之后,还包括:
在存储所述聚集单元的时间达到第二预设时长时,删除所述内存数据库中的所述聚集单元。
本发明实施例的数据实时处理方法中,所述将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标,包括:
在接收到所述输入数据后,获取内存数据库中存储的多个聚集单元中维度值与所述输入数据中的维度值相同的聚集单元;
根据所述计算类型,对所述输入数据和获取的所述聚集单元进行运算,得到计算结果;
根据所述计算结果,更新所述内存数据库中存储的所述聚集单元。
本发明实施例的数据实时处理方法中,所述指标计算任务还包括:输入数据数量阈值;
所述将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标,包括:
在当前接收的所述输入数据为首条数据时,读取当前存储的聚集单元;
根据所述计算类型,对所述首条数据和所述聚集单元进行运算,得到中间计算结果;
在当前接收的所述输入数据为所述聚集单元中的首条数据以外的数据时,根据所述计算类型,对所述中间计算结果和所述输入数据中的计算参数进行运算,得到当前计算结果,并将所述中间计算结果更新为当前的计算结果;
在当前接收到的所述输入数据达到所述输入数据数量阈值时,根据所述计算结果,更新所述内存数据库中存储的所述聚集单元。
本发明实施例的数据实时处理方法中,所述根据所述维度分析结果,构建或更新聚集单元,包括:
根据所述计算维度,抽取所述输入数据中的维度值;
根据所述维度值和所述数据结构,构建所述聚集单元,其中,所述聚集单元仅包含当前获取的所述输入数据;
将在所述时效时间内构建的所述聚集单元中,维度值相同的聚集单元合并为一个聚集单元。
本发明实施例的数据实时处理方法中,步骤502,所述根据用户指标定义界面上配置的指标属性信息,生成指标计算任务,包括:
根据用户指标定义界面上配置的多个所述指标属性信息,生成多个所述指标计算任务,并将多个所述指标计算任务分配至至少一个计算节点。
本发明实施例的数据实时处理方法还包括:
根据集群元信息和各所述计算节点上报的集群硬件资源信息,将多个所述指标计算任务分配至至少一个所述计算节点。
本发明实施例的数据实时处理方法还包括:
在根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标的过程中,监测每一所述计算节点的计算过程的异常情况;
在至少一个所述计算节点存在计算过程异常终止时,根据所述集群元信息,在其他所述计算节点上恢复异常终止的计算过程。
本发明实施例的数据实时处理方法中,所述用户查询界面包括:查询模式项及与所述查询模式项对应的查询条件输入项;
其中,所述查询模式项包括:标准模式项和高级模式项;
与所述标准模式项向对应的查询条件项包括以下至少之一:任务名称、维度和时间范围;
与所述高级模式项对应的查询条件项包括:查询语句输入项。
本发明实施例还提供一种数据实时处理系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上所述的数据实时处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种可读存储介质,可读存储介质上存储有计算机程序,该程序被处理器执行时实现如上所述的数据实时处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据实时处理系统,其特征在于,包括:管理模块和计算引擎;
所述管理模块用于根据用户指标定义界面上配置的指标属性信息,生成指标计算任务;
所述计算引擎用于获取所述管理模块发送的所述指标计算任务,以及,获取输入数据,并根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标。
2.根据权利要求1所述的系统,其特征在于,所述计算引擎用于将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算。
3.根据权利要求1或2所述的系统,其特征在于,还包括:处理模块,用于:接收并存储所述第一目标指标;
或者,接收所述管理模块发送的指标计算任务,以及,所述计算引擎发送的所述输入数据,并根据所述指标计算任务对所述输入数据进行离线运算,获得第二目标指标。
4.根据权利要求2所述的系统,其特征在于,在根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标时,所述计算引擎用于:
根据所述指标计算任务,对所述输入数据进行维度分析,获得维度分析结果;
根据所述维度分析结果,构建或更新聚集单元;
根据所述指标计算任务对所述聚集单元中的数据进行运算,获得所述第一目标指标。
5.根据权利要求1所述的系统,其特征在于,所述计算引擎包括多个计算节点;
在根据用户指标定义界面上配置的指标属性信息,生成指标计算任务时,所述管理模块具体用于:
根据用户指标定义界面上配置的多个所述指标属性信息,生成多个所述指标计算任务,并将多个所述指标计算任务分配至至少一个所述计算节点。
6.一种数据实时处理方法,应用于如权利要求1所述的数据实时处理系统,其特征在于,所述方法包括:
显示一用户指标定义界面,所述用户指标定义界面用于供用户配置指标属性信息;
根据所述指标属性信息生成指标计算任务;
获取输入数据;
根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标。
7.根据权利要求6所述的方法,其特征在于,所述根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标,包括:
将所述输入数据加载至内存中,并在所述内存中根据所述指标计算任务对所述输入数据进行实时运算,获得所述第一目标指标。
8.根据权利要求6或7所述的方法,其特征在于,还包括:
接收并存储所述第一目标指标;
或者,接收指标计算任务,以及,所述输入数据,并根据所述指标计算任务对所述输入数据进行离线运算,获得第二目标指标。
9.根据权利要求7所述的方法,其特征在于,所述根据所述指标计算任务对所述输入数据进行实时运算,获得第一目标指标,包括:
根据所述指标计算任务,对所述输入数据进行维度分析,获得维度分析结果;
根据所述维度分析结果,构建或更新聚集单元;
根据所述指标计算任务对所述聚集单元中的数据进行运算,获得所述第一目标指标。
10.根据权利要求6所述的方法,其特征在于,所述根据用户指标定义界面上配置的指标属性信息,生成指标计算任务,包括:
根据用户指标定义界面上配置的多个所述指标属性信息,生成多个所述指标计算任务,并将多个所述指标计算任务分配至至少一个计算节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622152.0A CN111813871B (zh) | 2020-06-30 | 2020-06-30 | 一种数据实时处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622152.0A CN111813871B (zh) | 2020-06-30 | 2020-06-30 | 一种数据实时处理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813871A true CN111813871A (zh) | 2020-10-23 |
CN111813871B CN111813871B (zh) | 2021-06-18 |
Family
ID=72856206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010622152.0A Active CN111813871B (zh) | 2020-06-30 | 2020-06-30 | 一种数据实时处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813871B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749056A (zh) * | 2020-12-30 | 2021-05-04 | 广州品唯软件有限公司 | 应用服务指标监控方法、装置、计算机设备和存储介质 |
CN112948455A (zh) * | 2021-01-08 | 2021-06-11 | 四川新网银行股份有限公司 | 一种基于Apache Druid的实时分析计算方法 |
CN114371884A (zh) * | 2021-12-31 | 2022-04-19 | 南京星云数字技术有限公司 | Flink计算任务的处理方法、装置、设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090212211A1 (en) * | 2008-02-22 | 2009-08-27 | Hitachi High-Technologies Corporation | Electron Microscope System and Method for Evaluating Film Thickness Reduction of Resist Patterns |
WO2011013007A2 (en) * | 2009-07-29 | 2011-02-03 | Purapharm International (Hk) Limited | Ontological information retrieval system |
CN104022899A (zh) * | 2014-05-28 | 2014-09-03 | 中国科学院信息工程研究所 | 一种网络管理系统的三维评估方法及系统 |
US20150006228A1 (en) * | 2013-06-27 | 2015-01-01 | Michael Wilking | Stock coverage calculation in an olap engine |
CN105426292A (zh) * | 2015-10-29 | 2016-03-23 | 网易(杭州)网络有限公司 | 一种游戏日志实时处理系统及方法 |
CN106452868A (zh) * | 2016-10-12 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种支持多维度聚合分类的网络流量统计实现方法 |
CN106528847A (zh) * | 2016-11-24 | 2017-03-22 | 北京集奥聚合科技有限公司 | 一种海量数据的多维度处理方法及系统 |
CN108573348A (zh) * | 2018-04-18 | 2018-09-25 | 鑫涌算力信息科技(上海)有限公司 | 金融指标分布式计算方法及其系统 |
CN109345377A (zh) * | 2018-09-28 | 2019-02-15 | 北京九章云极科技有限公司 | 一种数据实时处理系统及数据实时处理方法 |
CN109960560A (zh) * | 2019-03-29 | 2019-07-02 | 北京九章云极科技有限公司 | 一种指标处理方法及系统 |
CN110334109A (zh) * | 2019-05-08 | 2019-10-15 | 重庆猪八戒知识产权服务有限公司 | 关系式数据库数据查询方法、系统、介质和电子设备 |
CN110795440A (zh) * | 2019-09-05 | 2020-02-14 | 连连银通电子支付有限公司 | 一种更新指标的方法及装置 |
-
2020
- 2020-06-30 CN CN202010622152.0A patent/CN111813871B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090212211A1 (en) * | 2008-02-22 | 2009-08-27 | Hitachi High-Technologies Corporation | Electron Microscope System and Method for Evaluating Film Thickness Reduction of Resist Patterns |
WO2011013007A2 (en) * | 2009-07-29 | 2011-02-03 | Purapharm International (Hk) Limited | Ontological information retrieval system |
US20150006228A1 (en) * | 2013-06-27 | 2015-01-01 | Michael Wilking | Stock coverage calculation in an olap engine |
CN104022899A (zh) * | 2014-05-28 | 2014-09-03 | 中国科学院信息工程研究所 | 一种网络管理系统的三维评估方法及系统 |
CN105426292A (zh) * | 2015-10-29 | 2016-03-23 | 网易(杭州)网络有限公司 | 一种游戏日志实时处理系统及方法 |
CN106452868A (zh) * | 2016-10-12 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种支持多维度聚合分类的网络流量统计实现方法 |
CN106528847A (zh) * | 2016-11-24 | 2017-03-22 | 北京集奥聚合科技有限公司 | 一种海量数据的多维度处理方法及系统 |
CN108573348A (zh) * | 2018-04-18 | 2018-09-25 | 鑫涌算力信息科技(上海)有限公司 | 金融指标分布式计算方法及其系统 |
CN109345377A (zh) * | 2018-09-28 | 2019-02-15 | 北京九章云极科技有限公司 | 一种数据实时处理系统及数据实时处理方法 |
CN109960560A (zh) * | 2019-03-29 | 2019-07-02 | 北京九章云极科技有限公司 | 一种指标处理方法及系统 |
CN110334109A (zh) * | 2019-05-08 | 2019-10-15 | 重庆猪八戒知识产权服务有限公司 | 关系式数据库数据查询方法、系统、介质和电子设备 |
CN110795440A (zh) * | 2019-09-05 | 2020-02-14 | 连连银通电子支付有限公司 | 一种更新指标的方法及装置 |
Non-Patent Citations (4)
Title |
---|
KONG-FA HU D等: "A Rapid Dimension Hierarchical Aggregation Algorithm on High Dimensional Olap", 《MACHINE LEARNING AND CYBERNETICS》 * |
尹为 等: "基于数据流多维分析的可疑金融交易动态识别", 《北京理工大学学报(社会科学版)》 * |
张淼: "某集团数据中心ETL系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
郑勤华 等: "基于学习分析的在线学习测评建模与应用——学习者综合评价参考模型研究", 《电化教育研究》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749056A (zh) * | 2020-12-30 | 2021-05-04 | 广州品唯软件有限公司 | 应用服务指标监控方法、装置、计算机设备和存储介质 |
CN112948455A (zh) * | 2021-01-08 | 2021-06-11 | 四川新网银行股份有限公司 | 一种基于Apache Druid的实时分析计算方法 |
CN114371884A (zh) * | 2021-12-31 | 2022-04-19 | 南京星云数字技术有限公司 | Flink计算任务的处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111813871B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813871B (zh) | 一种数据实时处理系统及方法 | |
CN101902505B (zh) | 一种分布式dns查询日志的实时统计装置及方法 | |
CN106708917B (zh) | 一种数据处理方法、装置以及olap系统 | |
CN109783512A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111263409B (zh) | 提供网络功能服务的元数据信息的方法、系统以及相关设备 | |
EP2686764A1 (en) | Data source analytics | |
CN109960560B (zh) | 一种指标处理方法及系统 | |
CN111881221A (zh) | 物流服务里客户画像的方法、装置和设备 | |
CN115344207A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114579668A (zh) | 一种数据库数据同步方法 | |
CN111343269B (zh) | 一种数据下载方法、装置、计算机设备和存储介质 | |
CN116049285A (zh) | 一种基于流数据的实时指标计算方法、系统、设备及介质 | |
CN112464165A (zh) | 一种测点统计效率的提升方法、存储介质及计算设备 | |
CN112016009A (zh) | 数据处理方法、余额获取方法、装置、设备和存储介质 | |
CN112163948A (zh) | 一种分润计算方法、系统、设备及存储介质 | |
CN113722141B (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN106528849B (zh) | 面向完整历史记录的图查询开销方法 | |
CN116302827A (zh) | 一种便于管理的微服务架构系统 | |
CN115630122A (zh) | 一种数据同步方法、装置、存储介质和计算机设备 | |
CN110188140A (zh) | 数据拉取方法、装置、存储介质和计算机设备 | |
CN110532253B (zh) | 一种业务分析方法、系统及集群 | |
CN112463233A (zh) | 一种系统配置方法、系统、设备以及介质 | |
CN117609315B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113032383B (zh) | 数据实时处理方法、设备、系统以及存储介质 | |
CN117472967B (zh) | 一种基于数据使用热度的数据生命周期管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |