本发明涉及数据处理领域,尤其涉及数据处理方法、数据处理系统以及计算机可读存储介质。
背景技术
目前,消费贷风控业务系统将外部合作商返回的数据以json字符串的形式记录在mysql数据库(关系型数据库管理系统)中,json((javascriptobjectnotation,js对象简谱,是一种轻量级的数据交换格式)格式的数据由于没有定义的结构,导致其在mysql数据库中可读性和可扩展性较差,造成数据查询困难。因而,随着风控业务后期跟进的需求不断增大,如何快速搜索到合作商数据成为急需解决的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供一种数据处理方法,旨在将json格式的数据从mysql中剥离解耦至分布式搜索引擎中,实现数据的快速搜索。
为实现上述目的,本发明提供一种数据处理方法,所述数据处理方法包括以下步骤:
监听并解析mysql数据库的日志文件,将解析得到的数据添加至消息队列;所述mysql数据库中数据的格式为json格式;
将所述消息队列中的数据写入分布式搜索引擎。
优选地,所述监听并解析mysql数据库的日志文件的步骤之前,还包括:
接收业务对象的数据并转化为json格式;
根据所述业务对象确定所述mysql数据库中对应的数据表;
将json格式的数据写入确定的数据表中。
优选地,将解析得到的数据添加至消息队列的步骤包括:
将解析得到的数据转换为实体对象;
将所述实体对象添加至所述消息队列。
优选地,所述将所述消息队列中的数据写入分布式搜索引擎的步骤包括:
异步读取所述消息队列中的数据;
将读取到的数据写入所述分布式搜索引擎。
优选地,所述将读取到的数据写入所述分布式搜索引擎的步骤包括:
确定读取到的数据对应的索引;
将读取到的数据分片储存至确定的索引中。
优选地,所述数据处理方法还包括以下步骤:
监听并解析mysql数据库的日志文件,将解析得到的数据写入hbase数据库;
采用hive工具对所述hbase数据库中的数据进行统计分析;
储存统计分析结果。
此外,为实现上述目的,本发明还提供一种数据处理系统,所述数据处理系统包括:解析子系统、数据库子系统、搜索引擎子系统,所述数据库子系统包括mysql数据库其中,
所述解析子系统,用于监听并解析所述mysql数据库的日志文件,将解析得到的数据添加至消息队列;所述mysql数据库中数据的格式为json格式;
所述搜索引擎子系统,用于将所述消息队列中的数据写入分布式搜索引擎。
优选地,所述数据处理系统还包括所述前端业务系统,
所述前端业务系统,用于接收业务对象的数据并转化为json格式,根据所述业务对象确定所述mysql数据库中对应的数据表,将json格式的数据写入确定的数据表中。
优选地,所述数据库系统还包括hbase数据库和数据统计模块;
所述数据统计模块,用于监听并解析mysql数据库的日志文件,将解析得到的数据写入hbase数据库;采用hive工具对所述hbase数据库中的数据进行统计分析;储存统计分析结果。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如上任一项所述的数据处理方法的步骤。
本发明实施例提出的一种数据处理方法,通过将mysql数据库中json格式的数据提取并写入分布式搜索引擎,提供采用分布式搜索引擎对风控业务数据进行搜索的渠道,实现数据的快速搜索,为风控业务数据的分析提供数据准备。
附图说明
图1是本发明实施例方案数据处理系统的系统结构示意图;
图2为本发明实施例数据处理方法的第一流程示意图;
图3为本发明实施例数据处理方法的第二流程示意图;
图4为本发明实施例数据处理方法的第三流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:监听并解析mysql数据库的日志文件,将解析得到的数据添加至消息队列;所述mysql数据库中数据的格式为json格式;将所述消息队列中的数据写入分布式搜索引擎。
由于现有技术中,mysql数据库中json格式的数据可读性和可扩展性较差,造成数据查询困难。
本发明提供一种解决方案,使json格式的数据从mysql中剥离解耦至分布式搜索引擎中,实现数据的快速搜索。
在本发明实施例中,提供一种数据处理系统,如图1所示,该数据处理系统包括:前端业务系统400、解析子系统100、数据库子系统300、搜索引擎子系统200,所述搜索引擎子系统200包括分布式搜索引擎,所述数据库子系统300包括mysql数据库和hbase数据库。
其中,前端业务系统400包括web服务器集群、osp服务器集群。前端业务系统400,用于接收业务对象的数据并转化为json格式,根据所述业务对象确定所述mysql数据库中对应的数据表,将json格式的数据写入确定的数据表中。这里数据处理系统的业务对象可理解为风控数据处理系统的合作商。业务对象的数据可理解为合作商所提供的风控数据,如贷款人的基本信息、贷款申请信息、贷款合同信息、风控审核信息等。不同的合作商所提供的业务对象的数据的格式不同。前端业务系统400通过对合作商不同的数据源格式进行统一,便于管理和储存。
为了提高数据处理效率,web服务器集群中的web服务器(也称为www(worldwideweb)服务器,主要功能是提供网上信息浏览服务)可对应合作商设置,不同的合作商对应不同的web服务器。在合作商的通过浏览器登录其对应的服务器时,或者,在合作商的服务器与其对应的web服务器进行数据交互时,web服务器获取该业务对象的数据。为了提高数据处理效率,osp服务器集群中的服务器可对应web服务器集群中的web服务器设置,不同的web服务器对应设置不同的osp服务器(开放服务平台服务器)。web服务器接收业务对象的数据,并发送至对应的osp服务器。osp服务器接收到业务对象的数据后,将业务对象的数据转化为json格式的数据。可通过识别业务对象的数据中的合作商标识、根据所发送的web服务器等确定业务对象的数据所对应的业务对象,将json格式的数据写入该业务对象在mysql数据库中对应的数据表中。此外,mysql数据库也可为不同的osp服务器提供不同的数据接口,数据接口与对应的业务对象的数据表关联,直接通过数据接口将数据写入业务对象相应的数据表中。
解析子系统100,用于监听并解析所述mysql数据库的日志文件,将解析得到的数据添加至消息队列;所述mysql数据库中数据的格式为json格式。其中,解析子系统100的服务器可调用rdp解析工具(唯品会的数据解析工具)实时监听mysql数据的日志文件binlog(二进制格式的文件,用于记录用户对mysql数据库更新的sql语句信息),在binlog中产生新的日志记录时,对新增的日志记录进行解析,将解析得到的数据发送至vms异步消息工具中。
解析子系统100中的vms(唯品会的消息队列工具)接收到解析得到的数据后添加至消息队列。搜索引擎子系统200采用异步方式获取消息队列中的数据,vms可将消息队列中的数据异步发送至搜索引擎子系统200,搜索引擎子系统200也可主动异步读取消息队列中的数据,保证搜索引擎子系统200中数据的实时性,有利于快速搜索到所需数据。其中,搜索引擎子系统200主动的异步读取消息队列中的数据,消息队列中数据的写入和读取可同步进行,进一步的提高搜索引擎子系统200中数据的实时性。vms可依据不同业务对象创建不同的消息队列,rdp解析binlog的同时可确定新增的日志记录所对应的业务对象,并将解析得到的数据发送至该业务对象对应的消息队列中。
其中,为了便于数据传输,解析子系统100中的rdp还用于将解析得到的数据进行序列化处理转换为java(一种计算机编程语言)实体对象后,再发送至vms,vms接收到java实体对象后将其添加至消息队列中。
搜索引擎子系统200包括分布式搜索引擎,用于将所述消息队列中的数据写入分布式搜索引擎。分布式搜索引擎为将全网分成若干个自治区域,在每个自治区域内设立一个检索服务器的装置。分布式搜索引擎具体为elasticsearch(基于lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎),分布式搜索引擎中采用内存和固态硬盘进行数据储存,elasticsearch是快速搜索的开源框架,应用平台(如唯品会的palls平台)对开源框架进行封装,封装后在应用平台上可提供api(应用程序编程接口)为用户创建快速搜索的数据渠道。
在搜索引擎子系统200中,每个业务对象对应建立有不同的索引,在同一个索引中设立有多个分片。搜索引擎子系统200可为不同的索引设立不同的数据接口,不同的数据接口对应不同业务对象的消息队列。搜索引擎子系统200将从消息队列读取或接收到的数据写入分布式搜索引擎。在写入的过程中,首先确定读取到的数据对应的索引,再将读取到的数据分片储存至确定的索引中。在获取到消息队列中的数据后,可对通过对数据的内容进行识别、或者通过队列与业务对象的对应关系等确定获取到的数据所对应的业务对象,根据所确定的业务对象确定获取的数据所对应的索引。在进行数据储存之前,数据进行数据分片后再储存进对应的索引中的分片。其中,在获取到消息队列中的数据后,若数据为java实体对象,则将java实体对象进行逆序列化处理转换为json格式再进行数据分片储存。
进一步的,所述数据统计模块,用于监听并解析mysql数据库的日志文件,将解析得到的数据写入hbase数据库;采用hive工具(基于hadoop的一个数据仓库工具)对所述hbase数据库中的数据进行统计分析;储存统计分析结果。数据库子系统300可调用数据统计模块与解析子系统100同步的监听并解析mysql数据库的binlog,采用异步读取的方式将解析得到的数据写入hbase数据库中。调用hive工具每隔预设时间对hbase数据库中的数据按照预设规则对不同业务对象的数据进行分类统计分析,并将统计分析结果进行储存。其中,由于hbase数据库查询数据较慢,elasticsearch中也可为hbase数据库中的统计分析结果建立索引。在得到统计分析结果时,数据库系统可将统计分析结果发送至elasticsearch中并存储至相应的索引中,通过elasticsearch可快速的查询到所需的统计分析结果。通过hbase数据库的设立,对不同合作商的数据进行统计分析,可为elasticsearch提供数据支撑,为后期的风控分析提供更全面的数据准备。
通过上述的数据处理系统的构建,可将json格式的数据从mysql中剥离解耦至分布式搜索引擎中,实现数据的快速搜索,为后期对风控业务的分析提供充足的数据准备。其中,通过数据处理系统中不同子系统的解耦,各司其职,提高数据处理系统的处理效率,进一步保证数据的快速检索。
本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的终端,或者组合某些终端,或者不同的终端布置。
此外,本申请还提出一种数据处理装置,该数据处理装置包括:处理器,如cpu,存储器以及存储于所述存储器中的数据处理程序,处理器可调用存储器存储的数据处理程序,并执行下面数据处理方法的相关步骤。
此外,本申请还提出一种计算机可读存储介质,如上述的存储器,计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如下面数据处理方法的相关步骤。
参照图2,本发明实施例提供一种数据处理方法,所述数据处理方法包括:
步骤s10,监听并解析mysql数据库的日志文件,将解析得到的数据添加至消息队列;所述mysql数据库中数据的格式为json格式;
步骤s20,将所述消息队列中的数据写入分布式搜索引擎。
解析子系统100的服务器可调用rdp解析工具实时监听mysql数据的日志文件binlog,在binlog中产生新的日志记录时,对新增的日志记录进行解析,将解析得到的数据发送至vms异步消息工具中。
vms接收到解析得到的数据后添加至消息队列。搜索引擎子系统200采用异步方式获取消息队列中的数据,vms可将消息队列中的数据异步发送至搜索引擎子系统200,搜索引擎子系统200也可主动异步读取消息队列中的数据,保证搜索引擎子系统200中数据的实时性,有利于快速搜索到所需数据。其中,搜索引擎子系统200主动的异步读取消息队列中的数据,消息队列中数据的写入和读取可同步进行,进一步的提高搜索引擎子系统200中数据的实时性。vms可依据不同业务对象创建不同的消息队列,rdp解析binlog的同时可确定新增的日志记录所对应的业务对象,并将解析得到的数据发送至该业务对象对应的消息队列中。
通过上述方式,可将json格式的数据从mysql中剥离解耦至分布式搜索引擎中,提供采用分布式搜索引擎对风控业务数据进行搜索的渠道,实现数据的快速搜索,为后期对风控业务的分析提供充足的数据准备。
进一步的,参照图3,所述监听并解析mysql数据库的日志文件的步骤之前,还包括:
步骤s01,接收业务对象的数据并转化为json格式;
步骤s02,根据所述业务对象确定所述mysql数据库中对应的数据表;
步骤s03,将json格式的数据写入确定的数据表中。
其中,前端业务系统400包括web服务器集群、osp(开放服务平台)服务器集群。前端业务系统400,用于接收业务对象的数据并转化为json格式,根据所述业务对象确定所述mysql数据库中对应的数据表,将json格式的数据写入确定的数据表中。这里数据处理系统的业务对象可理解为风控数据处理系统的合作商。业务对象的数据可理解为合作商所提供的风控数据,如贷款人的基本信息、贷款申请信息、贷款合同信息、风控审核信息等。不同的合作商所提供的业务对象的数据的格式不同。
为了提高数据处理效率,web服务器集群中的服务器可对应合作商设置,不同的合作商对应不同的web服务器。在合作商的通过浏览器登录其对应的服务器时,或者,在合作商的服务器与其对应的web服务器进行数据交互时,web服务器获取该业务对象的数据。为了提高数据处理效率,osp服务器集群中的服务器可对应web服务器集群中的服务器设置,不同的web服务器对应设置不同的osp服务器。web服务器接收业务对象的数据,并发送至对应的osp服务器。osp服务器接收到业务对象的数据后,将业务对象的数据转化为json格式的数据。可通过识别业务对象的数据中的合作商标识、根据所发送的web服务器等确定业务对象的数据所对应的业务对象,将json格式的数据写入该业务对象在mysql数据库中对应的数据表中。此外,mysql数据库也可为不同的osp服务器提供不同的数据接口,数据接口与对应的业务对象的数据表关联,直接通过数据接口将数据写入业务对象相应的数据表中。
通过上述方式,前端业务系统400通过对合作商不同的数据源格式进行统一,便于管理和储存,并且将不同业务对象的数据在mysql数据库中分类储存,便于后续数据的查询、管理、分析和检索等。
进一步的,所述将解析得到的数据添加至消息队列的步骤包括:
步骤s11,将解析得到的数据转换为实体对象;
步骤s12,将所述实体对象添加至所述消息队列。
其中,为了便于数据传输,解析子系统100中的rdp还用于将解析得到的数据进行序列化处理转换为java实体对象后,再发送至vms,vms接收到java实体对象后将其添加至消息队列中。
进一步的,所述将所述消息队列中的数据写入分布式搜索引擎的步骤包括:
步骤s21,异步读取所述消息队列中的数据;
步骤s22,将读取到的数据写入所述分布式搜索引擎。
搜索引擎子系统200主动的异步读取消息队列中的数据,消息队列中数据的写入和读取可同步进行,进一步的提高搜索引擎子系统200中数据的实时性。
进一步的,所述将读取到的数据写入所述分布式搜索引擎的步骤包括:
步骤s221,确定读取到的数据对应的索引;
步骤s222,将读取到的数据分片储存至确定的索引中。
在搜索引擎子系统200中,每个业务对象对应建立有不同的索引,在同一个索引中设立有多个分片。搜索引擎子系统200可为不同的索引设立不同的数据接口,不同的数据接口对应不同业务对象的消息队列。搜索引擎子系统200将从消息队列读取或接收到的数据写入分布式搜索引擎。在写入的过程中,首先确定读取到的数据对应的索引,再将读取到的数据分片储存至确定的索引中。在获取到消息队列中的数据后,可对通过对数据的内容进行识别、或者通过队列与业务对象的对应关系等确定获取到的数据所对应的业务对象,根据所确定的业务对象确定获取的数据所对应的索引。在进行数据储存之前,数据进行数据分片后再储存进对应的索引中的分片。其中,在获取到消息队列中的数据后,若数据为java实体对象,则将java实体对象进行逆序列化处理转换为json格式再进行数据分片储存。
通过上述方式,用户可通过分布式搜索引擎快速检索到所需的风控业务数据。
进一步的,参照图4,所述数据处理方法还包括以下步骤:
步骤s30,监听并解析mysql数据库的日志文件,将解析得到的数据写入hbase数据库;
步骤s40,采用hive工具对所述hbase数据库中的数据进行统计分析;
步骤s50,储存统计分析结果。
数据库子系统300可调用数据统计模块与解析子系统100同步的监听并解析mysql数据库的binlog,采用异步读取的方式将解析得到的数据写入hbase数据库中。调用hive工具每隔预设时间对hbase数据库中的数据按照预设规则对不同业务对象的数据进行分类统计分析,并将统计分析结果进行储存。其中,由于hbase数据库查询数据较慢,elasticsearch中也可为hbase数据库中的统计分析结果建立索引。在得到统计分析结果时,数据库系统可将统计分析结果发送至elasticsearch中并存储至相应的索引中,通过elasticsearch可快速的查询到所需的统计分析结果。
通过hbase数据库的设立,对不同合作商的数据进行统计分析,可为elasticsearch提供数据支撑,为后期的风控分析提供更全面的数据准备。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。