CN107943840B - 数据处理方法、***和计算机可读存储介质 - Google Patents
数据处理方法、***和计算机可读存储介质 Download PDFInfo
- Publication number
- CN107943840B CN107943840B CN201711039422.XA CN201711039422A CN107943840B CN 107943840 B CN107943840 B CN 107943840B CN 201711039422 A CN201711039422 A CN 201711039422A CN 107943840 B CN107943840 B CN 107943840B
- Authority
- CN
- China
- Prior art keywords
- data
- service
- processing system
- streaming
- service 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.)
- Active
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法,业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库;所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。本发明还公开了一种数据处理***和计算机可读存储介质。本发明能够保证业务处理***中数据处理的时效性、准确性和完整性。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理方法、***和计算机可读存储介质。
背景技术
随着科技技术的发展,人民生活进入数据时代,因为人民生活很多都会涉及到网络业务,银行业务等,各业务都会存储有每个用户的数据,从而可以对大量用户,或者每个用户的喜好、行为等进行分析,进而可以全面和正确了解***的运行情况,以及正确了解和推断用户喜好、行为等。
对一些特殊场景,比如交易数据,则存在差异化需求,包括需要实时的报表,获取当日客户的交易行为特征,以及对客户的交易行为的风险控制和告警等。
目前对于报表的获取一般通过事后离线的方式,多用于离线对账功能,获取全量的当日数据进行数据分析,得到需要的数据,例如报表数据,客户的交易特征等。这种方式事后离线数据处理的方式,时效较慢。不能够满足例如实时营销的即发生即触发营销规则的场景。例如对危险交易反欺诈,黑名单监控等场景离线的方式不能够满足即发生即监控告警。这种方案能够保证数据的完整性,但是时效性差。
另一种处理方式则为数据的同步处理,即在在线的业务处理***里面加入新的数据处理功能模块,发生交易的时候同步处理数据和应用数据。但是采用在交易***里面加入新的数据处理模块功能进行数据同步处理的方式存在缺陷:第一,***功能耦合,交易***功能混乱,不明确;第二,可扩展性差,数据的多纬度的需求非常多,需要监控的规则随着业务的复杂程度越来越多,不适合扩展;第三,影响交易***的性能,交易***需要在交易流程中外挂新的数据处理功能,营销性能和时效性。
此外在互联网行业还有一种处理方式,即异步化的流式数据处理方案,这种方式将交易***的数据流通过分布式消息队列kafka或者直接到流式数据处理***进行处理。因为流式数据处理***与交易***异步化,数据的完整性无法有效保证,交易***与流式数据处理***的通路如果有问题,整个流式数据处理***受到影响。
发明内容
本发明的主要目的在于提供一种数据处理方法、***和计算机可读存储介质,旨在保证业务处理***中数据处理的时效性、准确性和完整性。
为实现上述目的,本发明提供一种数据处理方法,
所述数据处理方法包括以下步骤:
业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库;
所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;
所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。
可选地,所述数据处理方法还包括:
所述流式数据处理***将处理后的数据保存至第二数据库中,以供用户通过数据应用服务进行数据查询。
可选地,所述第二数据库为分布式数据库。
可选地,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤之前包括:
所述流式数据处理***将所述第一业务数据和第二业务数据发送至消息队列中;
所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤包括:
所述流式数据处理***根据所述消息队列中的第一业务数据和第二业务数据进行流式处理。
可选地,所述第一业务数据包括数据库表名、操作类型、字段和所述字段对应的当前值;所述第二业务数据包括数据库表名、操作类型、字段、以及每个字段对应的更新前的值和当前值,所述第一业务数据和第二业务数据还分别包括相同的时间戳。
可选地,所述数据戳为毫秒级时间戳。
可选地,所述时间戳为所述业务处理***在产生第一业务数据时所添加。
可选地,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤包括:
根据所述第一业务数据和第二业务数据中主键字段、时间戳和操作类型分别生成对应的键值;
根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理。
可选地,所述根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理的步骤包括:
将所述第一业务数据和第二业务数据分别写入流式数据处理***中的缓存;
在缓存写入新数据时,若缓存中存在与新数据的键值相同的键值,则忽略写入的新数据;若缓存中不存在与新数据的键值相同的键值,则对写入的新数据进行流式处理。
可选地,所述根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理的步骤还包括:
在向缓存写入新数据时,根据新数据的键值判断新数据是否能写入缓存;
若新数据不能写入缓存,则判断缓存中已存在的数据与新数据是否是同一通道写入,若缓存中已存在的数据与新数据是同一通道写入,则对新数据进行处理,否则不处理;
若新数据能写入缓存,则对写入的新数据进行处理。
可选地,所述数据处理方法还包括:
离线数据库通过ETL工具从所述第一数据库中获取所有的业务数据,并保存;
离线数据库对保存的业务数据进行跑批计算,并与所述第二数据库中的结果表进行对账,以保证整个数据处理计算的正确性和完整性。
此外,为实现上述目的,本发明还提供一种数据处理***,所述流式数据处理***包括:
业务处理***、流式数据处理***、离线数据库及数据处理程序,所述数据处理程序被所述业务处理***和流式数据处理***执行时实现如上所述的方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如上所述的数据处理方法的步骤。
本发明实施例提出的一种数据处理方法、***和计算机可读存储介质,通过业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库;所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。通过上述方式,本发明在业务处理***进行业务处理过程中,将产生的第一业务数据保存在数据库中,另同步通过第一数据通道发送第一业务数据至数据处理***,数据处理***还从业务处理***存储数据的第一数据库中读取与第一业务数据对应的第二业务数据。第一条通路,在业务处理***中对数据变更的操作,注入同步的数据变更日志发送接口,发送数据变更到流式数据处理***。第二条通路,采集业务处理***的数据库,获取与第一业务数据对应的第二业务数据。同一份交易数据通过两条不同的通路进入流式数据处理***,同时处理两条通路的数据,双通路模式来降低数据的丢失问题,同时两条通路数据来源出发方式不同,第一条通路来源是业务处理***的数据变更逻辑阶段,第二条通路来源是数据库的事实变更结果。通过两条不同来源的通路,保证数据的完整性,另外在一条通路出问题的情况下,数据处理和应用功能依然有效。本发明中流式数据处理***与业务处理***解耦,业务处理***不需要承担各纬度的数据处理功能,在不更改业务处理***的情况下,能够便利的增加新的数据处理和数据应用的功能,通过流式数据处理方案,时效性好,相对在线的业务处理***里面加入新的数据处理功能模块的方式吞吐量高性能好。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明数据处理方法第一实施例的流程示意图;
图3为本发明数据处理方法第二实施例的流程示意图;
图4为本发明数据处理方法第三实施例的流程示意图;
图5为本发明实施例中所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的细化流程示意图;
图6为本发明实施例中对业务数据进行去重的流程示意图;
图7为本发明数据处理方法第四实施例的流程示意图;
图8为本发明数据处理方法的整体流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于现有技术对一些特殊场景,比如交易数据,则存在差异化需求,包括需要实时的报表,获取当日客户的交易行为特征,以及对客户的交易行为的风险控制和告警等。但目前现有技术中事后离线处理方式存在缺陷:采用离线的方式能够保证数据的完整性,但是时效性差;
另一种处理方式则为数据的同步处理,即在在线的业务处理***里面加入新的数据处理功能模块,发生交易的时候同步处理数据和应用数据。但是采用在交易***里面加入新的数据处理模块功能进行数据同步处理的方式存在缺陷:第一,***功能耦合,交易***功能混乱,不明确;第二,可扩展性差,数据的多纬度的需求非常多,需要监控的规则随着业务的复杂程度越来越多,不适合扩展;第三,影响交易***的性能,交易***需要在交易流程中外挂新的数据处理功能,营销性能和时效性;
还有一种方式通过将交易***的数据流通过分布式消息队列kafka或者直接到流式数据处理***进行处理,这种方式因为流式数据处理***与交易***异步化,数据的完整性无法有效保证,交易***与流式数据处理***的通路如果有问题,整个流式数据处理***受到影响。
为了解决上述技术问题,本发明实施例提出的一种数据处理方法、***和计算机可读存储介质,通过业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库;所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。通过上述方式,本发明在业务处理***进行业务处理过程中,将产生的第一业务数据保存在数据库中,另同步通过第一数据通道发送第一业务数据至数据处理***,数据处理***还从业务处理***存储数据的第一数据库中读取与第一业务数据对应的第二业务数据。第一条通路,在业务处理***中对数据变更的操作,注入同步的数据变更日志发送接口,发送数据变更到流式数据处理***。第二条通路,采集业务处理***的数据库,获取与第一业务数据对应的第二业务数据。同一份交易数据通过两条不同的通路进入流式数据处理***,同时处理两条通路的数据,双通路模式来降低数据的丢失问题,同时两条通路数据来源出发方式不同,第一条通路来源是业务处理***的数据变更逻辑阶段,第二条通路来源是数据库的事实变更结果。通过两条不同来源的通路,保证数据的完整性,另外在一条通路出问题的情况下,数据处理和应用功能依然有效。本发明中流式数据处理***与业务处理***解耦,业务处理***不需要承担各纬度的数据处理功能,在不更改业务处理***的情况下,能够便利的增加新的数据处理和数据应用的功能,通过流式数据处理方案,时效性好,相对在线的业务处理***里面加入新的数据处理功能模块的方式吞吐量高性能好。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例业务处理***和流式数据处理***中的终端可以是PC,也可以是智能手机、平板电脑、便携计算机等具有数据处理功能的终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI 接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及数据处理程序。
在图1所示的终端中,网络接口1004主要用于业务处理***和流式数据处理***、离线数据库之间的通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而业务处理***、流式数据处理***的终端和离线数据库中处理器1001可以用于调用存储器1005中存储的数据处理程序,并执行以下操作:
业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库;
所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;
所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
所述流式数据处理***将处理后的数据保存至第二数据库中,以供用户通过数据应用服务进行数据查询。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
所述流式数据处理***将所述第一业务数据和第二业务数据发送至消息队列中;
所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤包括:
所述流式数据处理***根据所述消息队列中的第一业务数据和第二业务数据进行流式处理。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
所述第一业务数据和第二业务数据分别包括相同的时间戳,所述时间戳为所述业务处理***在产生第一业务数据时所添加。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:所述数据戳为毫秒级时间戳。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
所述第一业务数据还包括数据库表名、操作类型、字段和所述字段对应的当前值;所述第二业务数据包括数据库表名、操作类型、字段、以及每个字段对应的更新前的值和当前值。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
根据所述第一业务数据和第二业务数据中主键字段、时间戳和操作类型分别生成对应的键值;
根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
将所述第一业务数据和第二业务数据分别写入流式数据处理***中的缓存;
在缓存写入新数据时,若缓存中存在与新数据的键值相同的键值,则忽略写入的新数据;若缓存中不存在与新数据的键值相同的键值,则对写入的新数据进行流式处理。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
在向缓存写入新数据时,判断新数据是否能写入缓存;
若新数据不能写入缓存,则判断缓存中已存在的数据与新数据是否是同一通道写入,若缓存中已存在的数据与新数据是同一通道写入,则对新数据进行处理,否则不处理;
若新数据能写入缓存,则对写入的新数据进行处理。
进一步地,处理器1001可以调用存储器1005中存储的数据处理程序,还执行以下操作:
离线数据库通过ETL工具从所述第一数据库中获取所有的业务数据,并保存;
离线数据库对保存的业务数据进行跑批计算,并与所述第二数据库中的结果表进行对账,以保证整个数据处理计算的正确性和完整性。
本发明数据处理***的具体实施例与下述数据处理方法各实施例基本相同,在此不作赘述。
参照图2,图2为本发明数据处理方法第一实施例的流程示意图,所述数据处理方法包括:
步骤S10,业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库;
本发明主要应用于金融行业,因为金融行业数据标准要求高,要求数据及时、准确和完整,同时为了不影响业务处理***的功能,本发明设置有与业务处理***解耦的流式数据处理***,业务处理***则不需要承担各维度的数据处理功能,在不更改交易***的情况下,能够便利的增加新的数据处理和数据应用的功能,采用单独的流式数据处理***吞吐量高、性能好,其中业务处理***可以是存款***,也可以是其他对数据要求高的业务处理***。业务处理***可以包括业务处理终端、用于存储处理后的业务数据的数据库,定义为第一数据库。
业务处理***在进行业务处理时,将产生的业务数据保存在第一数据库中,在业务处理***进行数据库操作时,同步通过第一通路发送一份数据至流式数据处理***,将同步发送的数据定义为第一业务数据。
步骤S20,所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;
在业务处理***保存第一业务数据至第一数据库中之后,所述流式数据处理***则使用第二通路通过第一数据库中读取第一业务数据对应的第二业务数据,具体的业务处理***可以通过第二通路从第一数据库中读取第一数据库的日志数据,并解析读取到的数据后得到第二业务数据。
进一步地,在本发明应用在存款***中第一业务数据包括:数据库表名、操作类型、字段和所述字段对应的当前值;第二业务数据包括数据库表名、操作类型、字段、以及每个字段对应的更新前的值和当前值,所述第一业务数据和第二业务数据还分别包括相同的时间戳。其中操作类似可以包括***、更新和删除。
所述时间戳为所述业务处理***在产生第一业务数据时所添加。所述数据戳为毫秒级时间戳。因为通过双通路获得的数据是基于不信任数据的操作顺序与流式处理***的消息消费顺序一致的原则,所有获得的数据对应的数据库表,全部表都增加毫秒级的时间戳字段,可以标识为时间戳。因此该字段在业务处理***产生所有的交易的时候生成并每次更新该时间戳字段,每次更新存入第一数据库,另外发送到流式处理***的数据也包含该字段。所以两条通路的数据,都包含特定时间戳字段,并且相等。通过该时间戳字段,对两条通路的同样的数据,用该时间戳字段进行先后顺序的判别,无需考虑其他影响顺序的因素。
步骤S30,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。
流式数据处理***在获得第一业务数据和第二业务数据后,根据获得的第一业务数据和第二业务数据进行流式处理,具体地,因为第一业务数据和第二业务数据存着关系,两者包含的信息存在相同的字段,因此流式数据处理***可以对两种业务数据进行去重,从而不会重复处理,造成数据错误。其中流式处理就是指源源不断的数据流过***时,***能够不停地连续计算。
在本实施例中通过业务处理***将产生的第一业务数据通过第一通路发送至数据处理***,并将所述第一业务数据存在第一数据库;所述流式数据处理***从所述第一数据库读取所述第一业务数据对应的第二业务数据;所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理。通过上述方式,本发明在业务处理***进行业务处理过程中,将产生的第一业务数据保存在数据库中,另同步通过第一数据通道发送第一业务数据至数据处理***,数据处理***还从业务处理***存储数据的第一数据库中读取与第一业务数据对应的第二业务数据。第一条通路,在业务处理***中对数据变更的操作,注入同步的数据变更日志发送接口,发送数据变更到流式数据处理***。第二条通路,采集业务处理***的数据库,获取与第一业务数据对应的第二业务数据。同一份交易数据通过两条不同的通路进入流式数据处理***,同时处理两条通路的数据,双通路模式来降低数据的丢失问题,同时两条通路数据来源出发方式不同,第一条通路来源是业务处理***的数据变更逻辑阶段,第二条通路来源是数据库的事实变更结果。通过两条不同来源的通路,保证数据的完整性,另外在一条通路出问题的情况下,数据处理和应用功能依然有效。本发明中流式数据处理***与业务处理***解耦,业务处理***不需要承担各纬度的数据处理功能,在不更改业务处理***的情况下,能够便利的增加新的数据处理和数据应用的功能,通过流式数据处理方案,时效性好,相对在线的业务处理***里面加入新的数据处理功能模块的方式吞吐量高性能好。
进一步的,参照图3,图3为本发明数据处理方法第二实施例的流程示意图,基于上述图2所示的实施例,所述数据处理方法还包括:
步骤S40,所述流式数据处理***将处理后的数据保存至第二数据库中,以供用户通过数据应用服务进行数据查询。
在实际使用过程中,为了方便使用,本实施例中流式数据处理***还包括第二数据库,流式数据处理***在将接收到的业务数据处理完后,将处理完的结果保存至第二数据库中,从而方便其他应用程序进行查询等。具体地,用户可以通过查询软件进行操作,向第二数据库发送查询请求,第二数据则可以根据接收到的查询请求反馈对应的结果数据。进一步地所述第二数据库为分布式数据库。
进一步的,参照图4,图4为本发明数据处理方法第一实施例的流程示意图,基于上述图2所示的实施例,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤之前包括:
步骤S50,所述流式数据处理***将所述第一业务数据和第二业务数据发送至消息队列中;
此时,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤则包括:
步骤S31,所述流式数据处理***根据所述消息队列中的第一业务数据和第二业务数据进行流式处理。
本实施例中为了更好的实现流式数据处理***与业务处理***进行解耦,本实施例在流式数据处理***中还设置有消息队列,具体地,设置有Kafka 消息队列,Kafka消息队列是一种分布式消息队列,业务处理***将第一业务数据发送给流式数据处理***时,流式数据处理***将第一业务数据存储至 Kafka消息队列中,同时流式数据处理***将通过第二通道读取到的第二业务数据也放到Kafka消息队列中,然后将从Kafka消息队列中传输之流式数据处理***中在线流处理程序进行处理。
本实施例中在流式数据处理***中设置有消息队列,通过分布式的流式数据处理方案,时效性好,吞吐量高性能好。
进一步的,参照图5,图5为本发明实施例中所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的细化流程示意图,基于上述图2所示的实施例,步骤S30可以包括:
步骤S32,根据所述第一业务数据和第二业务数据中主键字段、时间戳和操作类型分别生成对应的键值;
步骤S33,根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理。
对金融行业而言,数据标准要求高,不允许丢失一条数据,不允许重复处理数据。因为本发明中通过两条通道获得数据,并且本发明中流式数据处理***与业务处理***解耦,因此流式数据处理***与业务处理***的数据处理为异步处理,这导致数据的完整性无法有效保证,业务处理***与流式数据处理***的通路如果有问题,整个数据处理***受到影响。本实施例中为了有效保证数据的完整性,流式数据处理***在接收到第一业务数据和第二业务数据后,根据根据所述第一业务数据和第二业务数据中主键字段、时间戳和操作类型分别生成对应的键值,比如将主键+时间戳+操作类型作为对应的键值,然后利用生成的键值对第一业务数据和第二业务数据进行去重,然后对去重后的数据进行流式处理。具体地,去重和对去重后的数据进行流式处理的过程可以包括两种方式:
作为一种实施例,所述根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理的步骤包括:
将所述第一业务数据和第二业务数据分别写入流式数据处理***中的缓存;
在缓存写入新数据时,若缓存中存在与新数据的键值相同的键值,则忽略写入的新数据;若缓存中不存在与新数据的键值相同的键值,则对写入的新数据进行流式处理。
作为一种实施例,本实施例中在进行流式处理过程中,将第一业务数据和第二业务数据写入到缓存中,在缓存写入新数据时,利用的键值对的检查及更新操作,即在缓存写入第一业务数据或第二业务数据时,根据生成的键值进行判断,如果在缓存中存在相同的键值,则反馈流式处理程序一键值已经存在的信息,否则反馈键值不存在的信息,流式数据处理***在接收到键值已经存在的信息则认为是重复数据,不进行处理,否则对接收到的第一业务数据或者第二业务数据进行处理。
作为另一种实施例,所述根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理的步骤还包括:
在向缓存写入新数据时,根据新数据的键值判断新数据是否能写入缓存;
若新数据不能写入缓存,则判断缓存中已存在的数据与新数据是否是同一通道写入,若缓存中已存在的数据与新数据是同一通道写入,则对新数据进行处理,否则不处理;
若新数据能写入缓存,则对写入的新数据进行处理。
作为另一种实施例,该实施例中,缓存对键值相同的数据只能写入一次,具体地,本实施例中根据新数据的键值进行判断,判断性数据是否可以写入缓存,或者说在将数据写入缓存中,能否写入成功,若新数据不能写入缓存,则判断缓存中已存在的数据与新数据是否是同一通道写入,若缓存中已存在的数据与新数据是同一通道写入,则对新数据进行处理,否则不处理;若新数据能写入缓存,则对写入的新数据进行处理。具体地,判断缓存中已存在的数据与新数据是同一通道写入的过程可以包括:在写入新数据时,对写入的新数据进行标记,然后缓存根据键值进行判断缓存中是否已经存在键值与新写入数据相同的数据,如果不存在键值相同的数据,则直接写入,然后对写入的数据进行处理,如果存在键值相同的数据,则写入失败,此时判定缓存中与新写入数据键值相同的数据所写入通道与新写入数据的通道是否为同一通道,若是,则处理改数据,否则丢弃,具体过程可如图6所示。
进一步的,参照图7,本发明数据处理方法第四实施例的流程示意图,基于上述图2所示的实施例,所述数据处理方法还包括:
步骤S60,离线数据库通过ETL工具从所述第一数据库中获取所有的业务数据,并保存;
步骤S70,离线数据库对保存的业务数据进行跑批计算,并与所述第二数据库中的结果表进行对账,以保证整个数据处理计算的正确性和完整性。
为了进一步保证数据的正确性和完整性,本实施例中采用离线对账的方式。对同一张表而言,离线消费的数据本质上是流式数据消费的最终状态。
流式数据的计算结果存入第二数据库中。那么通过离线的方式把相关的数据库表导入离线数据库,该离线数据库可以为流式数据处理***的hive数据仓库,具体地,可以通过ETL工具从所述第一数据库中获取所有的业务数据,并保存,其中ETL工具为抽取-转换-加载工具,用于将数据从数据源抽取数据经过数据清洗,最后按照预先定义好的数据仓库模型,将数据加载到数据仓库中去,与流式数据处理的第二数据库中的结果表进行对账。来保证整个数据处理计算的正确性和完整性,离线消费是流式数据处理的最终保证。
综上整个数据处理***的处理流程,则可如图8所示。
本实施例中利用离线跑批能够保证数据完整性,在离线阶段再次进行一次结果校验,保证流式数据处理的准确性和完整性。
此外,本发明实施例还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现上 述的数据处理方法的步骤。
本发明计算机可读存储介质的具体实施例与上述数据处理方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种数据处理方法,其特征在于,所述数据处理方法包括以下步骤:
业务处理***将产生的第一业务数据通过第一通路发送至流式数据处理***,并将所述第一业务数据存在第一数据库,其中,所述第一通路的来源是业务处理***的数据变更逻辑阶段;
所述流式数据处理***通过第二通路从所述第一数据库读取所述第一业务数据对应的第二业务数据,其中,所述第二通路的来源是数据库的事实变更结果;
所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理;
其中,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤包括:
根据所述第一业务数据和第二业务数据中主键字段、时间戳和操作类型分别生成对应的键值,其中,将主键+时间戳+操作类型作为对应的键值;
根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理。
2.如权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:
所述流式数据处理***将处理后的数据保存至第二数据库中,以供用户通过数据应用服务进行数据查询。
3.如权利要求2所述的数据处理方法,其特征在于,所述第二数据库为分布式数据库。
4.如权利要求1所述的数据处理方法,其特征在于,所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤之前包括:
所述流式数据处理***将所述第一业务数据和第二业务数据发送至消息队列中;
所述流式数据处理***根据所述第一业务数据和第二业务数据进行流式处理的步骤包括:
所述流式数据处理***根据所述消息队列中的第一业务数据和第二业务数据进行流式处理。
5.如权利要求1所述的数据处理方法,其特征在于,所述第一业务数据包括数据库表名、操作类型、字段和所述字段对应的当前值;所述第二业务数据包括数据库表名、操作类型、字段、以及每个字段对应的更新前的值和当前值,所述第一业务数据和第二业务数据还分别包括相同的时间戳。
6.如权利要求5所述的数据处理方法,其特征在于,所述数据戳为毫秒级时间戳。
7.如权利要求5所述的数据处理方法,其特征在于,所述时间戳为所述业务处理***在产生第一业务数据时所添加。
8.如权利要求1所述的数据处理方法,其特征在于,所述根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理的步骤包括:
将所述第一业务数据和第二业务数据分别写入流式数据处理***中的缓存;
在缓存写入新数据时,若缓存中存在与新数据的键值相同的键值,则忽略写入的新数据;若缓存中不存在与新数据的键值相同的键值,则对写入的新数据进行流式处理。
9.如权利要求8所述的数据处理方法,其特征在于,所述根据所述第一业务数据和第二业务数据的键值对所述第一业务数据和第二业务数据进行去重,并对去重后的数据进行流式处理的步骤还包括:
在向缓存写入新数据时,根据新数据的键值判断新数据是否能写入缓存;
若新数据不能写入缓存,则判断缓存中已存在的数据与新数据是否是同一通道写入,若缓存中已存在的数据与新数据是同一通道写入,则对新数据进行处理,否则不处理;
若新数据能写入缓存,则对写入的新数据进行处理。
10.如权利要求2所述的数据处理方法,其特征在于,所述数据处理方法还包括:
离线数据库通过ETL工具从所述第一数据库中获取所有的业务数据,并保存;
离线数据库对保存的业务数据进行跑批计算,并与所述第二数据库中的结果表进行对账,以保证整个数据处理计算的正确性和完整性。
11.一种流式数据处理***,其特征在于,所述流式数据处理***包括:
业务处理***、流式数据处理***、离线数据库及数据处理程序,所述数据处理程序被所述业务处理***和流式数据处理***执行时实现如权利要求1至10中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如权利要求1至10中任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711039422.XA CN107943840B (zh) | 2017-10-30 | 2017-10-30 | 数据处理方法、***和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711039422.XA CN107943840B (zh) | 2017-10-30 | 2017-10-30 | 数据处理方法、***和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943840A CN107943840A (zh) | 2018-04-20 |
CN107943840B true CN107943840B (zh) | 2022-01-11 |
Family
ID=61935875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711039422.XA Active CN107943840B (zh) | 2017-10-30 | 2017-10-30 | 数据处理方法、***和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943840B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254982B (zh) * | 2018-08-31 | 2020-09-29 | 杭州安恒信息技术股份有限公司 | 一种流数据处理方法、***、装置及计算机可读存储介质 |
CN109582660B (zh) * | 2018-12-06 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 数据血缘分析方法、装置、设备、***及可读存储介质 |
CN110019277A (zh) * | 2019-01-17 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据累积的方法、数据查询的方法、装置及设备 |
CN110706019A (zh) * | 2019-09-03 | 2020-01-17 | 苏宁云计算有限公司 | 有效价签推送方法、装置、计算机设备和存储介质 |
CN110765091B (zh) * | 2019-09-09 | 2022-07-22 | 未鲲(上海)科技服务有限公司 | 对账方法和*** |
CN111459986B (zh) * | 2020-04-07 | 2023-07-21 | 中国建设银行股份有限公司 | 数据计算***及方法 |
CN111949637B (zh) * | 2020-08-18 | 2024-06-28 | 上海七牛信息技术有限公司 | 日志数据处理方法、装置、***、电子设备及存储介质 |
CN112015766A (zh) * | 2020-08-24 | 2020-12-01 | 京东数字科技控股股份有限公司 | 一种基于流水的数据处理方法、装置及数据处理*** |
CN112350921A (zh) * | 2020-09-30 | 2021-02-09 | 北京大米科技有限公司 | 消息处理方法、终端及存储介质 |
CN112532450B (zh) * | 2020-11-30 | 2022-08-23 | 中科美络科技股份有限公司 | 一种数据流分发进程配置的动态更新方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572976A (zh) * | 2014-12-30 | 2015-04-29 | 广州唯品会信息科技有限公司 | 网站数据更新方法和*** |
CN106354722A (zh) * | 2015-07-15 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种流式计算***的消息处理方法和装置 |
CN106407233A (zh) * | 2015-08-03 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN106921515A (zh) * | 2016-06-29 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 业务操作数据处理方法、装置、电子设备、服务器及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10180861B2 (en) * | 2014-11-11 | 2019-01-15 | Fair Isaac Corporation | Stream schema resolution and stream tuple processing in a distributed stream-processing system |
-
2017
- 2017-10-30 CN CN201711039422.XA patent/CN107943840B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572976A (zh) * | 2014-12-30 | 2015-04-29 | 广州唯品会信息科技有限公司 | 网站数据更新方法和*** |
CN106354722A (zh) * | 2015-07-15 | 2017-01-25 | 阿里巴巴集团控股有限公司 | 一种流式计算***的消息处理方法和装置 |
CN106407233A (zh) * | 2015-08-03 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN106921515A (zh) * | 2016-06-29 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 业务操作数据处理方法、装置、电子设备、服务器及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107943840A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943840B (zh) | 数据处理方法、***和计算机可读存储介质 | |
US20180349254A1 (en) | Systems and methods for end-to-end testing of applications using dynamically simulated data | |
US20160241589A1 (en) | Method and apparatus for identifying malicious website | |
CN107133309B (zh) | 流程实例的存储、查询方法及装置、存储介质及电子设备 | |
US11122142B2 (en) | User behavior data processing method and device, and computer-readable storage medium | |
CN108401026B (zh) | 基于区块链的数据存储方法、***及计算机可读存储介质 | |
CN108259533B (zh) | 一种数据传输方法和装置 | |
CN113568626B (zh) | 动态打包、应用程序包开启方法、装置和电子设备 | |
CN113407662B (zh) | 敏感词识别方法、***及计算机可读存储介质 | |
US11616860B2 (en) | Information display method, terminal, and server | |
CN110019444B (zh) | 一种操作请求处理方法、装置、设备及*** | |
CN108777632B (zh) | 数据处理方法、客户端、业务平台和配置平台 | |
CN110674383A (zh) | 舆情查询方法、装置及设备 | |
EP3063626A1 (en) | Managing server membership | |
CN114218313A (zh) | 数据管理方法、装置、电子设备、存储介质及产品 | |
CN112764957A (zh) | 应用故障定界方法及装置 | |
CN112698879A (zh) | 加载源文件的方法及装置 | |
US9465876B2 (en) | Managing content available for content prediction | |
CN113468260A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN112232048A (zh) | 一种基于神经网络的表格处理方法以及相关装置 | |
CN112286609B (zh) | 用于管理智能终端的快捷设置项的方法和装置 | |
CN110704183B (zh) | 数据处理方法、***及计算机可读存储介质 | |
CN117149010A (zh) | 多媒体资源切换方法、装置、电子设备及存储介质 | |
CN115935395A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN112488586A (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 |