一种实时数据指标计算系统和方法与流程

文档序号:21362983发布日期:2020-07-04 04:37阅读:655来源:国知局
一种实时数据指标计算系统和方法与流程

本发明属于大数据处理技术领域,具体涉及一种实时数据指标计算系统和方法。



背景技术:

近年来随着大数据技术在各个行业应用落地,大数据的价值越来越受到各个企业的重视。

大数据平台与传统的业务平台数据并不相同,数据的存储体量基本以tb、pb为主,其处理量以千万、亿级规模为主,而海量的数据处理需要在可控的时间内完成。因此,现有技术中的大数据处理基础是mapreduce(mapreduce是一种编程模型,用于大规模数据集),mapreduce可以并行处理数据,并对数据进行分布式计算;其中,流式计算成为大数据领域中解决不同应用场景的技术手段。

大数据处理的过程都是将原先基础的业务数据,经过转换、清洗、汇总等操作计算完成目标数据,再将目标数据的字段加工为指标计算。这个过程在数据仓库和bi(商业智能(businessintelligence)数据加工里面有一部分属于etl(抽取、转换、加载)的加工过程。

在大规模数据处理技术上,现有技术中用的比较主流的技术就是基于mapreduce的hive数据加工,hive数据加工可使用类sql的方式对数据进行加工处理。另外,还有使用spark的rdd有向无环图对分布式数据进行加工,将数据读取到内存和本地端近行加工计算,并将计算结果进一步转换到后端来处理,其中,spark的处理过程包括通过spark执行任务的批次执行、sparkstreaming的流式微批次数据处理,这一处理过程实现了准实时的数据处理和指标计算。

在实时计算领域,基于大数据的lambda、kappa大数据实时处理架构已经成为实时计算的主流架构,基于kafka、storm流式数据处理架构已成为实时数据处理的加工主流架构,以及近期发展很快的flink实时流式计算也已经成为实时数据处理的主要技术手段。

但上述大数据平台处理过程都需要开发人员掌握相关的技术栈,由于大数据体系,特别是实时数据的加工计算涉及到的大数据组件较多、涉及的存储数据量很大、集群数据量多、分布式体系庞且环境复杂,很容易发生由于对大数据平台不熟悉造成数据异常,难以调试以及难以部署的情况。

同时,现有技术中的大数据实时处理方法通常是多种大数据技术的综合解决方案,需要的服务器数量多、技术组件多和版本多样化,也进一步造成了系统搭建、使用以及运维的复杂度,增加了维护和使用成本。

另外,现有的数据指标加工主要用于数据分析和数据展示,难以实现毫秒级的数据更新的实时使用;而且更新后的数据指标处理必须要停止应用服务,开发人员对应用服务进行停机部署时,需要开发人员编写sql语句或二次开发,无法实现指标的业务化配置和快速发布部署。

综上所述,现有技术中的数据指标处理过程存在以下几个技术问题:

开发人员对大数据平台不熟悉,使得数据处理过程中数据发生异常、难以调试及部署;造成大数据系统的搭建、使用以及运维的复杂度,相应的增加了维护和使用成本;

数据指标计算时间较长且对更新后的数据指标处理时无法实现指标的业务化配置和快速发布部署。



技术实现要素:

本发明实施例提供一种实时数据指标计算系统和方法,该方法是基于微服务架构的分布式实时数据指标计算方法,可实现数据指标实时使用、快速部署应用服务,以降低大数据系统的维护和使用成本。

第一方面,本发明实施例提供一种实时数据指标计算系统,该系统包括管理平台端和数据服务节点;其中,

所述管理平台端作为服务的平台注册中心,采用微服务结构实现,并用于执行以下操作:

定义数据模型与ods层原始表的关联关系和关联字段;

对所述数据模型添加定义字段以获得待计算的数据指标;

利用所述关联关系和关联字段对所述数据模型进行配置;

所述数据服务节点采用微服务分布式服务结构,用于执行以下操作:

加载所述管理平台端配置后的数据模型的数据指标;

接收所述ods层原始表的数据;

采用指标计算方法并根据预设加载条件对所述ods层原始表的数据进行指标计算,以获得待计算的数据指标的指标值;

其中,数据服务节点通过管理平台端提供统一的服务注册、服务发现以及服务监控功能,并且每个数据服务节点均具有数据存储和备份功能,通过内存数据库存储实时计算的数据指标。

进一步的,所述数据模型为数据统计模型和/或数据实体模型。

进一步的,所述ods层原始表的关联关系和关联字段是基于ods层原始数据的数据字段和元数据信息所定义的。

进一步的,所述数据服务节点还用于执行以下操作:

对所述配置后的数据模型的数据指标的字段和关联关系进行初始化;

检测初始化后的数据指标的字段是否正确。

进一步的,所述数据服务节点包括同步接口和异步接口,通过调用所述同步接口或异步接口将ods层原始表的数据转换为json结构数据。

进一步的,所述待计算的数据指标的指标值是通过以下方式获得的:

数据服务节点对所述ods层原始表的数据与数据模型中的字段指标进行指标计算,以获得所述待计算的数据指标的指标值。

进一步的,所述数据服务节点对所述指标值进行记录,基于ods层原始表的数据获取数据主维度的值,基于所述数据主维度的值读取已记录的指标值;

所述管理平台端利用ods层原始表的关联关系和关联字段对所述数据模型重新进行配置;

所述数据服务节点基于所述已记录的指标值、重新配置后的数据模型和所述指标计算方法对待计算的数据指标的指标值更新。

进一步的,所述指标计算方法为聚合计算、逻辑运算、比较计算或脚本计算方法。

第二方面,本发明实施例提供一种实时数据指标计算方法,该方法包括上述任一项所述的管理平台端和数据服务节点,其中,所述管理平台端作为服务的平台注册中心,采用微服务结构实现并完成以下步骤:

定义数据模型与ods层原始表的关联关系和关联字段;对所述数据模型添加定义字段以获得待计算的数据指标;利用所述关联关系和关联字段对所述数据模型进行配置;

所述数据服务节点采用微服务分布式服务结构并完成以下步骤:加载所述管理平台端配置后的数据模型的数据指标;接收所述ods层原始表的数据;采用指标计算方法并根据预设加载条件对所述ods层原始表的数据进行指标计算,以获得待计算的数据指标的指标值;

其中,数据服务节点通过管理平台端提供统一的服务注册、服务发现以及服务监控功能,并且每个数据服务节点均具有数据存储和备份功能,通过内存数据库存储实时计算的数据指标。

进一步的,该方法还包括以下步骤:

数据服务节点对所述指标值进行记录,基于ods层原始表的数据获取数据主维度的值,基于所述数据主维度的值读取已记录的指标值;

所述管理平台端利用ods层原始表的关联关系和关联字段对所述数据模型重新进行配置;

所述数据服务节点基于所述已记录的指标值、重新配置后的数据模型和所述指标计算方法对待计算的数据指标的指标值进行更新。

本发明的实时数据指标计算系统和方法,可以将对一笔实时事件数据进行上百个毫秒级的指标运算,本实施例的数据服务节点采用微服务分布式服务结构,内部通过内存数据库存储实时数据计算指标,内存数据库的读写保证了实时数据的快速更新和计算并通过分布式的服务结构支持海量数据指标处理的动态横向扩展。

附图说明

图1是本发明实施例提供的一种实时数据指标计算系统的系统框架示意图;

图2为本发明实施例提供的一种实时数据指标计算系统的应用示意图;

图3为本发明实施例提供的一种实时数据指标计算方法的流程示意图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

实施例一

下面将对本实施例的实时数据指标计算系统涉及的术语以及可以实现的技术环境进行说明,以方便本领域技术人员更好地理解本申请实施例提供的技术方案。

springcloud:在springboot基础之上构建,用于快速构建分布式系统的通用模式的工具集。

api:applicationprogramminginterface,应用程序接口。

nio:nonblockingi/o,非阻塞io,开发的网络通信框架,提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

ignite:轻量级分布式内存htap数据库及计算平台。

数据指标,指标计算逻辑,该数据指标的数据关联关系通过管理平台端定义并管理。

ods层:原始数据层,用于存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。

udf:用户自定义标量值函数(userdefinedscalarfunction),其输入与输出是一对一的关系,即读入一行数据,写出一条输出值。

udaf:自定义聚合函数,userdefinedaggregationfunction,其输入与输出是多对一的关系,即将多条输入记录聚合成一条输出值。可以与sql中的groupby语句联用。

本实施例中的实时数据指标计算系统是基于微服务体系结构并使用基于springcloud的微服务框架作为数据服务的基础框架;该系统还采用分布式系统架构,以支持基于任意规模数据服务节点水平扩展以提升整体集群的计算处理能力。

其中,实时数据指标计算系统的每个数据服务节点为一个独立部署的api应用服务,具有独立的进程和端口;应用服务采用基于nettyserver的springboot服务搭建,具备同步、异步调用接口。数据接口采用标准restful风格定义,数据报文统一采用json数据结构,对外部调用和使用具有很好的跨平台和其他平台的兼容性。

参见图1,图1是本发明实施例提供的一种实时数据指标计算系统的框架示意图;其中,数据服务节点采用集群化部署,数据服务节点组成了数据服务集群;

另外,数据服务节点通过管理平台端向用户提供统一的服务注册、服务发现以及服务监控功能;实时调用端(即客户端)通过管理平台端发现所述数据服务集群;

本实施例中,数据服务节点通过分布式内存数据库ignite在各个数据服务节点间提供数据访问和存储能力,每个数据服务节点包含数据存储和数据备份功能,整体数据服务节点集群提供数据存储的高可用结构;

数据服务节点基于数据的主键和主维度进行路由,在数据服务节点内部通过数据队列的方式保证数据加工的顺序性和一致性。

管理平台端同样采用微服务结构,管理平台端同时承担服务的平台注册中心的角色;

在管理平台端定义加工的数据源、数据表、数据字段以及定义数据字典,其中,数据字典是加工数据的元数据定义;

在管理平台端将定义数据统计模型和数据实体模型作为加工目标表的定义模型;其中,数据实体模型作为特征宽表使用,例如客户、商品、订单等有若干多个加工字段组成的加工目标表;数据统计模型将用户行为、流水、事件数据作为输入数据,通过聚合计算得出所述加工目标表;数据统计模型基于某几个字段维度和时间粒度对明细数据进行汇总计算得出对应的数据指标值。

另外,数据统计模型和数据实体模型可映射为待加工的指标数据表,通过关联配置可配置加工字段的关联关系和依赖关系。

在管理平台端还定义了配置待计算加工字段;加工字段的类型根据加工计算方式可定义为:基础字段、函数字段、脚本字段、统计字段和条件字段;其中,基础字段为从原始关联表直取字段;函数字段为通过系统预定义好的函数计算加工结果;脚本字段可定义数据加工的类似udf的函数,可支持java,python,groovy等多种类型的数据脚本;统计字段为基于数据的汇总计算、基于特定条件的累加求和、求次数和去重计数等指标计算;条件字段是类似sql语句的ifthen,whencase的计算加工,基于条件累加计算得出指标结果。

管理平台端配置的数据统计模型和数据实体模型在数据服务节点进行配置加载以加载指标配置字段项,从而完成数据统计模型和数据实体模型的初始化配置。

参见图2,图2为本发明实施例提供的一种实时数据指标计算系统的应用示意图;在本实施例中,数据服务节点有1、2…n个,每个数据阶段对应一个内存数据分片,数据服务节点用于提供统一的地址注册服务功能,并将注册信息发送至管理平台端,管理平台端可将获取的地址注册信息发送给实时调用端(即客户端)。

参见图1和2,本实施例的一种实时数据指标计算系统包括管理平台端和数据服务节点;其中,

所述管理平台端作为服务的平台注册中心,采用微服务结构实现,并用于执行以下操作:

定义数据模型与ods层原始表的关联关系和关联字段;

对所述数据模型添加定义字段以获得待计算的数据指标;

利用所述关联关系和关联字段对所述数据模型进行配置;

所述数据服务节点采用微服务分布式服务结构,用于执行以下操作:

加载所述管理平台端配置后的数据模型的数据指标;

接收所述ods层原始表的数据;

采用指标计算方法并根据预设加载条件对所述ods层原始表的数据进行指标计算,以获得待计算的数据指标的指标值;

其中,数据服务节点通过管理平台端提供统一的服务注册、服务发现以及服务监控功能,并且每个数据服务节点均具有数据存储和备份功能,通过内存数据库存储实时计算的数据指标。

为了使本发明的目的,技术方案和优点更加明白,下文将结合附图对本发明的系统的数据处理流程进行说明。

(1)管理平台端定义ods层原始数据的数据字段和元数据信息;其中,该ods层原始数据的数据字段和元数据信息作为实时数据指标计算系统的基础数据;

(2)管理平台端还定义数据与1个或多个ods层原始表的关联关系和关联字段,以便于对多个ods层的原始表进行汇总计算;其中,该ods层原始表的关联关系和关联字段是基于ods层原始数据的数据字段和元数据信息所定义的;

(3)管理平台端对数据模型下添加定义字段以获得待计算的数据指标;这里的定义字段为待加工计算的衍生指标(即待计算的数据指标),每一个定义字段可理解为一个待加工计算的udf或udaf函数,所述定义字段的类型包括上述所述的基础字段、函数字段、脚本字段、统计字段和条件字段等类型;本实施例中的所述数据模型为数据统计模型和/或数据实体模型;

(4)所述管理平台端利用数据模型与ods层原始表的关联关系和关联字段对数据模型进行配置以获得配置后的数据模型;具体的,所述管理平台端还将配置后的数据模型的数据指标同步至数据服务节点;

(5)所述数据服务节点执行以下操作:基于数据模型对配置后的数据模型中的数据指标的字段和关联关系进行初始化,检测初始化后的数据指标的字段是否正确,以确保配置后的数据模型的数据指标的字段的正确性;其中,每一个数据统计模型或数据实体模型可作为一个独立的配置数据表在分布式存储系统中创建对应的数据表;

(5)数据服务节点基于不同的应用场景包括同步接口和异步接口;客户端发出请求命令并调用所述同步接口或异步接口以将ods层原始表的数据转换为json结构数据,并将json结构数据发送至数据服务节点;

(6)数据服务节点基于所述请求命令接收所述ods层原始表的数据,采用指标计算方法并根据预设加载条件对上送的ods层原始表的数据进行指标计算以获得待计算的数据指标的指标值;进一步的,数据服务节点将所述指标值记录到分布式内存中。

上述预设加载条件可以是从多个配置后的数据模型中选取部分或全部配置后的数据模型进行加载,例如可以为:利用数据模型与ods层原始表的关联关系和关联字段对所述数据模型进行配置,获得了10个配置后的数据模型,数据服务节点只需要加载其中2个配置后的数据模型;可以理解的是,此处仅为举例,在其他实施例中,还可以配置其他数量的数据模型以及还可以加载其他数量的配置后的数据模型;

具体的,所述json结构数据基于上送的ods层原始表的数据进行加工计算,以获得该ods层原始表的数据的衍生字段;

将json结构数据转换为数据服务节点的内部计算数据格式;

判断ods层原始表的数据所属的源表,匹配当前统计模型或实体模型中的关联可计算的字段。

进一步的,所述数据服务节点对所述指标值进行记录,基于ods层原始表的数据获取数据主维度的值,基于所述数据主维度的值读取分布式内存中已记录的指标值。

(8)所述管理平台端还执行以下操作:利用ods层原始表的关联关系和关联字段对所述数据模型重新进行配置以获得更新后的配置数据模型;

所述数据服务节点基于已记录的指标值、重新配置后的数据模型和所述指标计算方法对待计算的数据指标的指标值更新,并将更新后的待计算的数据指标的指标值存储于分布式内存中。

通过本实施例中的实时数据指标计算系统,可以将对一笔实时事件数据进行上百个毫秒级的指标运算,本实施例的数据服务节点采用微服务分布式服务结构,内部通过内存数据库存储实时数据计算指标,内存数据库的读写保证了实时数据的快速更新和计算并通过分布式的服务结构支持海量数据指标处理的动态横向扩展。

下面将通过一个具体的案例来说明上述实时数据指标计算系统的具体实现过程,例如,客户在某银行的客户端进行实时交易,数据服务节点根据客户端的操作来实时统计客户的刷卡额度,刷卡终端次数,刷卡次数,异常交易次数,被拒绝交易次数等指标,数据指标基于不同的时间粒度和数据维度汇总统计,通过对异常不正常指标的监控和判定,实现基于实时交易的风险识别管控,例如:用户卡片在3分钟内刷卡终端数量超过5,用户卡片在10秒内刷卡次数超过50笔,用户卡片在30分钟内交易国家的数量大于3。这些数据指标都是数据服务节点基于用户在客户端的实时交易数据进行的实时指标计算。在该案例中,用户交易表数据集和用户卡表数据集为两个数据表,通过卡字段配置用户交易表和卡表的关联关系,此关联关系为此数据统计模型的关联关系定义。数据表中的字段为使用到的指标计算字段的来源字段,基于字段的值按配置的计算字段规则进行指标计算。

在该案例中,为了完成数据指标的计算,需要按不同的维度和时间粒度定义数据统计模型,有多少个维度+时间粒度的组合,就有多少种数据统计模型,以上的案例中总共有2个数据统计模型被定义,分别为第一统计模型:用户卡片+分钟粒度的组合模型;第二统计模型:用户卡片+秒粒度的组合模型。在第一个数据统计模型中定义一个统计字段,字段定义包含:[字段名称,字段标识,更新方式,计算方式,目标字段,计算条件]。这里定义的指标可表述为:[交易终端数量,cnt_terminal,去重更新,去重计算,终端标识,无]。[刷卡次数,cnt_trade,累计更新,求次数,交易标识,无]。[刷卡国家数,cnt_country,去重更新,去重计算,国家标识,无]。

基于以上数据指标配置,每分钟每个卡片的交易终端数量,每分钟每个卡片的交易国家数量,每秒钟每卡片的刷卡次数将按配置的维度+数据粒度进行数据实时指标计算。相同维度、相同时间粒度的指标数据在一个数据统计模型中完成计算,并进行保留存储。

实施例二

图3为本发明实施例提供的一种实时数据指标计算方法的流程示意图,参见图3,该方法包括上述任一项所述的管理平台端和数据服务节点,其中,所述管理平台端作为服务的平台注册中心,采用微服务结构实现并完成以下步骤:

定义数据模型与ods层原始表的关联关系和关联字段;

对所述数据模型添加定义字段以获得待计算的数据指标;

利用所述关联关系和关联字段对所述数据模型进行配置;

数据服务节点采用微服务分布式服务结构并完成以下步骤:

加载所述管理平台端配置后的数据模型的数据指标;

接收所述ods层原始表的数据;

采用指标计算方法并根据预设加载条件对所述ods层原始表的数据进行指标计算,以获得待计算的数据指标的指标值;

数据服务节点通过管理平台端提供统一的服务注册、服务发现以及服务监控功能,并且每个数据服务节点均具有数据存储和备份功能,通过内存数据库存储实时计算的数据指标。

进一步的,该方法还包括以下步骤:

数据服务节点对所述指标值进行记录,基于ods层原始表的数据获取数据主维度的值,基于所述数据主维度的值读取已记录的指标值;

所述管理平台端利用ods层原始表的关联关系和关联字段对所述数据模型重新进行配置;

所述数据服务节点基于所述已记录的指标值、重新配置后的数据模型和所述指标计算方法对待计算的数据指标的指标值进行更新。

本实施例中的实时数据指标计算方法与上述实施例一的数据指标计算系统的工作过程基本一致,在此不再赘述。

综上所述,本发明具有以下优点:

本发明的实时数据指标计算系统和方法可实现千万级数据的高并发下的毫秒级数据指标实时计算,实时计算结果可直接实时应用于线上应用系统。

在实际应用中,本发明的实时数据指标计算系统的单数据服务节点在500+的数据指标计算下,该系统可达到3000-5000tps,单笔处理时长在30-50ms左右的指标计算能力;而且该系统的指标读取能力可达到10-30毫秒,可为交易阻断级的策略规则提供实时的指标数据依据。

另外,本发明的实时数据指标计算系统,可直接应用于大数据实时领域的数据监控、风险控制、实时数据运营等多方面的数据应用领域,并且在数据的体量上,可支持千万、亿级规模的数据处理能力,对更大规模的数据可支持计算节点的水平扩容,实现整体集群的数据处理能力的提升。

本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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