CN110362622B - 基于实时数仓的实时流处理系统、方法、设备及存储介质 - Google Patents
基于实时数仓的实时流处理系统、方法、设备及存储介质 Download PDFInfo
- Publication number
- CN110362622B CN110362622B CN201910660197.4A CN201910660197A CN110362622B CN 110362622 B CN110362622 B CN 110362622B CN 201910660197 A CN201910660197 A CN 201910660197A CN 110362622 B CN110362622 B CN 110362622B
- Authority
- CN
- China
- Prior art keywords
- real
- time
- database
- detection information
- processing unit
- 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/23—Updating
- G06F16/2372—Updates performed during offline database operations
-
- 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
- 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
- G06F16/2477—Temporal data 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了基于实时数仓的实时流处理系统、方法、设备及存储介质,该系统中,实时环境模块中的第一实时处理单元定时自检获得第一检测信息,实时数据库中的检测单元用于获得关于所述实时数据库的第二检测信息,离线环境模块中的第二实时处理单元定时自检获得第三检测信息,批处理单元定时自检获得第四检测信息;控制模块根据第一检测信息、第二检测信息、第三检测信息以及第四检测信息的状态,自第一实时处理单元、第二实时处理单元以及批处理单元中选一启动,获得输出数据并写入到被写入对象,并自实时数据库和离线数据库中择一作为被写入对象。本发明能够自动升降级提高实时数仓可用性,提高下游业务方友好度,保持总控程序高度可用。
Description
技术领域
本发明涉及数据流处理领域,具体地说,涉及基于实时数仓的实时流处理系统、方法、设备及存储介质。
背景技术
现有的数仓现有数据处理都是基于每晚从业务库中抽取的历史数据,所以能够提供给业务方的都是离线数据,各项业务开展也都是通过昨天的数据来做的。而这种离线数据能够覆盖的业务场景是有限的,比如新用户的行为只能在注册后第二天才能通过数仓反馈给业务方,所以在某些需要用户实时数据的业务场景就无法满足,限制了数仓的服务范围。所以就有了实时数仓的需求。
实时数仓将实时数据流(如MySQL的binlog)通过实时流处理框架 (flink等)写入分布式数据库中,然后处理得到结果数据后写入业务接口供业务方使用。
实时数仓当前主要是基于数据采集工具,如canal等将原始数据写入到Kafka这样的数据通道中,最后一般都是写入到类似于HBase这样存储系统中,对外提供分钟级别、甚至秒级别的查询方案。
而离线数据仓库主要基于sqoop、hive等技术来构建T+1的离线数据,通过定时任务每天拉取增量数据导入到hive表中,然后创建各个业务相关的主题维度数据,对外提供T+1的数据查询接口。
两者相比,可知:实时数仓具有准确度底,数据延迟、数据乱序造成数据准确度低,分钟级延迟,稳定性查,需要考虑数据回溯处理的特点。离线数据仓库具有准确度高,时延一般在一天,稳定性好,方便重算的特点。
存在的问题主要在整个实时数仓的链路中,各组件在出现不可用的情况下无法继续给业务方提供数据,修复的时间依出现问题的组件不同也不尽相同,但是都会造成数据的延迟,对业务方造成很大影响。
现有技术缺点在实时数仓整体链路的脆弱性上,若其中一个出现了问题将不可避免地造成业务数据的延迟,影响业务方使用。
因此,本发明提供了一种基于实时数仓的实时流处理系统、方法、设备及存储介质。
发明内容
针对现有技术中的问题,本发明的目的在于提供基于实时数仓的实时流处理系统、方法、设备及存储介质,能够提高了整体链路的可用性,在实时流、实时框架或分布式数据库不可用时,通过逐步降级保证在较多场景下的推送给业务方数据的低延迟或在一定的延迟下数据依然可用,能够自动升降级提高实时数仓可用性,降低人工运维成本,提高下游业务方友好度,保持总控程序高度可用。
本发明的实施例提供一种基于实时数仓的实时流处理系统,包括:实时环境模块、实时数据库、离线环境模块以及控制模块。
所述实时环境模块包括:第一实时处理单元,用于接收来自业务数据库的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库,所述第一实时处理单元定时自检获得关于所述第一实时处理单元的工作状态是否正常的第一检测信息,并向所述控制模块发送所述第一检测信息;
所述实时数据库接收并写入来自所述实时环境模块的输出数据,推送到下游系统,所述实时数据库包括:检测单元,所述检测单元用于定时向控制模块发送关于所述实时数据库的工作状态是否正常的第二检测信息,并向所述控制模块发送所述第二检测信息;
所述离线环境模块包括:第二实时处理单元、批处理单元以及离线数据库;所述第二实时处理单元用于接收来自业务数据库的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库或者写入离线数据库,所述第二实时处理单元定时自检获得关于工作状态是否正常的第三检测信息,并向所述控制模块发送所述第三检测信息;所述批处理单元用于根据第一预设时间间隔,接收来自业务数据库的该时间间隔内的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库或者写入离线数据库,所述批处理单元定时自检获得关于工作状态是否正常的第四检测信息,并向所述控制模块发送所述第四检测信息;所述离线数据库用于根据第二预设时间间隔,通过离线抽取所述业务数据库的增量数据,根据所述增量数据执行对应的预设业务逻辑任务后获得输出数据,推送到下游系统;
所述控制模块根据所述第一检测信息、第二检测信息、第三检测信息以及第四检测信息的状态,自所述第一实时处理单元、第二实时处理单元以及批处理单元中选一启动,获得输出数据并写入到被写入对象,并自所述实时数据库和离线数据库中择一作为被写入对象。
优选地,所述检测单元判断所述实时数据库在预设第三时间间隔内完成的任务百分比是否大于预设阈值,若是,则向所述控制模块发送关于所述实时数据库的工作状态正常的第二检测信息;若否,则向所述控制模块发送关于所述实时数据库的工作状态不正常的第二检测信息。
优选地,所述批处理单元每过第一预设时间间隔,接收一次内来自业务数据库的该时间间隔内的在第一预设时间间隔累计的实时数据流,并进行处理。
优选地,所述增量数据是在当前第二预设时间间隔中,所述离线数据库中完成更新的数据。
优选地,所述第一实时处理单元、第二实时处理单元以及批处理单元中处理相同的所述实时数据流执行的预设业务逻辑任务相同,获得的输出数据也相同。
优选地,所述实时数据库连接的下游系统与所述离线数据库连接的下游系统相同。
本发明的实施例还提供一种基于实时数仓的实时流处理方法,采用如上述的基于实时数仓的实时流处理系统,包括以下步骤:
S101、第一实时处理单元接收来自业务数据库的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库,启动实时数据库的推送,关闭离线数据库的推动,第二实时处理单元以及批处理单元未被启动;
S102、判断是否满足所述第二检测信息、第三检测信息、第四检测信息都正常,并且所述第一检测信息超时或不正常,若是,则执行步骤 S103;若否,则返回步骤S101;
S103、启动所述第二实时处理单元,所述批处理单元未被启动,将来自业务数据库的实时数据流引入所述第二实时处理单元,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;
S104、判断所述第一检测信息是否恢复正常,若是,则执行步骤 S105,若否,则返回步骤S106;
S105、停止所述第二实时处理单元,将来自业务数据库的实时数据流引入所述第一实时处理单元,返回步骤101;
S106、判断是否满足所述第二检测信息、第四检测信息都正常,并且所述第三检测信息超时或不正常,若是,则执行步骤S107;若否,则返回步骤S105;
S107、启动所述批处理单元,将来自业务数据库的实时数据流引入所述批处理单元,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;
S108、判断所述第三检测信息是否恢复正常,若是,则执行步骤 S109,若否,则执行步骤S110;
S109、停止所述批处理单元,将来自业务数据库的实时数据流引入所述第二实时处理单元,返回步骤S103;
S110、判断是否满足所述第四检测信息不正常或者第二检测信息不正常,若是,则执行步骤S111,若否,则返回步骤S112;
S111、所述批处理单元根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入离线数据库,启动离线数据库的推动,关闭实时数据库的推送,则返回步骤S110;
S112、判断是否满足所述第三检测信息、第二检测信息都恢复正常且保持超过第一预设时间阈值,若是,则返回步骤S103,若否,则执行步骤S113;以及
S113、判断是否满足所述第一检测信息、第二检测信息都恢复正常且保持超过第二预设时间阈值,若是,则返回步骤S101,若否,则返回步骤S111。
优选地,所述步骤S101还包括所述离线数据库通过离线抽取所述业务数据库的增量数据,根据所述增量数据执行对应的预设业务逻辑任务后获得输出数据,推送到下游系统。
本发明的实施例还提供一种基于实时数仓的实时流处理设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述基于实时数仓的实时流处理方法的步骤。
本发明的实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述基于实时数仓的实时流处理方法的步骤。
本发明的目的在于提供基于实时数仓的实时流处理系统、方法、设备及存储介质,能够提高了整体链路的可用性,在实时流、实时框架或分布式数据库不可用时,通过逐步降级保证在较多场景下的推送给业务方数据的低延迟或在一定的延迟下数据依然可用,能够自动升降级提高实时数仓可用性,降低人工运维成本,提高下游业务方友好度,保持总控程序高度可用。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明的基于实时数仓的实时流处理系统的模块示意图。
图2是本发明的基于实时数仓的实时流处理方法的流程图。
图3是本发明的基于实时数仓的实时流处理设备的结构示意图。以及
图4是本发明一实施例的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
实时数仓的问题主要体现在链路过长而且链路中的每一环节都无可替代。实时数仓链路过长的问题是由于获取实时数据流带来的副作用,因为业务数据库中的数据不能直接进入数仓的数据库中,直连的方式对业务数据库带来的影响较大,造成稳定性问题。所以通过业务数据库的实时日志通过实时流框架处理后写入数仓的数据库中,进行计算后输出下游业务方。所以面对的不可用场景主要为:实时日志流不可用;实时处理框架不可用;数仓关系型数据库不可用。本发明技术方案通过解决上述各场景问题提高实时数仓健壮性。
图1是本发明的基于实时数仓的实时流处理系统的模块示意图。如图 1所示,本发明的实施例提供一种基于实时数仓的实时流处理系统,包括:实时环境模块51、实时数据库52、离线环境模块53以及控制模块54。
实时环境模块51包括:第一实时处理单元511,用于接收来自业务数据库(图中未示出)的实时数据流,根据实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库52,第一实时处理单元511 定时自检获得关于第一实时处理单元511的工作状态是否正常的第一检测信息,并向控制模块54发送第一检测信息。
实时数据库52接收并写入来自实时环境模块51的输出数据,推送到下游系统,实时数据库52包括:检测单元521,检测单元521用于定时向控制模块54发送关于实时数据库52的工作状态是否正常的第二检测信息,并向控制模块54发送第二检测信息。
离线环境模块53包括:第二实时处理单元531、批处理单元532以及离线数据库533。第二实时处理单元531用于接收来自业务数据库的实时数据流,根据实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库52或者写入离线数据库533,第二实时处理单元531 定时自检获得关于工作状态是否正常的第三检测信息,并向控制模块54 发送第三检测信息。批处理单元532用于根据第一预设时间间隔,接收来自业务数据库的该时间间隔内的实时数据流,根据实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库52或者写入离线数据库533,批处理单元532定时自检获得关于工作状态是否正常的第四检测信息,并向控制模块54发送第四检测信息。离线数据库533用于根据第二预设时间间隔,通过离线抽取业务数据库的增量数据,根据增量数据执行对应的预设业务逻辑任务后获得输出数据,推送到下游系统(图中未示出)。
控制模块54根据第一检测信息、第二检测信息、第三检测信息以及第四检测信息的状态,自第一实时处理单元511、第二实时处理单元531 以及批处理单元532中选一启动,获得输出数据并写入到被写入对象,并自实时数据库52和离线数据库533中择一作为被写入对象。
本发明中的第一实时处理单元511和第二实时处理单元531所能实现的功能基本相同,但两者分别工作于不同的环境。批处理单元532与第二实时处理单元531的主要区别在于批处理单元532不是事实对数据流进行处理的,而是间隔一段时间来对这段时间内累计的全部数据流进行处理,以便适用于不同的应用场景。
本发明的基于实时数仓的实时流处理系统实现了以下技术效果:
(1)自动升降级提高实时数仓可用性,降低人工运维成本。
通过总控程序的控制实现自动的降级解决多种场景下的数据可用性问题,同时可以自动升级恢复成实时流处理链路。该方案可以解决实时数仓面对的大多数不可用情况,同时实现了自动的升降级来减少人工运维成本,可以使人们更专注于业务的开发。
(2)提高下游业务方友好度。
通过该方案可以调高推送下游的数据的及时性并保证数据的准确性,若实时完全不可用时,也可以在离线环境进行数据计算,虽然会增加一定的延时,但数据依然可用,不会造成下游业务方停摆。
(3)总控程序高可用。
该方案在实现实时数仓自动升降级的同时本身的控制系统也是高可用架构,可以充分避免各种单点架构带来的不可用问题,同时该控制程序独立于实时数仓,两者不会互相影响。即使总控程序出现问题,整个实时数仓系统依然对外可用。
在一个优选方案中,检测单元521判断实时数据库52在预设第三时间间隔内完成的任务百分比是否大于预设阈值,若是,则向控制模块54 发送关于实时数据库52的工作状态正常的第二检测信息。若否,则向控制模块54发送关于实时数据库52的工作状态不正常的第二检测信息。
在一个优选方案中,批处理单元532每过第一预设时间间隔,接收一次内来自业务数据库的该时间间隔内的在第一预设时间间隔累计的实时数据流,并进行处理。
在一个优选方案中,增量数据是在当前第二预设时间间隔中,离线数据库533中完成更新的数据。
在一个优选方案中,第一实时处理单元511、第二实时处理单元531 以及批处理单元532中处理相同的实时数据流执行的预设业务逻辑任务相同,获得的输出数据也相同。
在一个优选方案中,实时数据库52连接的下游系统与离线数据库533 连接的下游系统相同。
图2是本发明的基于实时数仓的实时流处理方法的流程图。如图2所示,本发明的实施例还提供一种基于实时数仓的实时流处理方法,采用如上述的基于实时数仓的实时流处理系统,包括以下步骤:
S101、第一实时处理单元接收来自业务数据库的实时数据流,根据实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库,启动实时数据库的推送,关闭离线数据库的推动,第二实时处理单元以及批处理单元未被启动;
S102、判断是否满足第二检测信息、第三检测信息、第四检测信息都正常,并且第一检测信息超时或不正常,若是,则执行步骤S103;若否,则返回步骤S101;
S103、启动第二实时处理单元,批处理单元未被启动,将来自业务数据库的实时数据流引入第二实时处理单元,根据实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;
S104、判断第一检测信息是否恢复正常,若是,则执行步骤S105,若否,则返回步骤S106;
S105、停止第二实时处理单元,将来自业务数据库的实时数据流引入第一实时处理单元,返回步骤101;
S106、判断是否满足第二检测信息、第四检测信息都正常,并且第三检测信息超时或不正常,若是,则执行步骤S107;若否,则返回步骤 S105;
S107、启动批处理单元,将来自业务数据库的实时数据流引入批处理单元,根据实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;
S108、判断第三检测信息是否恢复正常,若是,则执行步骤S109,若否,则执行步骤S110;
S109、停止批处理单元,将来自业务数据库的实时数据流引入第二实时处理单元,返回步骤S103;
S110、判断是否满足第四检测信息不正常或者第二检测信息不正常,若是,则执行步骤S111,若否,则返回步骤S112;
S111、批处理单元根据实时数据流执行对应的预设业务逻辑任务后获得输出数据写入离线数据库,启动离线数据库的推动,关闭实时数据库的推送,则返回步骤S110;
S112、判断是否满足第三检测信息、第二检测信息都恢复正常且保持超过第一预设时间阈值,若是,则返回步骤S103,若否,则执行步骤 S113;以及
S113、判断是否满足第一检测信息、第二检测信息都恢复正常且保持超过第二预设时间阈值,若是,则返回步骤S101,若否,则返回步骤 S111。
在一个优选方案中,步骤S101还包括离线数据库通过离线抽取业务数据库的增量数据,根据增量数据执行对应的预设业务逻辑任务后获得输出数据,推送到下游系统。
本发明的基于实时数仓的实时流处理方法能够提高了整体链路的可用性,在实时流、实时框架或分布式数据库不可用时,通过逐步降级保证在较多场景下的推送给业务方数据的低延迟或在一定的延迟下数据依然可用,能够自动升降级提高实时数仓可用性,降低人工运维成本,提高下游业务方友好度,保持总控程序高度可用。
本发明实施例还提供一种基于实时数仓的实时流处理设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的基于实时数仓的实时流处理方法的步骤。
如上所示,该实施例能够提高了整体链路的可用性,在实时流、实时框架或分布式数据库不可用时,通过逐步降级保证在较多场景下的推送给业务方数据的低延迟或在一定的延迟下数据依然可用,能够自动升降级提高实时数仓可用性,降低人工运维成本,提高下游业务方友好度,保持总控程序高度可用。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
图3是本发明的基于实时数仓的实时流处理设备的结构示意图。下面参照图3来描述根据本发明的这种实施方式的电子设备600。图3显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,电子设备600以通用计算设备的形式表现。电子设备 600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线 630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图2中所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备 600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的基于实时数仓的实时流处理方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
如上所示,该实施例能够提高了整体链路的可用性,在实时流、实时框架或分布式数据库不可用时,通过逐步降级保证在较多场景下的推送给业务方数据的低延迟或在一定的延迟下数据依然可用,能够自动升降级提高实时数仓可用性,降低人工运维成本,提高下游业务方友好度,保持总控程序高度可用。
图4是本发明的计算机可读存储介质的结构示意图。参考图4所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上,本发明的目的在于提供基于实时数仓的实时流处理系统、方法、设备及存储介质,能够提高了整体链路的可用性,在实时流、实时框架或分布式数据库不可用时,通过逐步降级保证在较多场景下的推送给业务方数据的低延迟或在一定的延迟下数据依然可用,能够自动升降级提高实时数仓可用性,降低人工运维成本,提高下游业务方友好度,保持总控程序高度可用。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种基于实时数仓的实时流处理系统,其特征在于,包括:实时环境模块、实时数据库、离线环境模块以及控制模块;
所述实时环境模块包括:第一实时处理单元,用于接收来自业务数据库的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库,所述第一实时处理单元定时自检获得关于所述第一实时处理单元的工作状态是否正常的第一检测信息,并向所述控制模块发送所述第一检测信息,启动实时数据库的推送,关闭离线数据库的推送,第二实时处理单元以及批处理单元未被启动;
所述实时数据库接收并写入来自所述实时环境模块的输出数据,推送到下游系统,所述实时数据库包括:检测单元,所述检测单元用于定时向控制模块发送关于所述实时数据库的工作状态是否正常的第二检测信息,并向所述控制模块发送所述第二检测信息,所述检测单元判断所述实时数据库在预设第三时间间隔内完成的任务百分比是否大于预设阈值,若是,则向所述控制模块发送关于所述实时数据库的工作状态正常的第二检测信息;若否,则向所述控制模块发送关于所述实时数据库的工作状态不正常的第二检测信息;
所述离线环境模块包括:第二实时处理单元、批处理单元以及离线数据库;所述第二实时处理单元用于接收来自业务数据库的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库或者写入离线数据库,所述第二实时处理单元定时自检获得关于工作状态是否正常的第三检测信息,并向所述控制模块发送所述第三检测信息;所述批处理单元用于根据第一预设时间间隔,接收来自业务数据库的该时间间隔内的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库或者写入离线数据库,所述批处理单元定时自检获得关于工作状态是否正常的第四检测信息,并向所述控制模块发送所述第四检测信息;所述离线数据库用于根据第二预设时间间隔,通过离线抽取所述业务数据库的增量数据,根据所述增量数据执行对应的预设业务逻辑任务后获得输出数据,推送到下游系统;
所述控制模块根据所述第一检测信息、第二检测信息、第三检测信息以及第四检测信息的状态,自所述第一实时处理单元、第二实时处理单元以及批处理单元中选一启动,获得输出数据并写入到被写入对象,并自所述实时数据库和离线数据库中择一作为被写入对象;当所述第二检测信息、第三检测信息、第四检测信息都正常,并且所述第一检测信息超时或不正常时,则启动所述第二实时处理单元,所述批处理单元未被启动,将来自业务数据库的实时数据流引入所述第二实时处理单元,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;当所述第二检测信息、第四检测信息都正常,并且所述第三检测信息超时或不正常,启动所述批处理单元,将来自业务数据库的实时数据流引入所述批处理单元,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;当所述第二检测信息不正常,则所述批处理单元根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入离线数据库,启动离线数据库的推送,关闭实时数据库的推送。
2.根据权利要求1所述的基于实时数仓的实时流处理系统,其特征在于:所述批处理单元每过第一预设时间间隔,接收一次内来自业务数据库的该时间间隔内的在第一预设时间间隔累计的实时数据流,并进行处理。
3.根据权利要求1所述的基于实时数仓的实时流处理系统,其特征在于:所述增量数据是在当前第二预设时间间隔中,所述离线数据库中完成更新的数据。
4.根据权利要求1所述的基于实时数仓的实时流处理系统,其特征在于:所述第一实时处理单元、第二实时处理单元以及批处理单元中处理相同的所述实时数据流执行的预设业务逻辑任务相同,获得的输出数据也相同。
5.根据权利要求1所述的基于实时数仓的实时流处理系统,其特征在于:所述实时数据库连接的下游系统与所述离线数据库连接的下游系统相同。
6.一种基于实时数仓的实时流处理方法,其特征在于,采用如权利要求1所述的基于实时数仓的实时流处理系统,包括以下步骤:
S101、第一实时处理单元接收来自业务数据库的实时数据流,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据,写入实时数据库,启动实时数据库的推送,关闭离线数据库的推送,第二实时处理单元以及批处理单元未被启动,所述离线数据库通过离线抽取所述业务数据库的增量数据,根据所述增量数据执行对应的预设业务逻辑任务后获得输出数据,推送到下游系统;
S102、判断是否满足所述第二检测信息、第三检测信息、第四检测信息都正常,并且所述第一检测信息超时或不正常,若是,则执行步骤S103;若否,则返回步骤S101;
S103、启动所述第二实时处理单元,所述批处理单元未被启动,将来自业务数据库的实时数据流引入所述第二实时处理单元,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;
S104、判断所述第一检测信息是否恢复正常,若是,则执行步骤S105,若否,则返回步骤S106;
S105、停止所述第二实时处理单元,将来自业务数据库的实时数据流引入所述第一实时处理单元,返回步骤101;
S106、判断是否满足所述第二检测信息、第四检测信息都正常,并且所述第三检测信息超时或不正常,若是,则执行步骤S107;若否,则返回步骤S105;
S107、启动所述批处理单元,将来自业务数据库的实时数据流引入所述批处理单元,根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入实时数据库;
S108、判断所述第三检测信息是否恢复正常,若是,则执行步骤S109,若否,则执行步骤S110;
S109、停止所述批处理单元,将来自业务数据库的实时数据流引入所述第二实时处理单元,返回步骤S103;
S110、判断是否满足所述第二检测信息不正常,若是,则执行步骤S111,若否,则返回步骤S112;
S111、所述批处理单元根据所述实时数据流执行对应的预设业务逻辑任务后获得输出数据写入离线数据库,启动离线数据库的推送,关闭实时数据库的推送
S112、判断是否满足所述第三检测信息、第二检测信息都恢复正常且保持超过第一预设时间阈值,若是,则返回步骤S103,若否,则执行步骤S113;以及
S113、判断是否满足所述第一检测信息、第二检测信息都恢复正常且保持超过第二预设时间阈值,若是,则返回步骤S101,若否,则返回步骤S111。
7.一种基于实时数仓的实时流处理设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求6所述基于实时数仓的实时流处理方法的步骤。
8.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求6所述基于实时数仓的实时流处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910660197.4A CN110362622B (zh) | 2019-07-22 | 2019-07-22 | 基于实时数仓的实时流处理系统、方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910660197.4A CN110362622B (zh) | 2019-07-22 | 2019-07-22 | 基于实时数仓的实时流处理系统、方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362622A CN110362622A (zh) | 2019-10-22 |
CN110362622B true CN110362622B (zh) | 2022-06-10 |
Family
ID=68221148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910660197.4A Active CN110362622B (zh) | 2019-07-22 | 2019-07-22 | 基于实时数仓的实时流处理系统、方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362622B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522832B (zh) * | 2020-05-09 | 2024-04-19 | 深圳市铭墨科技有限公司 | 一种大数据实时更新方法、系统、设备和存储介质 |
CN112150248B (zh) * | 2020-09-30 | 2021-08-03 | 欧冶云商股份有限公司 | 一种基于批流融合的挂货量统计方法、系统、装置 |
CN112650889A (zh) * | 2020-12-28 | 2021-04-13 | 中国兵器装备集团自动化研究所 | 一种企业安全环保及安防监控数据的数仓建设方法和系统 |
CN113190558A (zh) * | 2021-05-10 | 2021-07-30 | 北京京东振世信息技术有限公司 | 一种数据加工方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954883B1 (en) * | 2002-01-11 | 2005-10-11 | Advanced Micro Devices, Inc. | Method and apparatus for performing fault detection using data from a database |
CN104915329A (zh) * | 2015-06-26 | 2015-09-16 | 深圳市腾讯计算机系统有限公司 | 一种报表生成方法、装置和系统 |
CN108241722A (zh) * | 2016-12-23 | 2018-07-03 | 北京金山云网络技术有限公司 | 一种数据处理系统、方法及装置 |
CN108664356A (zh) * | 2018-05-03 | 2018-10-16 | 吉林亿联银行股份有限公司 | 一种数据库备份方法及装置、数据库系统 |
-
2019
- 2019-07-22 CN CN201910660197.4A patent/CN110362622B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954883B1 (en) * | 2002-01-11 | 2005-10-11 | Advanced Micro Devices, Inc. | Method and apparatus for performing fault detection using data from a database |
CN104915329A (zh) * | 2015-06-26 | 2015-09-16 | 深圳市腾讯计算机系统有限公司 | 一种报表生成方法、装置和系统 |
CN108241722A (zh) * | 2016-12-23 | 2018-07-03 | 北京金山云网络技术有限公司 | 一种数据处理系统、方法及装置 |
CN108664356A (zh) * | 2018-05-03 | 2018-10-16 | 吉林亿联银行股份有限公司 | 一种数据库备份方法及装置、数据库系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110362622A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362622B (zh) | 基于实时数仓的实时流处理系统、方法、设备及存储介质 | |
CN110516971B (zh) | 异常检测的方法、装置、介质和计算设备 | |
US9940598B2 (en) | Apparatus and method for controlling execution workflows | |
CN110968438B (zh) | 事件消息异步通知方法、装置、电子设备、存储介质 | |
CN110555150B (zh) | 一种数据监控方法、装置、设备和存储介质 | |
CN111240940B (zh) | 实时业务监控方法、装置、电子设备、存储介质 | |
CN113794909A (zh) | 视频流传输系统、方法、服务器、装置以及存储介质 | |
KR20190143229A (ko) | 네트워크 장애경보 관리장치 및 방법 | |
US11740827B2 (en) | Method, electronic device, and computer program product for recovering data | |
WO2023125777A1 (zh) | 录像数据补录方法、云存储服务器、系统及存储介质 | |
CN113590287B (zh) | 任务处理方法、装置、设备、存储介质及调度系统 | |
CN110213667B (zh) | 在线视频交互的网络保障方法、系统、设备及存储介质 | |
CN113986097A (zh) | 一种任务调度的方法、装置及电子设备 | |
CN109614233B (zh) | 基于货源队列的货源下架方法、系统、设备及存储介质 | |
CN113014675A (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN111177241A (zh) | 一种数据处理方法、装置、系统、电子设备及其存储介质 | |
CN116719663B (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN113162781B (zh) | 业务恢复方法、装置、系统及存储介质 | |
CN116126839A (zh) | 大数据处理中的异常数据处理方法及装置 | |
CN114048058A (zh) | 直播事件搜索方法、装置、电子设备以及存储介质 | |
CN115269560A (zh) | 一种双集群数据库的系统版本升级方法及装置 | |
CN113947490A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN116521721A (zh) | 数据处理方法、装置、介质和计算设备 | |
CN116560763A (zh) | 业务处理方法、装置、设备及存储介质 | |
US20170235770A1 (en) | Method for restoring containers in a database based on priorities of the containers |
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 |