CN112527844A - 数据处理方法及装置、数据库架构 - Google Patents
数据处理方法及装置、数据库架构 Download PDFInfo
- Publication number
- CN112527844A CN112527844A CN202011531210.5A CN202011531210A CN112527844A CN 112527844 A CN112527844 A CN 112527844A CN 202011531210 A CN202011531210 A CN 202011531210A CN 112527844 A CN112527844 A CN 112527844A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- service data
- buffer pool
- service
- 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.)
- Pending
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法及装置、数据库架构。所述方法应用于数据库架构,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;所述方法包括:控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;控制所述消费者模块将所述业务数据传输至所述缓冲池模块;控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。本申请实施例解决了现有技术中,日志数据频繁写入数据库,给数据库带来了巨大的压力的问题。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法及装置、数据库架构。
背景技术
近年来,随着计算机水平的迅速发展和业务不断累积,各个业务系统收集到的日志数据的数据量都几乎呈爆炸式增长,例如企业级用户的数据防护日志。日志数据需要经过消息队列消费数据提交到数据库,随着业务量扩大系,系统并发量提高,日志数据需频繁写入数据库,给数据库带来了巨大的压力,容易导致数据库连接池经常占满或性能低下,造成程序崩溃,使得整个数据库系统达到性能瓶颈,无法满足业务发展的需求。
发明内容
本申请实施例提供一种数据处理方法及装置、数据库架构,以解决现有技术中,日志数据频繁写入数据库,给数据库带来了巨大的压力的问题。
一方面,本申请实施例提供了一种数据处理方法,应用于数据库架构,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;所述方法包括:
控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
控制所述消费者模块将所述业务数据传输至所述缓冲池模块;
控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
另一方面,本申请实施例还提供一种数据库架构,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;
所述消息队列用于接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
所述消费者模块用于将所述业务数据传输至所述缓冲池模块;
所述缓冲池模块用于缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。所述装置包括:
另一方面,本申请实施例还提供了一种数据处理装置,应用于数据库架构,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;
所述装置包括:
第一控制模块,用于控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
第二控制模块,用于控制所述消费者模块将所述业务数据传输至所述缓冲池模块;
第三控制模块,用于控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
又一方面,本申请实施例还提供一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据处理方法中的步骤。
再一方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法中的步骤。
在本申请实施例中,控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;控制所述消费者模块将所述业务数据传输至所述缓冲池模块;控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块,减少将业务数据写入数据库的次数,避免频繁请求与数据库建立连接,降低连接池占用率,提升数据库架构的性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据处理方法的步骤流程图;
图2为本申请实施例提供的第一示例的架构图;
图3为本申请实施例提供的第二示例的示意图;
图4为本申请实施例提供的第四示例的示意图;
图5为本申请实施例提供的第五示例的流程图;
图6为本申请实施例提供的数据处理装置的结构框图;
图7为本申请实施例提供的电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本申请的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
参见图1,本申请实施例提供一种数据处理方法,应用于数据库架构,作为第一示例,如图2所示,所述数据库架构200包括消息队列模块201、数据处理模块202以及数据存储模块203;其中,所述数据处理模块203包括消费者模块(消费者模块1至消费者模块n)以及缓冲池模块(缓冲池模块1至缓冲池模块n)。
所述方法包括:
步骤101,控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块。
其中,消息队列模块用于接收来自业务系统的业务数据,例如图2中的业务A、业务B、业务C的业务数据;以业务数据包括日志数据为例,日志数据是指日志文件的数据;在计算机领域中,日志文件是记录在操作系统或其他软件运行中发生的事件,或在通信软件的不同用户之间的消息的文件或文件集合,比如,业务系统会将本次业务操作的操作类型、操作内容、操作人、客户端IP地址、操作时间等信息组装成日志消息对象,将日志消息对象作为日志数据发送给消息队列模块;消息队列模块将所接收的业务数据发送至消费者模块。
消息队列模块是在消息(即业务数据)的传输过程中保存消息的容器。队列的主要目的是提供路由并保证消息的传递;如果发送消息时,接收者不可用,消息队列会保留消息,直到可以成功地传递消息。业务系统可以异步发送消息数据到消息队列模块中,业务系统无需等待消息队列模块的响应,直接返回给接口结果,能够增加业务稳定性与响应性能。
步骤102,控制所述消费者模块将所述业务数据传输至所述缓冲池模块。
消费者模块包括使用所述业务数据的线程,比如将日志数据存储至缓冲池模块的线程,每个消费者模块可以包括一个或多个线程;消费者模块每次接收到业务数据之后,将业务数据暂时存储至缓冲池模块。
步骤103,控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
缓冲池模块在检测到所存储的业务数据满足预设传输规则的情况下,将将所述业务数据传输至所述数据存储模块;其中,预设传输规则例如缓冲池模块所缓存的数据量数达到预设缓存阈值,这样,仅当所存储的业务数据量数达到预设缓存阈值的情况,缓冲池模块向数据存储模块传输业务数据,这样,减少将业务数据写入数据库(存储模块)的次数,避免频繁请求与数据库建立连接。
本申请实施例中,控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;控制所述消费者模块将所述业务数据传输至所述缓冲池模块;控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块,减少将业务数据写入数据库的次数,避免频繁请求与数据库建立连接,降低连接池占用率,提升数据库架构的性能。本申请实施例解决了现有技术中,日志数据频繁写入数据库,给数据库带来了巨大的压力的问题。
作为第二示例,数据存储模块与消息队列模块的数据传输过程如图3所示,其中,Producer表示业务数据的生成者;Consumer表示业务数据的消费者,即消费者模块;
Consumer中的Group表示消费者组,可以并行消费Topic中的分组(partion)的业务数据;
消息队列模块包括多个Broker,Broker表示缓存代理;
Topic用于处理业务数据的不同分组,一个Topic可以分为多个partion。
Producer生成的业务数据,经由Topic中的Leader或Follower传输至Consumer。
在一个可选实施例中,所述预设传输规则包括以下至少一项:
所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值;预设缓存条目数阈值例如500000条;在缓冲池模块所缓存的数据条目未达到预设缓存条目数阈值时,不向数据存储模块传输业务数据;
所述缓冲池模块所缓存的数据容量达到预设缓存容量阈值;数据容量例如10兆(MB);这样,在缓冲池模块所缓存的数据容量未达到预设缓存容量阈值时,不向数据存储模块传输业务数据;
以及
时间到达预设传输周期的传输时间,在每个传输周期的传输时间内,将业务数据传输至数据存储模块,而在传输周期的非传输时间内,只接收业务数据,而不向数据存储模块传输,以降低与数据存储模块连接的次数。
作为第三示例,以预设缓存条目数阈值为500000条为例,在标头content、operation_type字段上分别建立索引,每次接收到一次日志数据,便单条插入至数据存储模块,如以下语句1所示;
语句1:INSERT INTO`insert_table`(`id`,`content`,`operation_type`,`client_ip`,`create_time`)VALUES('0','userid_0','insert','127.0.0.1',now());
INSERT INTO`insert_table`(`id`,`content`,`operation_type`,`client_ip`,`create_time`)VALUES('1','userid_1','update','127.0.0.1',now());
而通过本申请实施例中的方式,在所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值时,向数据存储模块插入一次业务数据,如以下语句2所示:
语句2:INSERT INTO`insert_table`(`id`,`content`,`operation_type`,`client_ip`,`create_time`)VALUES('0','userid_0','insert','127.0.0.1',now()),('1','userid_1','update','127.0.0.1',now());
两种方式性能对比如以下表1所示:
表1:
由此可见,语句2中采用批量插入数据存储模块的方式,比语句1插入数据存储模块的方式耗时明显降低,可有效提高数据存储效率。
在一个可选实施例中,所述数据存储模块包括连接器、分析器、优化器、执行器以及存储引擎;
作为第四示例,结合图4,以缓冲池模块作为图3中的客户端为例,所述将所述业务数据传输至所述数据存储模块,包括:
与所述连接器建立连接,将所述业务数据传输至所述连接器;连接器主要用于对缓冲池模块进行权限认证,管理客户端与数据库存储模块的连接;
控制所述连接器将所述业务数据传输至所述分析器;
控制所述分析器对所述业务数据进行语法分析,并将分析后的所述业务数据传输至所述优化器;分析器对所述业务数据进行语法分析,业务数据通常为SQL语句,分析器分析SQL语句,例如进行语句合法性检查、含义检查等;此外,分析器还查询缓存,以判断缓存中是否存在相同语句的执行计划。
控制所述分析器对所述业务数据进行语法分析,并将分析后的所述业务数据传输至所述优化器;控制所述优化器按照预设优化规则,生成存储所述业务数据的执行计划;
控制所述执行器根据所述执行计划,将所述业务数据存储至所述存储引擎,执行器携带执行计划操作存储引擎存储数据。
在一个可选实施例中,所述控制所述消息队列模块接收业务系统的业务数据,包括:
控制所述消息队列模块接收业务系统的业务数据,并将所述业务数据的格式转换成目标数据格式,目标数据格式例如json数据。
在一个可选实施例中,所述将所述业务数据传输至所述数据存储模块,包括:
将失败业务数据写入至预设文件;所述失败业务数据为存储至所述数据存储模块失败的所述业务数据;例如对与写入失败的失败业务数据,写入预设文件,将该文件命名为当天的对应日期,这样,每天会生成一个预设文件,等待数据失败操作进行处理;
在预设写入周期的写入时间内,将所述预设文件中的目标数据条所述失败业务数据,传输至所述数据存储模块,在每个写入时间内,统一将写入失败的失败业务数据一并写入至所述数据存储模块,以减少失败业务数据的写入次数。
作为第五示例,参见图5,以业务数据为日志消息(日志消息即日志数据)为例,各个业务系统在处理业务中会产生业务日志并将产生的日志消息异步发送至消息队列模块,消息队列模块用来暂时存储这些日志数据,等待消费者模块消费。消费者模块会从队列中提取日志数据,程序会将这些数据组装成一个批次,去请求数据存储模块进行持久化操作,在保存至数据存储模块失败时会进行失败操作,以保证所有日志数据都能正确存储。
具体地,本申请实施例中提供的数据处理方法的应用过程,包括以下步骤:
步骤501,业务系统生成日志消息。
业务系统会将本次业务操作的操作类型、操作内容、操作人、客户端IP地址、操作时间等信息组装成日志消息对象。
步骤502,数据格式转化。
将日志消息对象转化为消息队列模块所接收的数据格式,数据格式例如json。
步骤503,异步发送至消息队列模块。
将json异步发送到消息队列模块中,应用程序不需要等待响应,一定程度上提高接口响应效率。消息队列如图3所示,是一种实现高性能、高可用、可伸缩和最终一致性架构。
步骤504,消费者模块从消息队列模块中获取数据。
步骤505,消费者模块多线程程序消费日志队列。
多个线程程序从消息队列模块中获取日志数据,多线程可以极大提高程序处理效率。
步骤506,拼装数据(一定数目或时间段范围数据)。
对日志数据进行拼装,等待数据达到一定数量(例如为10000条)或一定的数据获取时间(例如为2分钟)对数据进行一次提交到数据存储模块的操作,避免因数据库连接不够而造成的系统性能问题甚至无法使用,通过合并SQL语句,同时也能减少SQL语句解析的次数,提高入库效率。
此外,对于写入失败的数据,写入预设文件,文件名为当天的对应日期,每天会生成一个,等待数据失败操作进行处理。
步骤507,将日志数据存储至数据库;
步骤508,判断是否存储成功:
若是,结束流程;若否,执行步骤509,写入文档;即写入预设文件。
步骤510,定时读取文档;
步骤511,组装SQL,并返回步骤507。
定时读取文档例如每天零时执行定时任务,夜间通常系统业务量减少,可以避免影响到其他业务的正常使用。
读取文档后在对应目录下读取写入失败数据文件,然后对读取到的文件进行组装,同样采取批量入库方式(例如10000条数据提交一次数据库)。最后将已经成功读取并写入到数据库中的文件数据删除,例如删除七天之前的数据,保留最近七天的文件。
对于大数据量场景,以GP数据库来说,频繁单条插入会造成维护索引困难,甚至使索引失效,若在此时查询,有可能造成死锁,影响系统的正常使用,而上述示例中,批量插入使得索引维护次数大大减少,较单条插入更加稳定,解决数据库连接池频繁占满问题。
本申请实施例中,控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;控制所述消费者模块将所述业务数据传输至所述缓冲池模块;控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块,减少将业务数据写入数据库的次数,避免频繁请求与数据库建立连接,降低连接池占用率,提升数据库架构的性能。本申请实施例解决了现有技术中,日志数据频繁写入数据库,给数据库带来了巨大的压力的问题。
参见图2,本申请实施例还提供一种数据库架构200,所述数据库架构200包括消息队列模块201、数据处理模块202以及数据存储模块203;其中,所述数据处理模块202包括消费者模块以及缓冲池模块;
所述消息队列用于接收业务系统的业务数据,并将业务数据传输至所述消费者模块;其中,消息队列模块201用于接收来自业务系统的业务数据;以业务数据包括日志数据为例,日志数据是指日志文件的数据;在计算机领域中,日志文件是记录在操作系统或其他软件运行中发生的事件,或在通信软件的不同用户之间的消息的文件或文件集合,比如,业务系统会将本次业务操作的操作类型、操作内容、操作人、客户端IP地址、操作时间等信息组装成日志消息对象,将日志消息对象作为日志数据发送给消息队列模块201;消息队列模块201将所接收的业务数据发送至消费者模块。
消息队列模块201是在消息(即业务数据)的传输过程中保存消息的容器。队列的主要目的是提供路由并保证消息的传递;如果发送消息时,接收者不可用,消息队列会保留消息,直到可以成功地传递消息。业务系统可以异步发送消息数据到消息队列模块201中,业务系统无需等待消息队列模块201的响应,直接返回给接口结果,能够增加业务稳定性与响应性能。
所述消费者模块用于将所述业务数据传输至所述缓冲池模块;消费者模块包括使用所述业务数据的线程,比如将日志数据存储至缓冲池模块的线程,每个消费者模块可以包括一个或多个线程;消费者模块每次接收到业务数据之后,将业务数据暂时存储至缓冲池模块。
所述缓冲池模块用于缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块203。缓冲池模块在检测到所存储的业务数据满足预设传输规则的情况下,将将所述业务数据传输至所述数据存储模块203;其中,预设传输规则例如缓冲池模块所缓存的数据量数达到预设缓存阈值,这样,仅当所存储的业务数据量数达到预设缓存阈值的情况,缓冲池模块向数据存储模块203传输业务数据,这样,减少将业务数据写入数据库(存储模块)的次数,避免频繁请求与数据库建立连接。
在一个可选实施例中,所述预设传输规则包括以下至少一项:
所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值;
所述缓冲池模块所缓存的数据容量达到预设缓存容量阈值;
所述业务数据在所述缓冲池模块的缓存时长达到预设缓存时长阈值;
以及
时间到达预设传输周期的传输时间。
本申请实施例中,消息队列模块201接收业务系统的业务数据,并将业务数据传输至所述消费者模块;消费者模块将所述业务数据传输至所述缓冲池模块;缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块203,减少将业务数据写入数据库的次数,避免频繁请求与数据库建立连接,降低连接池占用率,提升数据库架构200的性能。
以上由服务器侧介绍了本申请实施例提供的数据处理方法以及数据库家否,下面将结合附图介绍本申请实施例提供的数据处理装置。
参见图6,本申请实施例提供了一种数据处理装置,应用于数据库架构,作为第一示例,如图2所示,所述数据库架构200包括消息队列模块201、数据处理模块202以及数据存储模块203;其中,所述数据处理模块203包括消费者模块(消费者模块1至消费者模块n)以及缓冲池模块(缓冲池模块1至缓冲池模块n)。
所述装置包括:
第一控制模块601,用于控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块。
其中,消息队列模块用于接收来自业务系统的业务数据;以业务数据包括日志数据为例,日志数据是指日志文件的数据;在计算机领域中,日志文件是记录在操作系统或其他软件运行中发生的事件,或在通信软件的不同用户之间的消息的文件或文件集合,比如,业务系统会将本次业务操作的操作类型、操作内容、操作人、客户端IP地址、操作时间等信息组装成日志消息对象,将日志消息对象作为日志数据发送给消息队列模块;消息队列模块将所接收的业务数据发送至消费者模块。
消息队列模块是在消息(即业务数据)的传输过程中保存消息的容器。队列的主要目的是提供路由并保证消息的传递;如果发送消息时,接收者不可用,消息队列会保留消息,直到可以成功地传递消息。业务系统可以异步发送消息数据到消息队列模块中,业务系统无需等待消息队列模块的响应,直接返回给接口结果,能够增加业务稳定性与响应性能。
第二控制模块602,用于控制所述消费者模块将所述业务数据传输至所述缓冲池模块。
消费者模块包括使用所述业务数据的线程,比如将日志数据存储至缓冲池模块的线程,每个消费者模块可以包括一个或多个线程;消费者模块每次接收到业务数据之后,将业务数据暂时存储至缓冲池模块。
第三控制模块603,用于控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
缓冲池模块在检测到所存储的业务数据满足预设传输规则的情况下,将将所述业务数据传输至所述数据存储模块;其中,预设传输规则例如缓冲池模块所缓存的数据量数达到预设缓存阈值,这样,仅当所存储的业务数据量数达到预设缓存阈值的情况,缓冲池模块向数据存储模块传输业务数据,这样,减少将业务数据写入数据库(存储模块)的次数,避免频繁请求与数据库建立连接。
在一个可选实施例中,所述预设传输规则包括以下至少一项:
所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值;
所述缓冲池模块所缓存的数据容量达到预设缓存容量阈值;
所述业务数据在所述缓冲池模块的缓存时长达到预设缓存时长阈值;
以及
时间到达预设传输周期的传输时间。
在一个可选实施例中,所述数据存储模块包括连接器、优化器、分析器、执行器以及存储引擎;
所述第三控制模块603用于:
控制所述缓冲池模块与所述连接器建立连接,将所述业务数据传输至所述连接器;
控制所述连接器将所述业务数据传输至所述分析器;
控制所述分析器对所述业务数据进行语法分析,并将分析后的所述业务数据传输至所述优化器;控制所述优化器按照预设优化规则,生成存储所述业务数据的执行计划;
控制所述执行器根据所述执行计划,将所述业务数据存储至所述存储引擎。
在一个可选实施例中,所述第一控制模块601,用于:
控制所述消息队列模块接收业务系统的业务数据,并将所述业务数据的格式转换成目标数据格式。
在一个可选实施例中,所述第三控制模块603,用于:
将失败业务数据写入至预设文件;所述失败业务数据为存储至所述数据存储模块失败的所述业务数据;
在预设写入周期的写入时间内,将所述预设文件中的目标数据条所述失败业务数据,传输至所述数据存储模块。
本申请实施例提供的数据处理装置能够实现图1至图5的方法实施例中数据处理装置实现的各个过程,为避免重复,这里不再赘述。
本申请实施例中,第一控制模块601控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;第二控制模块602控制所述消费者模块将所述业务数据传输至所述缓冲池模块;第三控制模块603控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块,减少将业务数据写入数据库的次数,避免频繁请求与数据库建立连接,降低连接池占用率,提升数据库架构的性能。
另一方面,本申请实施例还提供了一种电子设备,包括存储器、处理器、总线以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据处理方法中的步骤。
举个例子如下,图7示出了一种电子设备的实体结构示意图。
如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行如下方法,所述方法应用于数据库架构,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;所述方法包括:
控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
控制所述消费者模块将所述业务数据传输至所述缓冲池模块;
控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再一方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据处理方法,例如执行如下方法,所述方法应用于数据库架构,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;所述方法包括:
控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
控制所述消费者模块将所述业务数据传输至所述缓冲池模块;
控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种数据处理方法,应用于数据库架构,其特征在于,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;
所述方法包括:
控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
控制所述消费者模块将所述业务数据传输至所述缓冲池模块;
控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
2.根据权利要求1所述的数据处理方法,其特征在于,所述预设传输规则包括以下至少一项:
所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值;
所述缓冲池模块所缓存的数据容量达到预设缓存容量阈值;
以及
时间到达预设传输周期的传输时间。
3.根据权利要求1所述的数据处理方法,其特征在于,所述数据存储模块包括连接器、优化器、分析器、执行器以及存储引擎;
所述将所述业务数据传输至所述数据存储模块,包括:
与所述连接器建立连接,将所述业务数据传输至所述连接器;
控制所述连接器将所述业务数据传输至所述分析器;
控制所述分析器对所述业务数据进行语法分析,并将分析后的所述业务数据传输至所述优化器;
控制所述优化器按照预设优化规则,生成存储所述业务数据的执行计划;
控制所述执行器根据所述执行计划,将所述业务数据存储至所述存储引擎。
4.根据权利要求1所述的数据处理方法,其特征在于,所述控制所述消息队列模块接收业务系统的业务数据,包括:
控制所述消息队列模块接收业务系统的业务数据,并将所述业务数据的格式转换成目标数据格式。
5.根据权利要求1所述的数据处理方法,其特征在于,所述将所述业务数据传输至所述数据存储模块,包括:
将失败业务数据写入至预设文件;所述失败业务数据为存储至所述数据存储模块失败的所述业务数据;
在预设写入周期的写入时间内,将所述预设文件中的目标数据条所述失败业务数据,传输至所述数据存储模块。
6.一种数据库架构,其特征在于,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;
所述消息队列用于接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
所述消费者模块用于将所述业务数据传输至所述缓冲池模块;
所述缓冲池模块用于缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
7.根据权利要求6所述的数据库架构,其特征在于,所述预设传输规则包括以下至少一项:
所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值;
所述缓冲池模块所缓存的数据容量达到预设缓存容量阈值;
所述业务数据在所述缓冲池模块的缓存时长达到预设缓存时长阈值;
以及
时间到达预设传输周期的传输时间。
8.一种数据处理装置,应用于数据库架构,其特征在于,所述数据库架构包括消息队列模块、数据处理模块以及数据存储模块;其中,所述数据处理模块包括消费者模块以及缓冲池模块;
所述装置包括:
第一控制模块,用于控制所述消息队列模块接收业务系统的业务数据,并将业务数据传输至所述消费者模块;
第二控制模块,用于控制所述消费者模块将所述业务数据传输至所述缓冲池模块;
第三控制模块,用于控制所述缓冲池模块缓存所述业务数据,并在所述缓冲池模块所缓存的数据满足预设传输规则的情况下,将所述业务数据传输至所述数据存储模块。
9.根据权利要求8所述的数据处理装置,其特征在于,所述预设传输规则包括以下至少一项:
所述缓冲池模块所缓存的数据条目数达到预设缓存条目数阈值;
所述缓冲池模块所缓存的数据容量达到预设缓存容量阈值;
所述业务数据在所述缓冲池模块的缓存时长达到预设缓存时长阈值;
以及
时间到达预设传输周期的传输时间。
10.根据权利要求8所述的数据处理装置,其特征在于,所述数据存储模块包括连接器、优化器、分析器、执行器以及存储引擎;
所述第三控制模块用于:
控制所述缓冲池模块与所述连接器建立连接,将所述业务数据传输至所述连接器;
控制所述连接器将所述业务数据传输至所述分析器;
控制所述分析器对所述业务数据进行语法分析,并将分析后的所述业务数据传输至所述优化器;
控制所述优化器按照预设优化规则,生成存储所述业务数据的执行计划;
控制所述执行器根据所述执行计划,将所述业务数据存储至所述存储引擎。
11.根据权利要求8所述的数据处理装置,其特征在于,所述第一控制模块,用于:
控制所述消息队列模块接收业务系统的业务数据,并将所述业务数据的格式转换成目标数据格式。
12.根据权利要求8所述的数据处理装置,其特征在于,所述第三控制模块,用于:
将失败业务数据写入至预设文件;所述失败业务数据为存储至所述数据存储模块失败的所述业务数据;
在预设写入周期的写入时间内,将所述预设文件中的目标数据条所述失败业务数据,传输至所述数据存储模块。
13.一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的数据处理方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531210.5A CN112527844A (zh) | 2020-12-22 | 2020-12-22 | 数据处理方法及装置、数据库架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531210.5A CN112527844A (zh) | 2020-12-22 | 2020-12-22 | 数据处理方法及装置、数据库架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112527844A true CN112527844A (zh) | 2021-03-19 |
Family
ID=75002364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531210.5A Pending CN112527844A (zh) | 2020-12-22 | 2020-12-22 | 数据处理方法及装置、数据库架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527844A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377792A (zh) * | 2021-06-10 | 2021-09-10 | 上海微盟企业发展有限公司 | 一种数据回写方法、装置、电子设备和存储介质 |
CN113672624A (zh) * | 2021-08-25 | 2021-11-19 | 中汽创智科技有限公司 | 一种数据处理方法、系统及存储介质 |
CN113792074A (zh) * | 2021-08-11 | 2021-12-14 | 厦门天锐科技股份有限公司 | 一种数据处理方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024774A1 (en) * | 2002-08-01 | 2004-02-05 | Oracle International Corporation | Buffered message queue architecture for database management systems |
CN103488690A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 数据集成系统和数据集成方法 |
CN105608223A (zh) * | 2016-01-12 | 2016-05-25 | 北京中交兴路车联网科技有限公司 | 针对kafka的Hbase数据库的入库方法和系统 |
CN105978968A (zh) * | 2016-05-11 | 2016-09-28 | 山东合天智汇信息技术有限公司 | 一种海量数据的实时传输处理方法、服务器及处理系统 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN108170758A (zh) * | 2017-12-22 | 2018-06-15 | 福建天泉教育科技有限公司 | 高并发数据存储方法及计算机可读存储介质 |
CN109308329A (zh) * | 2018-09-27 | 2019-02-05 | 深圳供电局有限公司 | 一种基于云平台的日志收集方法和装置 |
CN109525448A (zh) * | 2019-01-10 | 2019-03-26 | 北京智信未来信息技术有限公司 | 日志数据采集系统及方法 |
CN110888727A (zh) * | 2019-11-26 | 2020-03-17 | 北京达佳互联信息技术有限公司 | 并发无锁队列实现方法、装置及存储介质 |
-
2020
- 2020-12-22 CN CN202011531210.5A patent/CN112527844A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024774A1 (en) * | 2002-08-01 | 2004-02-05 | Oracle International Corporation | Buffered message queue architecture for database management systems |
CN103488690A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 数据集成系统和数据集成方法 |
CN105608223A (zh) * | 2016-01-12 | 2016-05-25 | 北京中交兴路车联网科技有限公司 | 针对kafka的Hbase数据库的入库方法和系统 |
CN105978968A (zh) * | 2016-05-11 | 2016-09-28 | 山东合天智汇信息技术有限公司 | 一种海量数据的实时传输处理方法、服务器及处理系统 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN108170758A (zh) * | 2017-12-22 | 2018-06-15 | 福建天泉教育科技有限公司 | 高并发数据存储方法及计算机可读存储介质 |
CN109308329A (zh) * | 2018-09-27 | 2019-02-05 | 深圳供电局有限公司 | 一种基于云平台的日志收集方法和装置 |
CN109525448A (zh) * | 2019-01-10 | 2019-03-26 | 北京智信未来信息技术有限公司 | 日志数据采集系统及方法 |
CN110888727A (zh) * | 2019-11-26 | 2020-03-17 | 北京达佳互联信息技术有限公司 | 并发无锁队列实现方法、装置及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377792A (zh) * | 2021-06-10 | 2021-09-10 | 上海微盟企业发展有限公司 | 一种数据回写方法、装置、电子设备和存储介质 |
CN113792074A (zh) * | 2021-08-11 | 2021-12-14 | 厦门天锐科技股份有限公司 | 一种数据处理方法及装置 |
CN113792074B (zh) * | 2021-08-11 | 2024-02-06 | 厦门天锐科技股份有限公司 | 一种数据处理方法及装置 |
CN113672624A (zh) * | 2021-08-25 | 2021-11-19 | 中汽创智科技有限公司 | 一种数据处理方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11438291B2 (en) | Message history display system and method | |
CN112527844A (zh) | 数据处理方法及装置、数据库架构 | |
US8190743B2 (en) | Most eligible server in a common work queue environment | |
US8078958B2 (en) | Scalable computing system for managing annotations | |
US8028085B2 (en) | Optimizing message transmission and delivery in a publisher-subscriber model | |
US7337239B2 (en) | Atomic message division | |
US7594022B2 (en) | Regulating client requests in an electronic messaging environment | |
CN111414389B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20070101341A1 (en) | Event locality using queue services | |
CN110413650B (zh) | 一种业务数据的处理方法、装置、设备和存储介质 | |
WO2004114120A1 (en) | Method and system for data collection for alert delivery | |
CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
US20120224482A1 (en) | Credit feedback system for parallel data flow control | |
CN104794190A (zh) | 一种大数据有效存储的方法和装置 | |
US20030225857A1 (en) | Dissemination bus interface | |
US20220284042A1 (en) | Replication of parent record having linked child records that were previously replicated asynchronously across data storage regions | |
CN111782692A (zh) | 一种频率控制方法及装置 | |
CN111526188A (zh) | 基于Spark Streaming结合Kafka确保数据零丢失的系统和方法 | |
WO2022187008A1 (en) | Asynchronous replication of linked parent and child records across data storage regions | |
CN113220730A (zh) | 业务数据的处理系统 | |
US20230336368A1 (en) | Block chain-based data processing method and related apparatus | |
CN116842090A (zh) | 一种对账系统、方法、设备及存储介质 | |
CN110928911A (zh) | 审校请求处理系统、方法、装置、计算机可读存储介质 | |
US11599294B2 (en) | Media storage for online meetings in edge network storage | |
CN117478535B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210319 |