技术领域
[0001] 本发明涉及软件技术领域,具体涉及一种数据分析系统。
相关背景技术
[0002] 随着大数据分析技术的快速发展,大数据分析系统也在不同应用场景如银行中得到了广泛应用,大数据分析系统能够对计算机设备获取/存储的大量数据进行数据分析与挖掘,以满足应用场景的业务需求。目前常规的大数据分析系统主要是根据不同应用场景如银行的业务需求定制开发的,在系统开发完成后,如果需要对系统进行功能升级,往往需要研发人员对整个系统进行重新研发设计,为此,研发人员必须与业务人员反复沟通,在确定好准确的业务需求以及软件系统的运行环境后才能进行功能升级的研发工作,不仅会消耗大量的人力物力,还会显著增加系统的升级周期。并且,在对升级后的系统进行系统安装时,必须先使未升级的旧系统停止运行,才能进行系统升级的安装操作,导致用户在系统升级期间无法正常使用系统。
具体实施方式
[0035] 下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
[0036] 在本发明的描述中,“模块”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。
[0037] 这里先解释本发明涉及到的一些术语。
[0038] 程序脚本指的是,采用计算机技术领域中的编程语言(Programming Language)编写且能够被计算机设备执行的可执行文件(Script)。例如,在本发明实施例中可以采用Python语言编写程序脚本,也可以描述成“Python脚本”。要说明的是,本发明实施例中采用的是计算机技术领域中常规的脚本编写方法来编写程序脚本,为了描述简洁,在此不再赘述。
[0039] 目前传统的大数据分析系统在需要进行系统升级时,往往需要研发人员对整个大数据分析系统进行重新研发设计,为此,研发人员必须与业务人员反复沟通,在确定好准确的业务需求以及软件系统的运行环境后才能进行功能升级的研发工作。并且,在对升级后的系统进行系统安装时,必须先使未升级的旧系统停止运行,才能进行系统升级的安装操作,导致用户在系统升级期间无法正常使用系统。而根据本发明实施例的数据分析系统能够支持用户灵活增加、删除以及加载数据分析模型,当需要对系统升级如使系统能够满足新的数据分析需求时,只需要根据新的数据分析需求生成一个新的数据分析模型,再将这个数据分析模型添加至数据模型库即可完成升级工作,显著降低了数据分析系统的升级难度以及周期。后续如果要调用这个新增加的数据分析模型,只要输入相应的运行指令就可以使用这个新增加的数据分析模型。此外,当增加新的数据分析模型或者删除原有的数据分析模型时(系统升级)并不会影响其他数据分析模型的正常运行,从而可以在不影响用户正常使用数据分析系统的情况下,完成数据分析系统的升级工作。
[0040] 在本发明的一个应用场景的例子中,某银行的后台服务器上安装了根据本发明的一个实施例的数据分析系统并且该数据分析系统可以通过后台服务器与银行内专门用于存储客户数据的数据服务器通信连接。在将数据分析系统部署到后台服务器上以后,首先获取银行的数据分析需求(包括但不限于:信贷申请客户的年龄统计、地域统计和信贷逾期统计),针对每个数据分析需求分别编写好相应的程序脚本,然后在数据分析系统中依次运行每个程序脚本,就可以生成每个数据分析需求各自对应的数据分析模型,将这些数据分析模型存储至数据分析系统的数据模型库中。当银行需要对信贷申请客户进行信贷逾期统计时,可以向数据分析系统输入“用于信贷逾期统计的数据分析模型”的运行指令,“用于信贷逾期统计的数据分析模型”在接收到运行指令后,就可以对数据服务器中存储的信贷申请客户的数据进行信贷逾期统计,在统计结束后可以通过数据分析系统的可视化界面显示统计结果。当需要对数据分析系统进行功能升级时,可以根据新的数据分析需求编写好程序脚本,然后在数据分析系统中运行这个程序脚本就可以生成能够满足这个新的数据分析需求的数据分析模型,而在此过程中并不会影响其他数据分析模型的正常工作。
[0041] 参阅附图1,图1是根据本发明的一个实施例的数据分析系统的主要结构框图。如图1所示,本发明实施例中的数据分析系统主要包括数据模型库11和模型管控模块12。下面分别对数据模型库11和模型管控模块12进行具体说明。
[0042] 1、数据模型库11
[0043] 在本实施例中数据模型库11可以被配置成存储一个或多个数据分析模型,每个数据分析模型分别可以被配置成响应于各自接收到的运行指令,根据各自预设的数据分析算法对待分析数据进行数据分析。
[0044] 预设的数据分析算法指的是利用在根据数据分析需求确定程序脚本时在程序脚本中编写的算法逻辑得到的算法。例如:如果数据分析需求是从资产收益的角度对银行客户进行分类,则可以在程序脚本中编写能够从资产收益的角度对银行客户的分类算法逻辑,比如基于聚类分析的算法逻辑。需要说明的是,本领域技术人员可以灵活设置在程序脚本中编写的算法逻辑,只要通过该算法逻辑能够满足数据分析需求即可。在不偏离本发明的原理的前提下,本领域技术人员可以对程序脚本中编写的算法逻辑作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
[0045] 运行指令指的是在数据分析模型接收到该指令后能够根据该指令指定的运行时间比如即时或定时开始运行,以对待分析数据进行数据分析的指令信息。在本实施例的一个实施方式中,运行指令可以是根据用户在数据分析系统的可视化界面上通过点击和/或拖拽的方式选择的信息生成的,所述选择的信息包括数据分析模型的运行方式。也就是说,在本实施方式中,数据分析模型的运行方式是由用户选定的。数据分析模型在接收到上述信息后即可根据上述信息中的运行方式运行。
[0046] 点击指的是,对可视化界面上显示的信息进行点击操作。
[0047] 拖拽指的是,对可视化界面上显示的信息进行拖拽操作,即通过拖拽操作将信息由一个位置移动到另一个位置。
[0048] 运行方式可以包括即时运行方式和定时运行方式,即时运行方式指的是在接收到的运行指令后立刻开始运行的方式,定时运行方式指的是在接收到的运行指令后按照预设周期运行的方式。例如,如果预设周期是24小时,那么数据分析模型将每隔24小时就运行一次(对待分析数据进行数据分析)。
[0049] 需要说明的是,本发明实施例中预先存储了多个预设的数据分析模型的运行方式并且这些运行方式的基本信息如名称等可以显示在可视化界面上,以便用户可以从可视化界面上选择要使用的运行方式。
[0050] 进一步,在本实施方式中为了避免在同一时刻控制多个数据分析模型同时采用即时运行方式,可能导致的数据分析系统无法同时运行多个数据分析模型的情况,可以根据每个数据分析模型的生成时间(创建时间)顺序生成模型运行队列,按照模型运行队列中每个数据分析模型的运行顺序,依次控制每个数据分析模型开始运行。也就是说,在本实施方式中可以控制这些数据分析模型按照各自生成(创建)时间的先后顺序依次执行。
[0051] 进一步,在实际应用中,对于已接收到运行指令且未开始运行的数据分析模型,可能存在需要使这些数据分析模型立刻开始运行的需求,对此,在本实施方式中可以向模型管控模块发送运行控制指令,模型管控模块可以响应于接收到的运行控制指令,控制已接收到运行指令且未开始运行的数据分析模型立刻开始运行。
[0052] 运行控制指令可以是用户在数据分析系统的可视化界面上通过点击和/或拖拽的方式选择的信息生成的,所述选择的信息包括已接收到运行指令且未开始运行的数据分析模型的标识信息。其中,可视化界面、点击和拖拽的含义分别与前述实施方式中的可视化界面、点击和拖拽的含义相同,在此不再赘述。数据分析模型的标识信息指的是能够表明数据分析模型具体是哪一个模型的信息,例如标识信息可以包括数据分析模型的名称。
[0053] 进一步,在本发明实施例的一个实施方式中,数据分析系统内的每个数据分析模型在得到数据分析结果后都可以通过执行下列操作中的一项或多项对数据分析结果作进一步处理,以便外部系统能够更方便地获取这些数据分析结果:
[0054] 操作一:根据数据分析结果,生成可视化的数据分析图表,以通过数据分析系统的可视化界面显示数据分析图表。需要说明的是,本领域技术人员可以灵活选择常规的图表格式例如柱形图来生成可视化的数据分析图表。在不偏离本发明的原理的前提下,本领域技术人员可以对数据分析图表的图表格式作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
[0055] 操作二:根据数据分析结果,生成包含数据分析结果的网页以及相应的URL地址,以便外部系统能够根据URL地址访问网页,获取所述数据分析结果。
[0056] 网页指的是互联网技术领域中的网络页面(web page),URL地址指的是互联网技术领域中的统一资源定位符(Uniform Resource Locator)。需要说明的是,在本实施方式中,可以采用互联网技术领域中常规的网页生成方法以及URL地址生成方法,来生成包含数据分析结果的网页以及这个网页的URL地址,为了描述简洁,在此不再赘述。
[0057] 2、模型管控模块12
[0058] 在本实施例中模型管控模块12可以被配置成响应于接收到的模型添加指令,通过运行模型添加指令中的程序脚本,生成新的数据分析模型并将所述新的数据分析模型存储至数据模型库11内。其中,模型添加指令中的程序脚本是根据能够满足所述新的数据分析模型的数据分析需求的程序代码确定的,并且程序代码能够被加载并运行以执行所述新的数据分析模型进行数据分析时采用的数据分析算法。进一步,在本实施例中模型管控模块12可以被进一步配置成响应于接收到的模型删除指令,删除数据模型库11中模型删除指令指定的数据分析模型。也就是说,模型管控模块12不仅可以增加新的数据分析模型,也可以删除数据模型库11中已有的数据分析模型,通过模型管控模块12实现了对数据分析模型的动态增加与删除。
[0059] 在本发明实施例的一个实施方式中,模型管控模块12可以包括模型分类单元和/或模型状态监测单元和/或模型筛查单元。例如,图2所示的模型管控模块同时包括模型分类单元121、模型状态监测单元122和模型筛查单元123。下面以图2所示的模型管控模块为例分别对模型分类单元121、模型状态监测单元122和模型筛查单元123进行说明。
[0060] (1)模型分类单元121
[0061] 在本实施方式中模型分类单元121可以被配置成响应于接收到的分类指令,根据分类指令中的类别信息为分类指令指定的数据分类模型设置类别标签,其中,类别信息是根据数据分析模型的数据分析需求确定的。具体而言,在本实施方式中可以先判断数据分析需求属于哪一类需求,然后将数据分析需求的类别作为上述类别信息。例如:如果某个数据分析模型对应的数据分析需求是信贷逾期统计,而信贷逾期统计的类别的风险分析,因此可以将风险分析设置成这个数据分析模型的类别标签,即这个数据分析模型属于风险分析模型。通过对数据分析模型进行分类,有利于用户快速查找想要使用的数据分析模型。
[0062] (2)模型状态监测单元122
[0063] 在本实施方式中模型状态监测单元122可以被配置成统计并显示在一段时间内数据模型库内数据分析模型的总数、被运行过的数据分析模型的总数、运行成功的数据分析模型的总数以及运行失败的数据分析模型的总数。其中,“一段时间”的具体时长是本领域技术人员可以灵活选择设置的。
[0064] 运行成功的数据分析模型指的是对待分析数据成功完成数据分析的模型,运行失败的数据分析模型指的是对待分析数据没有成功完成数据分析的模型。例如:如果数据分析模型的运行时长超过预设的运行时长,仍然没有输出待分析数据的数据分析结果,则判定数据分析模型运行失败。相应地,如果数据分析模型在预设的运行时长内输出了待分析数据的数据分析结果,则判定数据分析模型运行成功。进一步,在判定出数据分析模型运行失败后可以控制数据分析模型停止运行,如果后续这个数据分析模型再次接收到运行指令,那么这个数据分析模型仍然可以根据这个再次接收到的运行指令进行运行。
[0065] (3)模型筛选单元123
[0066] 在本实施方式中模型筛选单元123可以被配置成根据接收到的筛查条件,获取并显示满足筛查条件的数据分析模型,其中,筛查条件可以包括数据分析模型的类别和/或是否被运行过和/或运行时间和/或运行方式和/或运行成功/失败的结果。也就是说,用户可以根据“数据分析模型的类别、是否被运行过、运行时间、运行方式、运行成功/失败的结果”设定模型的筛查条件,使模型筛选单元123根据设定好的筛查条件显示相应的数据分析模型。例如:如果筛选条件是在2021年03月01日(运行时间)被运行过的数据分析模型,那么模型筛选单元123就可以筛选出在这一日所有被运行过的数据分析模型进行显示。
[0067] 下面对本发明实施例中数据分析系统的部署架构进行说明。
[0068] 在本实施例中可以将数据分析系统部署在单台服务器上,利用单台服务器完成数据分析系统的所有数据分析工作,也可以将数据分析系统部署在服务器集群上,使服务器集群中不同的服务器分别完成数据分析系统中不同的数据分析工作,以减轻每台服务器的数据处理压力。而对于将数据分析系统部署在服务器集群上的方案,在本实施例的一个实施方式中,可以采用以nginx服务器为前端服务器且以tomcat服务器为后端服务器的web服务架构作为数据分析系统的部署架构。
[0069] nginx服务器是服务器技术领域中的一种常规服务器,并且nginx服务器是一种高性能的HTTP(超文本传输协议,Hypertext Transfer Protocol)和反向代理服务器(位于用户与目标服务器之间的服务器),其中,HTTP和反向代理均是服务器技术领域中的常规技术,为了描述简洁,在此不再对HTTP和反向代理的具体含义和工作原理进行赘述。tomcat服务器也是服务器技术领域中的一种常规轻量级Web应用服务器。在本实施例中可以利用上述部署架构实现对服务器集群中每台服务器的负载均衡。具体而言,当用户通过终端设备(如用户使用的计算机设备)访问nginx服务器要获取某种数据时,如果用户的需求是获取静态资源数据,那么nginx服务器将直接从内存中调取相应的数据并将该数据发送至终端设备;如果用户的需求是获取动态资源数据,那么nginx服务器会将该需求发送至tomcat服务器,tomcat服务器从预设数据库中调取相应的数据,将该数据发送至nginx服务器(也可以根据需求先调取数据再进行数据分析处理,将处理得到的数据发送至nginx服务器),nginx服务器再将接收到的数据发送至终端设备。其中,静态资源数据和动态资源数据均是数据处理技术领域中常规的数据类型。静态资源数据可以是设计好的不随数据需求而改变的数据,例如静态资源数据可以是设计好的HTML(Hyper Text Markup Language)页面;动态资源数据可以是根据数据需求动态响应的数据。为了描述简洁,在此不再对静态资源数据和动态资源数据的具体含义进行赘述。
[0070] 进一步,在根据本发明的另一个数据分析系统的实施例中,数据分析系统不仅可以包括上述前述实施例中所描述的数据模型库11和模型管控模块12,还可以包括数据共享模块和/或安全模块,下面分别对数据共享模块和安全模块进行说明。
[0071] 1、数据共享模块
[0072] 在本实施例中数据共享模块可以包括第一数据共享单元和/或第二数据共享单元。
[0073] 第一数据共享单元可以被配置成分别生成每个数据分析模型各自对应的可被外部系统访问的API接口,以便外部系统能够分别通过每个API接口获取相应数据分析模型得到的数据分析结果。
[0074] API接口指的是计算机技术领域中的应用程序接口(Application Programming Interface),这个API接口可以提供外部系统访问应用程序(如本实施例中的数据分析模型)的例程(Routine)。需要说明的是,在本实施例中可以采用计算机技术领域中常规的API接口生成方法来分别生成每个数据分析模型各自对应的API接口,为了描述简洁,在此不再赘述。
[0075] 第二数据共享单元可以被配置成响应于接收到的数据共享指令,通过运行数据共享指令中的程序脚本,使数据共享指令指定的数据分析模型将自身得到的数据分析结果发送至数据共享指令指定的外部系统。其中,数据共享指令中的程序脚本与前述实施例中模型添加指令中的程序脚本的含义类似,在本实施例中程序脚本具体指的是根据能够使数据分析模型将自身得到的数据分析结果发送至外部系统的程序代码确定的程序脚本,其中,程序代码可以包括数据分析模型与外部系统的标识信息,数据分析模型的标识信息指的是能够识别出数据分析模型具体是哪一个模型的信息,外部信息的标识信息指的是能够识别出外部系统具体是哪一个系统的信息,例如标识信息可以是外部系统的名称。
[0076] 在本发明实施例中通过第一数据共享单元实现了数据分析模型的被动访问(由外部系统访问数据分析模型,以获取数据分析结果),通过第二数据共享单元实现了数据分析模型的主动访问(由数据分析模型向外部系统主动发送数据分析结果)。
[0077] 2、安全模块
[0078] 在本实施例中安全模块可以包括访问安全单元和/或数据安全单元。
[0079] 访问安全单元可以被配置成分别对每个数据分析模型的API接口进行加密处理,以提高数据分析模型被访问的安全性,只有在成功解密的情况下外部系统才可以通过API接口访问数据分析模型,控制数据分析模型运行和/或获取数据分析模型对待分析数据进行数据分析后得到的数据分析结果。需要说明的是,在本实施例中可以采用数据加密技术领域中常规的加密方法对API接口进行加密处理,例如可以采用数据加密算法(Data Encryption Algorithm,EDA)为API接口设置密钥,外部系统需要采用相同的密钥才能成功解密,获得通过API接口访问数据分析模型的权利。本领域技术人员可以灵活选择加密处理的方法,在不偏离本发明的原理的前提下,本领域技术人员可以对加密处理的方法作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
[0080] 数据安全单元可以被配置成对待分析数据进行数据脱敏处理,以提高待分析数据的数据安全,特别是对于包含敏感数据如用户隐私数据的待分析数据进行数据脱敏处理,可以极大提高数据的安全性。需要说明的是,在本实施例中可以采用数据处理技术领域中常规的数据脱敏方法对待分析数据进行脱敏处理,例如对待分析数据中的敏感数据进行变形处理,使其无法显示真实的数据信息。本领域技术人员可以灵活选择数据脱敏处理的方法,在不偏离本发明的原理的前提下,本领域技术人员可以对数据脱敏处理的方法作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
[0081] 进一步,在本实施例的一个实施方式中,安全模块可以被配置成监测数据分析系统的运行状态,如果监测到数据分析系统发生故障或者可能会影响数据分析系统正常运行的情况比如数据存储空间小于预设值,则可以输出预警信息,以提醒用户及时查看数据分析系统,消除已经发生的故障或可能影响系统正常运行的问题。
[0082] 此外,在本实施例中数据分析系统的部署架构同样可以采用前述实施例中数据分析系统的部署架构,在此不再对部署架构进行赘述。
[0083] 基于上述图1和图2所示的实施例,已清楚地描述了数据分析系统内每个功能结构的具体功能以及实施方式,下面结合附图3对数据分析系统的功能层分布进行说明。如图3所示,数据分析系统可以包括共享访问层、数据模型层、系统调取层、计算引擎层和数据引擎层。
[0084] 共享访问层主要是提供数据分析系统与外部系统通信交互等功能。具体地,共享访问层可以包括UI(User Interface)展示功能、API接口发布功能和预警通知功能等,UI展示功能、API接口发布功能和预警通知功能可以分别由图1和图2所示实施例中的数据分析模型、数据共享模块和安全模块实现。数据模型层主要是用于存储数据分析模块,其功能可以由图1和图2所示实施例中的数据模型库实现。系统调取层主要是用于数据调取如获取待分析数据、对服务器进行负载均衡控制等。计算引擎层主要是用于对数据进行数据分析,数据分析模型可以根据自身的数据分析算法调用计算引擎层中的计算引擎对数据进行计算处理,以完成数据分析工作。在本实施例中可以采用批量计算引擎或流式计算引擎对数据进行预处理。需要说明的是,批量计算和流式计算均是数据处理技术领域中的常规数据计算方法,为了描述简洁,在此不再赘述。数据引擎层主要用于存储和处理数据等,如存储待分析数据以及对待分析数据进行数据预处理(如将待分析数据的数据格式转换成相同的数据格式)。
[0085] 本领域技术人员能够理解的是,本发明实现上述一实施例的模块中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0086] 进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的系统的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
[0087] 本领域技术人员能够理解的是,可以对装置中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
[0088] 至此,已经结合附图所示的一个实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。