CN117093367A - 一种业务数据的处理方法、装置及存储介质 - Google Patents
一种业务数据的处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN117093367A CN117093367A CN202311061184.8A CN202311061184A CN117093367A CN 117093367 A CN117093367 A CN 117093367A CN 202311061184 A CN202311061184 A CN 202311061184A CN 117093367 A CN117093367 A CN 117093367A
- Authority
- CN
- China
- Prior art keywords
- service
- operation data
- data
- distributed platform
- distributed
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 34
- 238000003672 processing method Methods 0.000 title description 16
- 238000012545 processing Methods 0.000 claims abstract description 140
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000005192 partition Methods 0.000 claims abstract description 54
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 238000009826 distribution Methods 0.000 claims abstract description 8
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 239000002131 composite material Substances 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 11
- 230000008859 change Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013481 data capture Methods 0.000 description 3
- 235000012054 meals Nutrition 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/2453—Query optimisation
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种业务数据的处理方法、装置及存储介质,属于数据处理技术领域。该方法包括:将关系型数据库数据同步到搜索引擎;获取操作数据,根据操作数据在搜索引擎中进行查询得到业务操作数据;将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中;使用服务节点监听分布式平台主题,获取业务操作数据,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果;将处理结果存入非关系型数据库。本申请实施例能够将庞大的业务操作数据进行划分,以并行方式处理业务操作数据,提高处理和写入效率,降低资源消耗。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种业务数据的处理方法、装置及存储介质。
背景技术
目前,对于多业务维度的业务数据处理,由于数据量非常庞大,需要大量的计算资源,业务数据处理过程会非常耗时,系统的CPU负载会急剧增加,系统CPU以及数据库磁盘IO严重告警,会严重影响到系统稳定,甚至可能导致系统崩溃。
因此,以上技术问题,亟待业内解决。
发明内容
本申请实施例的主要目的在于提出一种业务数据的处理方法、装置及存储介质,以克服现有技术中的不足。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供了一种业务数据的处理方法,所述方法包括:
将关系型数据库数据同步到搜索引擎;
获取操作数据,根据所述操作数据在所述搜索引擎中进行查询得到业务操作数据,所述业务操作数据包括id、业务类型和业务状态;
将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中;
使用服务节点监听所述分布式平台主题,获取所述业务操作数据,根据所述业务操作数据的业务类型分配线程池对所述业务操作数据进行并行处理,得到处理结果,所述服务节点的数量与所述分布式平台的分区数量相同;
将所述处理结果存入非关系型数据库。
在其中一个实施例中,所述方法还包括:
将所述业务操作数据存入Redis;
根据所述处理结果更新Redis中所述业务操作数据的业务状态;
将Redis中业务状态为已完成的业务操作数据删除。
在其中一个实施例中,所述业务状态的初始状态是待处理,所述将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中,包括:
当Redis中存在有所述业务操作数据时,使用定时器定时将业务状态为待处理的所述业务操作数据封装成分布式平台消息,发送到分布式平台。
在其中一个实施例中,所述根据所述业务操作数据的业务类型分配线程池对所述业务操作数据进行并行处理,包括:
采用分布式锁防止出现相同业务并行执行;
将所述业务操作数据所述分配线程池时,获取所述业务操作数据的分布式锁;
若没有获取到所述分布式锁,所述业务操作数据不进行分配;
若获取到所述分布式锁,获取Redis中所述业务操作数据的业务状态,若Redis中所述业务操作数据的业务状态为已处理,所述业务操作数据不进行分配。
在其中一个实施例中,所述将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中,包括:
将所述业务操作数据的id作为hashKey封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中,所述分布式平台的分区是根据所述hashKey确定的。
在其中一个实施例中,所述关系型数据库数据是MySQL数据库数据,所述搜索引擎是ElasticSearch,所述业务操作数据是学校统计数据,所述获取操作数据,根据所述操作数据在所述搜索引擎中进行查询得到业务操作数据,包括:
获取统计操作数据,据所述统计操作数据在所述ElasticSearch中进行查询得到学校统计数据,所述学校统计数据包括学校id、学校业务类型和学校业务状态,所述学校业务类型包括详细业务种类和详细业务状态。
在其中一个实施例中,所述业务操作数据还包括业务时间,所述方法还包括:
配置所述非关系型数据库的复合索引,所述复合索引是唯一索引,所述复合索引的键包括所述id、所述业务类型和所述业务时间。
另一方面,本申请实施例提供了一种业务数据的处理装置,所述装置包括:
数据同步模块,用于将关系型数据库数据同步到搜索引擎;
操作数据获取模块,用于获取操作数据,根据所述操作数据在所述搜索引擎中进行查询得到业务操作数据,所述业务操作数据包括id、业务类型和业务状态;
数据发送模块,用于将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中;
数据处理模块,用于使用服务节点监听所述分布式平台主题,获取所述业务操作数据,根据所述业务操作数据的业务类型分配线程池对所述业务操作数据进行并行处理,得到处理结果,所述服务节点的数量与所述分布式平台的分区数量相同;
处理结果储存模块,用于将所述处理结果存入非关系型数据库。
另一方面,本申请实施例提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的业务数据的处理方法。
另一方面,本申请实施例提供了一种计算机可读存储介质所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的业务数据的处理方法。
本申请提出的业务数据的处理方法、装置及存储介质,其通过将关系型数据库数据同步到搜索引擎,并根据操作数据在搜索引擎中查询关系型数据库数据得到业务操作数据,提高了数据查询效率,并通过将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中,并使用服务节点监听分布式平台主题,获取业务操作数据,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果,从而对庞大的业务操作数据进行划分并以并行方式处理业务操作数据,提高了处理效率,降低了资源消耗,再将处理结果存入非关系型数据库,提高了写入效率。
附图说明
图1是本申请实施例提供的一种业务数据的处理方法的流程图;
图2是本申请实施例提供的另一种业务数据的处理方法的流程图;
图3是图1中步骤S105的流程图;
图4是图2中步骤S210的流程图;
图5是本申请的业务数据的处理方法的一种具体应用实施例的流程图;
图6是本申请实施例提供的业务数据的处理装置的结构示意图;
图7是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中模块划分,或流程图中顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
MySQL:是一个关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MongoDB:是一种开源的非关系型数据库,它采用文档导向的数据模型来存储数据。它广泛应用于大数据、实时分析和Web应用等场景。在MongoDB中,数据以文档的形式存储,文档是一个键值对集合,类似于关系型数据库中行,但具有更灵活的结构。每个文档都是一个独立的实体,可以包含不同数量和类型的字段。
Redis(Remote Dictionary Server):是一种开源的基于内存的键值存储数据库系统,它支持高性能的数据访问和操作,并且提供多种数据结构的支持。在Redis中,数据以键值对的形式存储。每个键都是一个字符串,而值可以是字符串、列表、集合、哈希表、有序集合等多种数据结构之一。
NoSQL(Not Only SQL):是一种广义的非关系型数据库(Non-RelationalDatabase)的分类,它在数据存储和查询方面与传统的关系型数据库有所不同。NoSQL数据库设计的目标是解决关系型数据库在处理大规模数据、高并发访问和分布式环境下的一些局限性。与传统的关系型数据库相比,NoSQL数据库强调可扩展性、高性能和灵活的数据模型。
Redisson:是一个基于Redis的Java驻留框架,它提供了一套易于使用的API和丰富的功能,用于在Java应用程序中与Redis进行交互,并提供了分布式对象、分布式锁、分布式集合、分布式映射等功能,帮助开发人员更好地利用Redis的优势来构建可靠的分布式系统。
ES(Elasticsearch):是一个开源的分布式全文搜索和分析引擎。它被设计用于快速、可扩展地搜索、分析和存储大规模数据集。
CDC(Change Data Capture):是一种用于捕获和跟踪数据库变更的技术。CDC可以监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。CDC可以帮助实时获取数据库中变更数据,并将其应用于其他系统或数据仓库中,以保持数据的一致性和完整性。通过捕获数据库的变更日志或使用触发器等机制,CDC能够提供可靠而高效的数据同步和复制。
Flink CDC:是基于Apache Flink的一个功能模块,用于实时捕获和处理数据源中变化数据。Flink CDC通过与数据库的日志或者增量订阅机制进行交互,捕获数据库的变化事件,并将其转换为Flink的DataStream流。用户可以使用Flink提供的数据转换和计算操作对这些流进行处理,例如过滤、转换、聚合、关联等。
Kafka:是一个分布式流处理平台,也是一个高性能、可扩展且持久化的消息队列系统,主要用于实时数据流的发布和订阅。Kafka基于发布-订阅模式,允许多个生产者向一个或多个主题(Topics)发布消息,并允许多个消费者从这些主题中订阅消息。消息在Kafka中以顺序的方式进行持久化存储,并按照一定的保留策略保存一段时间。消费者可以根据需要随时从指定的偏移量开始消费消息。
目前,对于多业务维度的业务数据处理,由于数据量非常庞大,需要大量的计算资源,业务数据处理过程会非常耗时,系统的CPU负载会急剧增加,系统CPU以及数据库磁盘IO严重告警,会严重影响到系统稳定,甚至可能导致系统崩溃。
基于此,本申请实施例提供了一种业务数据的处理方法、装置及存储介质,旨在提高处理和写入效率。
本申请实施例提供的一种业务数据的处理方法、装置及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中业务数据的处理方法。
本申请实施例提供的业务数据的处理方法,涉及数据处理技术领域。本申请实施例提供的业务数据的处理方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现业务数据的处理方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
图1是本申请实施例提供的业务数据的处理方法的一个可选的流程图,图1中方法可以包括但不限于包括步骤S101至步骤S106。
步骤S101,将关系型数据库数据同步到搜索引擎。
具体地,搜索引擎专注于文本内容的索引和搜索,能够快速地进行全文搜索,支持复杂的关键词匹配、模糊查询和语义搜索等。相比之下,关系型数据库的查询通常基于结构化数据,对于全文搜索的效率较低。同时,搜索引擎通常采用分布式架构,可以方便地扩展到多个节点,以应对大规模数据和高并发查询的需求。而关系型数据库在处理大规模数据和高负载时,需要进行复杂的分区和分片操作,并且扩展性相对较差。
本申请对关系型数据库不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,关系型数据库可以采用MySQL,也可以采用PostgreSQL。
本申请对搜索引擎不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,搜索引擎可以采用Elasticsearch,也可以采用Apache Solr。
在一些实施例中,通过变化数据捕获技术将关系型数据库数据同步到搜索引擎,保证数据同步的可靠性。
本申请对变化数据捕获技术的应用工具不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,变化数据捕获技术的应用工具可以采用FlinkCDC工具,也可以采用Debezium工具。
在本实施例中,将关系型数据库数据同步到搜索引擎,保证数据同步的可靠性,搜索引擎的查询速度快于关系型数据库,从而提升了后续查询的效率。
步骤S102,获取操作数据,根据操作数据在搜索引擎中进行查询得到业务操作数据。
具体地,操作数据是用户执行的操作,本申请对操作数据不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,操作数据可以为统计操作的数据,也可以为计算操作的数据。
可选地,可根据操作数据在搜索引擎中进行查询,根据查询得到的数据创建业务操作数据。
在一些实施例中,业务操作数据包括id、业务类型和业务状态,业务状态的初始状态为待处理,业务操作数据可以采用键值对的数据结构。其中,id代表每组业务的唯一标识符,业务类型代表业务的类型。
需要说明的是,本申请对业务类型的格式不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,业务类型的格式可以采用集合,也可以采用字符串或者数组。
在一些实施例中,业务操作数据还包括业务时间,业务时间代表搜索引擎内根据操作数据查询得到的用户设置的时间数据。
在本实施例中,获取操作数据,根据操作数据在搜索引擎中进行查询得到业务操作数据,提升了查询的效率。
步骤S103,将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中。
具体地,本申请对分布式平台不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,分布式平台可以采用Kafka平台,也可以采用Hadoop平台。
可以理解的是,分布式平台通过将数据分布到多个分区的节点上进行并行处理,可以提高处理能力和响应速度。每个分区的节点只处理自己负责的分区数据,减轻了单个分区的节点的负载压力,实现了任务的并行执行。同时,分布式平台的分区支持水平扩展,即通过添加更多的分区来增加处理能力和存储容量。
在本实施例中,将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中,可以同时处理多个业务操作数据。通过将数据分散到不同的分区,可以实现任务的并行执行,提高处理效率和响应速度。
步骤S104,使用服务节点监听分布式平台主题,获取业务操作数据。
具体地,服务节点的数量与分布式平台的分区数量相同。
在一些实施例中,服务节点可以选择全部监听或分区监听主题。
全部监听:当服务节点选择全部监听主题时,它会订阅并消费该主题的所有分区。这意味着服务节点将会接收和处理主题中的所有消息,无论分区数量有多少。
分区监听:与全部监听不同,服务节点也可以选择只监听主题的特定分区。每个主题可以被划分为多个分区,分区具有独立的顺序和偏移量,因此可以实现更细粒度的消费控制。通过指定要监听的分区,服务节点可以选择性地消费感兴趣的消息。
在本实施例中,通过监听分布式平台的主题,服务节点可以及时获取到发布在该主题上的消息。这样可以实现实时数据同步,保持节点和平台上数据的一致性,并且为后续的数据处理做了准备。
步骤S105,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果。
具体地,处理结果为线程池处理业务操作数据得到的数据结果。可以理解的是,处理结果与要实现或执行的业务处理任务(如学校业务数据统计、用户画像构建等)相对应,本领域的技术人员可以根据实际的业务处理需要进行灵活选取。示例性地,当操作数据为统计操作,业务操作数据为学校业务统计操作数据时,处理结果为学校业务统计数据结果。
在一些实施例中,通过为每个业务类型分配独立的线程池,可以对每个业务类型的处理资源进行精细化的控制。具体地,可以根据业务类型的特点和需求,在线程池中配置相应的线程数、任务队列大小等参数,优化资源的利用和响应能力。
示例性地,假设分布式平台具有3个分区,每个服务节点的线程池为30个,也就是最大并行处理3*30=90条业务操作数据。可以理解的是,分布式平台配置的分区越高,越多的服务节点,并行处理的业务操作数据越多。
在一些实施例中,线程池包含队列,示例性的,业务操作数据共416条,不同业务类型的线程池并行执行30条业务操作数据,剩余的386条放到队列中。
需要说明的是,将业务操作数据分配到不同业务类型的线程池后,返回ACK,确认业务操作数据被接收、分配和消费。
在一些实施例中,当不同业务的线程池达到一定的空闲时间(如1小时),进行线程销毁,进行资源释放。
在本实施例中,通过使用线程池,可以同时处理多个业务操作数据,实现任务的并行执行。每个业务类型都可以被分配到独立的线程池中,这样不同类型的任务可以并行地在不同的线程池中进行处理,减少业务操作数据的处理时间,提高数据处理效率,提高处理能力和性能。
步骤S106,将处理结果存入非关系型数据库。
具体地,本申请对非关系型数据库不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,非关系型数据库可以采用Mongodb数据库,也可以采用Couchbase数据库。
在一些实施例中,处理结果还包括id、业务类型和业务时间,其中,处理结果的id、业务类型和业务时间与业务操作数据中id、业务类型和业务时间相同。
在一些实施例中,可以配置非关系型数据库的复合索引,其中,复合索引是唯一索引,复合索引的键包括id、业务类型和业务时间。需要说明的是,唯一的复合索引使得在指定的多个字段组合(即复合索引的键)中,非关系型数据库的值是唯一的,避免了数据冗余和错误。
其中,当处理结果的复合索引的值与非关系型数据库中数据复合索引的值相同时,将处理结果覆盖非关系型数据库中的数据。
可以理解的是,将处理结果存入非关系型数据库是一个高并发写入场景。考虑到如果采用关系型数据库进行存储,高并发写入也会对主库产生影响,以及后续存储的数据量也会越来越大,故而综合考量,选择非关系型数据库进行分片集群存储,兼容并发写入以及大数据量存储问题,提高了写入效率。
本申请实施例所示意的步骤S101至步骤S106,通过将关系型数据库数据同步到搜索引擎,并根据操作数据在搜索引擎中查询关系型数据库数据得到业务操作数据,提高了数据查询效率,并通过将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中,并使用服务节点监听分布式平台主题,获取业务操作数据,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果,从而对庞大的业务操作数据进行划分并以并行方式处理业务操作数据,提高了处理效率,降低了资源消耗,再将处理结果存入非关系型数据库。
请参阅图2,图2是本申请实施例提供的另一种业务数据的处理方法的流程图,图2中方法可以包括但不限于包括步骤S201至步骤S210:
步骤S201,将关系型数据库数据同步到搜索引擎。
步骤S202,获取操作数据,根据操作数据在搜索引擎中进行查询得到业务操作数据。
步骤S203,将业务操作数据存入Redis。
具体地,Redis用于保存业务操作数据作为业务记录,记录业务操作是否完成。
在本实施例中,将业务操作数据存入Redis,可以记录业务操作是否完成,同时可以提高业务操作数据的读写速度,提高处理效率。
步骤S204,当Redis中存在有业务操作数据时,使用定时器定时将业务状态为待处理的业务操作数据中id作为hashKey封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中。
具体地,hashKey用于确定发送至分布式平台的分区。定时器用于定时重发待处理的业务操作数据。
在一些实施例中,本申请对定时器的间隔时间不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,可以采用固定间隔,也可以根据不同的需要由用户自由设置间隔时间。
可以理解的是,当本实施例的数据处理方法出现错误,如Redis中数据未更新或程序中断时,通过定时器重发逻辑定时将业务状态为待处理的业务操作数据中id作为hashKey封装成分布式平台消息,实现故障处理。
在本实施例中,当Redis中存在有业务操作数据时,使用定时器定时将业务状态为待处理的业务操作数据中id作为hashKey封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中,可以防止数据丢失,保证了数据的可靠性和闭环性,并且实现了分布式平台消息的均匀分布和负载均衡。
步骤S205,使用服务节点监听分布式平台主题,获取业务操作数据。
步骤S206,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果。
步骤S207,将处理结果存入非关系型数据库。
步骤S208,根据处理结果更新Redis中业务操作数据的业务状态。
在本实施例中,根据处理结果更新Redis中业务操作数据的业务状态,实现了业务操作数据的业务状态同步,防止业务操作数据多次重发。
步骤S209,将Redis中业务状态为已完成的业务操作数据删除。
在本实施例中,将Redis中业务状态为已完成的业务操作数据删除,可以释放Redis的存储空间,减少存储资源的占用,并优化性能,有助于提高业务操作数据读写的效率。
步骤S210,当关系型数据库中的数据改变时,对应改变非关系型数据库中的处理结果数据。
当关系型数据库中的数据改变时,将变更后的数据实时同步到搜索引擎,使用搜索引擎中的定时器定时扫描变更记录,以一天为例,夜间定时器定时扫描前一天的变更记录,得到业务操作数据,将业务操作数据存入redis,对业务操作数据进行处理后,将处理结果数据存入非关系型数据库。
本申请实施例所示意的步骤S201至步骤S210,通过将关系型数据库数据同步到搜索引擎,并根据操作数据在搜索引擎中查询关系型数据库数据得到业务操作数据,提高了数据查询效率,其后将业务操作数据存入Redis,提高了数据的读写速度,并在Redis中存在有业务操作数据时,通过使用定时器定时将业务状态为待处理的业务操作数据中id作为hashKey封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中,保证了数据的可靠性,并使用服务节点监听分布式平台主题,获取业务操作数据,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果,从而对庞大的业务操作数据进行划分并以并行方式处理业务操作数据,提高了处理效率,降低了资源消耗,再通过将处理结果存入非关系型数据库,根据处理结果更新Redis中业务操作数据的业务状态,实现了数据同步,将Redis中业务状态为已完成的业务操作数据删除,提高了数据读写的效率,并且当关系型数据库中的数据改变时,对应改变非关系型数据库中的处理结果数据,保持了数据的一致性。
请参阅图3,在一些实施例中,步骤S105可以包括但不限于包括步骤S301至步骤S307:
步骤S301,根据业务操作数据的业务类型获取分布式锁。
具体地,分布式锁是一种用于在分布式系统中实现并发控制的机制,用于防止出现相同业务并行执行,从而避免并发冲突和数据不一致的问题。
具体地,本申请对分布式锁不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,可以采用redisson分布式锁,也可以采用基于ZooKeeper的分布式锁。
需要说明的是,业务操作数据还包括操作类型标识,操作类型标识用于标识业务操作数据的操作类型。
在一些实施例中,分布式锁的键值包括业务操作数据的操作类型标识、业务操作数据的id和业务操作数据的业务类型。示例性的,操作类型标识可以为统计操作标识或者夜间数据变更操作标识。
步骤S302,判断是否获取到分布式锁,若是,则执行步骤S303;反之,则执行步骤S306。
在一些实施例中,若能获取到分布式锁则执行步骤S303;反之,则执行步骤S306。
步骤S303,获取当前Redis中业务操作数据。
具体地,当获取到分布式锁时,获取当前Redis中业务操作数据,为根据Redis中业务操作数据的业务状态判断业务操作数据是否已处理做了准备。
步骤S304,判断Redis中业务操作数据的业务状态是否为已处理,若是,则执行步骤S306;反之,则执行步骤S305。
判断Redis中业务操作数据的业务状态,即业务操作数据中业务状态是否为已处理,若是,则执行步骤S306;反之,则执行步骤S305。
步骤S305,根据业务操作数据的业务类型分配线程池。
具体地,每一个数据类型都有对应的线程池,在分配线程池时,根据业务操作数据的业务类型分配。
步骤S306,对业务操作数据不进行分配。
具体地,当没有获取到分布式锁时,代表业务操作数据已被分配给线程池,因此业务操作数据不进行分配,防止出现相同业务并行执行的情况。当获取到分布式锁但当前Redis中业务操作数据的业务状态为已处理时,业务操作数据已被处理完成,因此同样对业务操作数据不进行分配,防止业务操作数据多次执行。
步骤S307,线程池对业务操作数据进行并行处理,得到处理结果。
本申请实施例所示意的步骤S301至步骤S307,通过在分配线程池时采用分布式锁防止出现相同业务并行执行,从而避免了并发冲突和数据不一致的问题。
请参阅图4,在一些实施例中,步骤S210可以包括但不限于包括步骤S401至步骤S409:
步骤S401,当关系型数据库中的数据改变时,将变更后的数据实时同步到搜索引擎。
与步骤S201不同的是,步骤S401只在进行过操作的关系型数据库中的数据改变时,才会将变更后的数据实时同步到搜索引擎。
步骤S402,使用搜索引擎中的定时器定时扫描变更记录,得到业务操作数据。
与步骤S202不同的是,步骤S402根据变更记录得到业务操作数据。
在一些实施例中,以一天为例,夜间定时器定时扫描前一天的变更记录,得到业务操作数据。
步骤S403,将业务操作数据存入redis。
步骤S404,当Redis中存在有业务操作数据时,使用定时器定时将业务状态为待处理的业务操作数据中的id作为hashKey封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中。
步骤S405,使用服务节点监听分布式平台主题,获取业务操作数据。
步骤S406,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果。
步骤S407,将处理结果存入非关系型数据库。
与步骤S207不同的是,由于只有进行过操作的关系型数据库中的数据改变时,才会将变更后的数据实时同步到搜索引擎,所以业务操作数据至少执行过两遍,非关系型数据库中已有至少一份旧处理结果,可以理解的是,本申请不对处理结果存入方式不做具体的限定,可以结合实际的数据处理需要进行灵活选取。示例性地,处理结果可以覆盖旧处理结果,处理结果也可以存入非关系型数据库与旧处理结果并存,处理结果还可以存入新的非关系型数据库副本,与旧处理结果互不影响。
步骤S408,根据处理结果更新Redis中的业务操作数据中的业务状态。
步骤S409,将Redis中业务状态为已完成的业务操作数据删除。
本申请实施例所示意的步骤S401至步骤S409,通过当关系型数据库中的数据改变时,将变更后的数据实时同步到搜索引擎,实现搜索引擎中数据的同步更新,使用搜索引擎中的定时器定时扫描变更记录,得到业务操作数据,将业务操作数据存入redis,其后将业务操作数据封装成分布式平台消息经过线程池处理,将处理结果存入非关系型数据库,提高了数据的一致性和实时性。
请参阅图5,图5是本申请的业务数据的处理方法的一种具体应用实施例的流程图,以操作数据是统计操作,业务操作数据是学校业务统计数据为例,在一些实施例中,图5中方法可以包括但不限于包括步骤S501至步骤S516:
步骤S501,采用FlinkCDC将MySQL分库分表数据同步到ES。
步骤S502,获取统计操作数据,根据统计操作数据在ES中进行查询得到学校业务统计数据。
在本实施例中,执行统计一个学期不同业务金额(包括订单,退款单,渠道退款记录,消耗考勤,学生/教师餐食消耗明细等)的操作,根据操作在ES中进行查询,根据查询得到的数据创建学校业务统计数据。
以学校业务统计为例,创建的学校业务统计数据如下所示:
步骤S503,将学校业务统计数据存入Redis。
示例性地,将学校业务统计数据存入Redis的代码如下:
redisTemplate.boundHashOps(dbRedisKey:school).putAll(map)
其中,dbRedisKey代表学校业务统计数据的操作类型标识,示例中,学校业务统计数据的操作类型标识dbRedisKey为school。
步骤S504,当Redis中存在有学校业务统计数据时,使用定时器定时将业务状态为待处理的学校业务统计数据的id作为hashKey封装成Kafka消息,发送到Kafka,写入Kafka的分区中。
以学校业务统计为例,有1250所学校,对应1250条kafka消息,其中,kafka消息为学校消息。假设kafaka默认3个分区,统计消费服务3个节点,1250学校消息被每个消费服务并行处理416条消息。
可以理解的是,即使后续随着学校的增加,比如增加到5000学校,只要增加分区,以及扩容匹配的服务节点,就可以增加并行处理的消息数,提高消费速度。
步骤S505,使用服务节点监听Kafka主题,获取学校业务统计数据。
示例性地,服务节点可以为统计消费服务,统计消费服务监听kafaka主题Topic,进行学校消息批量消费。
步骤S506,根据学校业务统计数据的业务类型获取redisson分布式锁。
针对每个学校id不同业务实现的逻辑都有redisson分布式锁控制,锁的键值是[dbRedisKey:学校id:业务类型]。
步骤S507,判断是否获取到redisson分布式锁,若是,则执行步骤S508;反之,则执行步骤S511。
步骤S508,若获取到redisson分布式锁,获取当前Redis中学校业务统计数据。
步骤S509,判断当前Redis中学校业务统计数据的业务状态是否为已处理,若是,则执行步骤S511;反之,则执行步骤S510。
步骤S510,根据学校业务统计数据的业务类型分配线程池。
若获取到redisson分布式锁,并且当前Redis中学校业务统计数据的业务状态为未处理,则根据学校业务统计数据的业务类型分配线程池。
其中,每个业务类型(订单,退款单,渠道退款记录,消耗考勤,学生/教师餐食消耗明细等)都有单独的线程池进行维护处理。
步骤S511,对学校业务统计数据不进行分配。
若没有获取到redisson分布式锁,或获取到redisson分布式锁但当前Redis中学校业务统计数据的业务状态为已处理,学校业务统计数据不进行分配。
步骤S512,线程池对学校业务统计数据进行并行处理,得到处理结果。
例如,每个业务类型的线程池统一分配最小/大线程池30个,分配队列600个,如此消费端批量接收到的消息学校id(例如416条),不同业务类型的线程池并行执行30个学校id,剩余的386条放到缓冲队列中,核心线程执行完上一个学校id的逻辑,则继续从缓冲队列中取出学校id执行。总的来说,如果消费端按照3个服务节点的配置,也就是最大并行处理3*30=90个学校的不同业务。可以理解,kafka配置的分区越高,越多的匹配服务节点,能并行处理的学校消息越多。
步骤S513,将处理结果存入Mongodb。
对mongodb文档结构的设置:以[学校id和业务类型:业务时间(按天)]的维度配置非关系型数据库的复合索引。
处理结果作为统计记录存入Mongodb,对于已经存在mongodb的统计记录,由于外部因素导致程序中断,没有更新到匹配的业务状态为”已完成”的情况,对重新计算的统计结果以该维度进行覆盖,保证了数据的一致性。
配置非关系型数据库的复合索引,复合索引是唯一索引,复合索引的键包括id、业务类型和业务时间。
步骤S514,根据处理结果更新Redis中学校业务统计数据的业务状态。
更新redis中学校业务统计数据的业务状态,步骤如下:
将redis对应不同业务类型信息状态更新为“已完成”;
如果学校id对应的所有业务都是“已完成”,对应更新学校id状态为“已完成”。
步骤S515,将Redis中业务状态为已完成的学校业务统计数据删除。
如果所有学校id对应的业务类型内的业务都已经完成,更新对应业务状态为“已完成”,删除学校redis映射信息,代码如下:
redisTemplate.delete(dbRedisKey:school)
步骤S516,当MySQL中的数据改变时,对应改变Mongodb中的处理结果数据。
对于不同业务(订单,退款单,渠道退款记录,消耗考勤,学生/教师餐食消耗明细等)MySQL数据变更,FlinkCDC都会将变更后的数据实时同步到ES,而且对于变更的数据都有对应的记录表进行记录(更新时间)。夜间定时器扫描前一天的变更记录,汇总所有业务变化记录的学校,提取出每种业务的变更记录的条件(业务类型、变更业务时间等)进行条件封装,存储到redis,进而发送到kafka(即触发执行生成数据的流程),最终将新生成的统计数据落库到mongodb。由于mongodb存储的数据以学校、业务类型、业务日期维度作为唯一业务幂等设计(即唯一复合索引),新生成的统计数据会以该维度进行数据覆盖,最终达到对MySQL数据变更后,在mongodb中已经存在的统计数据进行同步。
可以理解的是,本实施例还可以实现对夜间处理数据的异常,进行消息推送。即对每天夜间流程不能执行成功的情况,推送消息到指定研发人员,第二天进行人工干预介入排查处理。
请参阅图6,本申请实施例还提供一种业务数据的处理装置,可以实现上述业务数据的处理方法,该装置包括:
数据同步模块601,用于将关系型数据库数据同步到搜索引擎;
操作数据获取模块602,用于获取操作数据,根据操作数据在搜索引擎中进行查询得到业务操作数据,业务操作数据包括id、业务类型和业务状态;
数据发送模块603,用于将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中;
数据处理模块604,用于使用服务节点监听分布式平台主题,获取业务操作数据,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果,服务节点的数量与分布式平台的分区数量相同;
处理结果储存模块605,用于将处理结果存入非关系型数据库。
该业务数据的处理装置的具体实施方式与上述业务数据的处理方法的具体实施例基本相同,在此不再赘述。
本发明方法实施例的内容均适用于本装置实施例,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述业务数据的处理方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
本发明方法实施例的内容均适用于本电子设备实施例,本电子设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。
请参阅图7,图7示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器701,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器702,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器702中,并由处理器701来调用执行本申请实施例的业务数据的处理方法;
输入/输出接口703,用于实现信息输入及输出;
通信接口704,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线705,在设备的各个组件(例如处理器701、存储器702、输入/输出接口703和通信接口704)之间传输信息;
其中处理器701、存储器702、输入/输出接口703和通信接口704通过总线705实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述业务数据的处理方法。
本发明方法实施例的内容均适用于本存储介质实施例,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的业务数据的处理方法、装置及存储介质,其通过将关系型数据库数据同步到搜索引擎,并根据操作数据在搜索引擎中查询关系型数据库数据得到业务操作数据,提高了数据查询效率,并通过将业务操作数据封装成分布式平台消息,发送到分布式平台,写入分布式平台的分区中,并使用服务节点监听分布式平台主题,获取业务操作数据,根据业务操作数据的业务类型分配线程池对业务操作数据进行并行处理,得到处理结果,从而对庞大的业务操作数据进行划分并以并行方式处理业务操作数据,提高了处理效率,降低了资源消耗,再将处理结果存入非关系型数据库,提高了写入效率。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中全部或某些步骤、系统、设备中功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种业务数据的处理方法,其特征在于,所述方法包括:
将关系型数据库数据同步到搜索引擎;
获取操作数据,根据所述操作数据在所述搜索引擎中进行查询得到业务操作数据,所述业务操作数据包括id、业务类型和业务状态;
将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中;
使用服务节点监听所述分布式平台主题,获取所述业务操作数据,根据所述业务操作数据的业务类型分配线程池对所述业务操作数据进行并行处理,得到处理结果,所述服务节点的数量与所述分布式平台的分区数量相同;
将所述处理结果存入非关系型数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述业务操作数据存入Redis;
根据所述处理结果更新Redis中所述业务操作数据的业务状态;
将Redis中业务状态为已完成的业务操作数据删除。
3.根据权利要求2所述的方法,其特征在于,所述业务状态的初始状态是待处理,所述将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中,包括:
当Redis中存在有所述业务操作数据时,使用定时器定时将业务状态为待处理的所述业务操作数据封装成分布式平台消息,发送到分布式平台。
4.根据权利要求2所述的方法,其特征在于,所述根据所述业务操作数据的业务类型分配线程池对所述业务操作数据进行并行处理,包括:
将所述业务操作数据分配至所述线程池时,获取所述业务操作数据的分布式锁,所述分布式锁用于防止相同业务操作数据并行执行;
若没有获取到所述分布式锁,则对所述业务操作数据不进行分配;
若获取到所述分布式锁,则获取Redis中所述业务操作数据的业务状态,若Redis中所述业务操作数据的业务状态为已处理,则对所述业务操作数据不进行分配。
5.根据权利要求1所述的方法,其特征在于,所述将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中,包括:
将所述业务操作数据的id作为hashKey封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中,所述分布式平台的分区是根据所述hashKey确定的。
6.根据权利要求1所述的方法,其特征在于,所述关系型数据库数据是MySQL数据库数据,所述搜索引擎是ElasticSearch,所述业务操作数据是学校统计数据,所述操作数据是统计操作数据,所述获取操作数据,根据所述操作数据在所述搜索引擎中进行查询得到业务操作数据,包括:
获取所述统计操作数据,据所述统计操作数据在所述ElasticSearch中进行查询得到所述学校统计数据,所述学校统计数据包括学校id、学校业务类型和学校业务状态,所述学校业务类型包括详细业务种类和详细业务状态。
7.根据权利要求1所述的方法,其特征在于,所述业务操作数据还包括业务时间,所述方法还包括:
配置所述非关系型数据库的复合索引,所述复合索引是唯一索引,所述复合索引的键包括所述id、所述业务类型和所述业务时间。
8.一种业务数据的处理装置,其特征在于,所述装置包括:
数据同步模块,用于将关系型数据库数据同步到搜索引擎;
操作数据获取模块,用于获取操作数据,根据所述操作数据在所述搜索引擎中进行查询得到业务操作数据,所述业务操作数据包括id、业务类型和业务状态;
数据发送模块,用于将所述业务操作数据封装成分布式平台消息,发送到分布式平台,写入所述分布式平台的分区中;
数据处理模块,用于使用服务节点监听所述分布式平台主题,获取所述业务操作数据,根据所述业务操作数据的业务类型分配线程池对所述业务操作数据进行并行处理,得到处理结果,所述服务节点的数量与所述分布式平台的分区数量相同;
处理结果储存模块,用于将所述处理结果存入非关系型数据库。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的业务数据的处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的业务数据的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061184.8A CN117093367B (zh) | 2023-08-22 | 2023-08-22 | 一种业务数据的处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061184.8A CN117093367B (zh) | 2023-08-22 | 2023-08-22 | 一种业务数据的处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117093367A true CN117093367A (zh) | 2023-11-21 |
CN117093367B CN117093367B (zh) | 2024-04-09 |
Family
ID=88772911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311061184.8A Active CN117093367B (zh) | 2023-08-22 | 2023-08-22 | 一种业务数据的处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093367B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992542A (zh) * | 2024-01-30 | 2024-05-07 | 广州今之港教育咨询有限公司 | 课后业务数据处理方法和装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303481A1 (en) * | 2018-03-30 | 2019-10-03 | International Business Machines Corporation | Supporting a join operation against multiple nosql databases |
CN111460023A (zh) * | 2020-04-29 | 2020-07-28 | 上海东普信息科技有限公司 | 基于Elasticsearch的业务数据处理方法、装置、设备及存储介质 |
CN113672627A (zh) * | 2021-09-08 | 2021-11-19 | 湖南惠农科技有限公司 | Elasticsearch搜索引擎索引构建方法及装置 |
WO2023040690A1 (zh) * | 2021-09-17 | 2023-03-23 | 易保网络技术(上海)有限公司 | 一种数据处理方法、程序产品、可读介质和电子设备 |
CN116069791A (zh) * | 2022-12-04 | 2023-05-05 | 江苏研码科技有限公司 | 一种数据的处理方法和装置、计算机设备 |
-
2023
- 2023-08-22 CN CN202311061184.8A patent/CN117093367B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303481A1 (en) * | 2018-03-30 | 2019-10-03 | International Business Machines Corporation | Supporting a join operation against multiple nosql databases |
CN111460023A (zh) * | 2020-04-29 | 2020-07-28 | 上海东普信息科技有限公司 | 基于Elasticsearch的业务数据处理方法、装置、设备及存储介质 |
CN113672627A (zh) * | 2021-09-08 | 2021-11-19 | 湖南惠农科技有限公司 | Elasticsearch搜索引擎索引构建方法及装置 |
WO2023040690A1 (zh) * | 2021-09-17 | 2023-03-23 | 易保网络技术(上海)有限公司 | 一种数据处理方法、程序产品、可读介质和电子设备 |
CN116069791A (zh) * | 2022-12-04 | 2023-05-05 | 江苏研码科技有限公司 | 一种数据的处理方法和装置、计算机设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992542A (zh) * | 2024-01-30 | 2024-05-07 | 广州今之港教育咨询有限公司 | 课后业务数据处理方法和装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117093367B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723160B (zh) | 一种多源异构增量数据同步方法及系统 | |
CN106980669B (zh) | 一种数据的存储、获取方法及装置 | |
CN106815338A (zh) | 一种大数据的实时存储、处理和查询系统 | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
CN105138661A (zh) | 一种基于Hadoop的网络安全日志k-means聚类分析系统及方法 | |
Chavan et al. | Survey paper on big data | |
CN117093367B (zh) | 一种业务数据的处理方法、装置及存储介质 | |
CN112307037A (zh) | 一种数据同步方法和装置 | |
CN109063196A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113282611B (zh) | 一种流数据同步的方法、装置、计算机设备及存储介质 | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和系统 | |
CN110245134B (zh) | 一种应用于搜索服务的增量同步方法 | |
CN112286941A (zh) | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
US10838931B1 (en) | Use of stream-oriented log data structure for full-text search oriented inverted index metadata | |
CN114661823A (zh) | 数据同步的方法、装置、电子设备及可读存储介质 | |
CN117056303B (zh) | 适用于军事行动大数据的数据存储方法及装置 | |
CN105550351B (zh) | 旅客行程数据即席查询系统及方法 | |
Anusha et al. | Big data techniques for efficient storage and processing of weather data | |
CN116166750A (zh) | 一种基于Kafka的数据库同步系统和方法 | |
CN115982133A (zh) | 数据处理方法及装置 | |
Wang et al. | Block storage optimization and parallel data processing and analysis of product big data based on the hadoop platform | |
Suguna et al. | Improvement of Hadoop ecosystem and their pros and cons in Big data | |
CN114003580A (zh) | 一种运用于分布式调度系统的数据库构建方法及装置 | |
CN114003602A (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 |