CN111400406A - 数据处理方法及装置、电子设备、计算机存储介质 - Google Patents
数据处理方法及装置、电子设备、计算机存储介质 Download PDFInfo
- Publication number
- CN111400406A CN111400406A CN202010272135.9A CN202010272135A CN111400406A CN 111400406 A CN111400406 A CN 111400406A CN 202010272135 A CN202010272135 A CN 202010272135A CN 111400406 A CN111400406 A CN 111400406A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- module
- service module
- writing
- 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
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/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
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了数据处理方法及装置、电子设备、计算机存储介质,该方法包括:将底层数据库中的数据同步至搜索服务器;响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。将数据库中的数据同步至搜索服务器,在业务模块读取数据时,利用搜索服务器提供读取数据的服务,避免业务模块直接访问数据库而增大数据库压力,为数据快速吞吐提供服务支撑,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度,提高数据库的性能表现。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及数据处理方法及装置、电子设备、计算机存储介质。
背景技术
现有技术下数据库很多采用单库单表的形式,即所有表都在同一个数据库下,为所有表建立索引以加快访问速度,并且服务是一个单体应用JAR包(Java ARchive,Java归档)。单库单表数据库的单机存储容量、连接数、处理能力是有限的,在日均50万单级别的入库、出库、短信发送等业务操作下够用,但是随着业务规模进一步扩大,一些业务模块的流量不断增大,由于部分业务模块的api接口直连数据库,在高流量访问下数据库压力就会直线增大,且因资源有限无法及时释放,最终导致各业务模块的接口互相争夺资源,业务模块写入、读取数据时数据库的响应速度变慢,性能表现较差。
发明内容
本申请的目的在于提供数据处理方法及装置、电子设备、计算机存储介质,解决现有技术的不足,利用搜索服务器提供读取数据的服务,为数据快速吞吐提供服务支撑,解决单表数据量较大导致数据库性能较差的问题,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度。
本申请的目的采用以下技术方案实现:
第一方面,本申请提供了一种数据处理方法,包括:
将底层数据库中的数据同步至搜索服务器;
响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。
将数据库中的数据同步至搜索服务器,在业务模块读取数据时,利用搜索服务器提供读取数据的服务,避免业务模块直接访问数据库而增大数据库压力,为数据快速吞吐提供服务支撑,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度,提高数据库的性能表现。
可选地,还包括:
响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库;
将所述redis数据库中的数据写入所述底层数据库;
所述响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块,包括:
响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;
响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。
利用redis数据库将业务模块的数据写入底层数据库,在读取数据时,对于部分业务模块,可以直接读取redis数据库中的数据,对于另外一些业务模块,可以读取搜索服务器中的数据,由此减小搜索服务器的压力。底层数据库只负责写入数据,redis数据库、搜索服务器提供读取查询数据的服务,通过类似读写分离的思想提高读取数据的响应速度。
可选地,所述底层数据库包括基类数据库和核心数据库;
所述将所述redis数据库中的数据写入所述底层数据库,包括:
将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库;
将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。
将数据库拆分为基类数据库和核心数据库,并有针对性地将不同业务模块的数据分别写入不同的数据库,例如在基类数据库中保存业务访问量较小的数据,在核心数据库中保存业务访问量较大的数据,通过拆分数据库以减小每个数据库中的数据量,提高单个数据库的性能。
可选地,所述将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库,包括:
将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数;
将所述redis数据库中所述第二业务模块写入的数据写入第a库。
进一步拆分核心数据库为多个库,并利用预定的选库规则将数据写入门店ID对应的库中,由此进一步减小单个库中的数据量,并使得同一门店ID对应的数据保存至同一库。
可选地,所述将所述redis数据库中所述第二业务模块写入的数据写入第a库,包括:
将所述redis数据库中所述第二业务模块写入的数据对应的idx除以M得到的余数记为b;所述idx是所述数据的唯一标识,用正整数表示,所述第0库至所述第N-1库均包括表结构相同的第0表至第M-1表,M是大于1的正整数,b是非负整数;
将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表。
将单表拆分为多个表,利用预定的选表规则将数据写入idx对应的表中,进一步减小单表数据量,提高数据库的性能。
可选地,所述第0库至所述第N-1库均包括表结构相同且与每个表单类型相对应的第0表至第M-1表;
所述将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表,包括:
将所述redis数据库中所述第二业务模块写入的数据写入第a库中与所写入的数据的表单类型相对应的第b表。
将数据按照表单类型写入对应表中,表单类型例如是运单表、短信发送记录、扫描记录表等,进一步减小单表数据量,提高数据库的性能。
可选地,还包括:
每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,将所述底层数据库中预定表的增量数据同步至所述搜索服务器。
定期将增量数据同步至搜索服务器,保持搜索服务器与底层数据库中数据的一致性。
第二方面,本申请提供了一种数据处理装置,包括:
同步模块,用于将底层数据库中的数据同步至搜索服务器;
读取模块,用于响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。
可选地,所述数据处理装置还包括写入模块,所述写入模块包括:
一次写入子模块,用于响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库;
二次写入子模块,用于将所述redis数据库中的数据写入所述底层数据库;
所述读取模块包括:
第一读取子模块,用于响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;
第二读取子模块,用于响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。
可选地,所述底层数据库包括基类数据库和核心数据库;
所述二次写入子模块包括:
基类写入单元,用于将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库;
核心写入单元,用于将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。
可选地,所述核心写入单元包括:
选库子单元,用于将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数;
写入子单元,用于将所述redis数据库中所述第二业务模块写入的数据写入第a库。
可选地,所述写入子单元包括:
选表部分,用于将所述redis数据库中所述第二业务模块写入的数据对应的idx除以M得到的余数记为b;所述idx是所述数据的唯一标识,用正整数表示,所述第0库至所述第N-1库均包括表结构相同的第0表至第M-1表,M是大于1的正整数,b是非负整数;
写入部分,用于将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表。
可选地,所述第0库至所述第N-1库均包括表结构相同且与每个表单类型相对应的第0表至第M-1表;
所述写入部分用于将所述redis数据库中所述第二业务模块写入的数据写入第a库中与所写入的数据的表单类型相对应的第b表。
可选地,所述同步模块还用于每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,将所述底层数据库中预定表的增量数据同步至所述搜索服务器。
第三方面,本申请提供了一种电子设备,包括处理器和存储器,所述处理器执行所述存储器存储的计算机指令,使得所述电子设备执行上述任一项数据处理方法。
第四方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行上述任一项数据处理方法。
与现有技术相比,本申请的技术效果包括:
本申请公开了数据处理方法及装置、电子设备、计算机存储介质,将数据库中的数据同步至搜索服务器,在业务模块读取数据时,利用搜索服务器提供读取数据的服务,避免业务模块直接访问数据库而增大数据库压力,为数据快速吞吐提供服务支撑,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度,提高数据库的性能表现。
附图说明
下面结合附图和实施例对本申请进一步说明。
图1是第一实施例提供的数据处理方法的一种流程示意图;
图2是第二实施例提供的数据写入、同步、读取的一种流程示意图;
图3是第二实施例提供的数据处理方法的一种流程示意图;
图4是图3中步骤S400的一种流程示意图;
图5是图4中步骤S420的一种流程示意图;
图6是图5中步骤S422的一种流程示意图;
图7是第三实施例提供的数据处理方法的一种流程示意图;
图8是第四实施例提供的数据处理装置10的一种结构示意图;
图9是图8中写入模块300的一种结构示意图;
图10是图8中读取模块200的一种结构示意图;
图11是图9中二次写入子模块320的一种结构示意图;
图12是图11中核心写入单元322的一种结构示意图;
图13是图12中写入子单元3222的一种结构示意图。
图中:10、数据处理装置;100、同步模块;200、读取模块;210、第一读取子模块;220、第二读取子模块;300、写入模块;310、一次写入子模块;320、二次写入子模块;321、基类写入单元;322、核心写入单元;3221、选库子单元;3222、写入子单元;3222a、选表部分;3222b、写入部分;201、业务模块;202、业务模块;203、业务模块。
具体实施方式
下面,结合附图以及具体实施方式,对本申请做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
参见图1,第一实施例提供了一种数据处理方法,包括步骤S100~S200。
本实施例中的方法适用于数据吞吐量较大的场景,包括多种行业、多种技术领域的数据处理,例如物流行业、电商行业等。
步骤S100:将底层数据库中的数据同步至搜索服务器。
底层数据库例如是采用Sharding-JDBC分库分表技术构造的数据库。其中,Sharding-JDBC属于ShardingSphere家族,ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务,使用客户端直连数据库,以JAR包形式提供服务,无需额外部署和依赖。JDBC(Java DataBase Connectivity)是Java和数据库之间的桥梁,由一组用Java语言编写的类和接口组成,能够执行SQL语句,数据库例如是Oracle数据库、DB2数据库、Sql Server数据库、Sybase数据库、Informix数据库、MySQL数据库、PostgreSQL数据库、access数据库等。具体的分库分表方法将在下文中进行表述。
搜索服务器例如是Elasticsearch全文搜索服务器、Solr全文搜索服务器等。
步骤S200:响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。
计算机、手机、平板电脑等智能终端上的app(application,应用)客户端或者web客户端通过业务模块访问数据库中的数据。业务模块例如是***菜单模块、门店信息模块、短信模版模块、费率维护模块、运单模块、短信发送记录模块、扫描记录模块等,有的业务模块业务访问量较小,例如***菜单模块、门店信息模块、短信模版模块、费率维护模块等,有的业务模块业务访问量较大,例如运单模块、短信发送记录模块、扫描记录模块等。***菜单模块涉及的业务操作例如是对***菜单的增加、删除、修改、查询,门店信息模块涉及的业务操作例如是对门店信息的增加、删除、修改、查询,短信模板模块涉及的业务操作例如是对短信模板的增加、删除、修改、查询,费率维护模块涉及的业务操作例如是对费率的修改和查询,运单模块涉及的业务操作例如是对运单的增加、删除、修改、查询,短信发送记录模块涉及的业务操作例如是对短信发送记录的增加、删除、修改、查询,扫描记录模块涉及的业务操作例如是对扫描记录的增加、删除、修改、查询等。
将数据库中的数据同步至搜索服务器,在业务模块读取数据时,利用搜索服务器提供读取数据的服务,避免业务模块直接访问数据库而增大数据库压力,为数据快速吞吐提供服务支撑,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度,提高数据库的性能表现。
参见图2和图3,第二实施例提供了一种数据处理方法,在第一实施例的基础上,所述方法还可以包括步骤S300~S400。
步骤S300:响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库。
redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。本实施例中,存储于redis数据库中的数据,可以是部分持久化的。
步骤S400:将所述redis数据库中的数据写入所述底层数据库。
所述步骤S200可以包括步骤S210~S220。
步骤S210:响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;
步骤S220:响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。
利用redis数据库将业务模块的数据写入底层数据库,在读取数据时,对于部分业务模块,可以直接读取redis数据库中的数据,对于另外一些业务模块,可以读取搜索服务器中的数据,由此减小搜索服务器的压力。底层数据库只负责写入数据,redis数据库、搜索服务器提供读取查询数据的服务,通过类似读写分离的思想提高读取数据的响应速度。在一些实际应用中,底层数据库也可以提供少量数据读取服务,redis、Elasticsearch提供主要的数据读取查询服务,以实现整个***的吞吐性能。
进一步优选地,所述底层数据库可以包括基类数据库和核心数据库。
参见图4,所述步骤S400可以包括步骤S410~S420。
步骤S410:将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库。
具体地,可以将业务访问量较小且后期扩充也不会很大的第一业务模块产生的基类表全部放在基类数据库中,第一业务模块例如是***菜单模块、门店信息模块、短信模版模块、费率维护模块等,基类数据库的名称例如是base库。基类表例如是sys_menu(***菜单表)、agent_ifno(门店信息表)、agent_sms_template(短信模版表)、agent_sms_rate(费率维护表)等。
步骤S420:将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。
将数据库拆分为基类数据库和核心数据库,并有针对性地将不同业务模块的数据分别写入不同的数据库,例如在基类数据库中保存业务访问量较小的数据,在核心数据库中保存业务访问量较大的数据,通过拆分数据库以减小每个数据库中的数据量,提高单个数据库的性能。
具体地,可以将业务访问量比较大且比较重要的第二业务模块产生的表放在核心数据库中,第二业务模块例如是运单模块、短信发送记录模块、扫描记录模块等。
参见图5,所述步骤S420可以包括步骤S421~S422。
步骤S421:将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数。
N是核心数据库中库的数量,N例如是3、4、6等,由于a是门店ID除以N得到的余数,因此a是小于N的非负整数。核心数据库的名称例如是core库。core库包括N个库,第0库至第N-1库的名称例如是core0、core1、core2、…、core N-1等。该步骤设置了选库规则,核心数据库中的每张表设置有agentId(门店Id)这一字段。当N=4时,将一行数据对应的门店ID除以4得到的余数a是0、1、2、3其中的一个,根据余数a的取值将该行数据放入对应的第a库,即core a库中。例如当一行数据对应的门店id是110549时,余数a是1,则该行数据被写入第1库,即core1库;当一行数据对应的门店id是120000时,余数a是0,则该行数据被写入第0库,即core0库。
步骤S422:将所述redis数据库中所述第二业务模块写入的数据写入第a库。
进一步拆分核心数据库为多个数据库,并利用预定的选库规则将数据写入门店ID对应的数据库中,由此进一步减小单个数据库中的数据量,并使得同一门店ID对应的数据保存至同一数据库。
参见图6,所述步骤S422可以包括步骤S422a~S422b。
步骤S422a:将所述redis数据库中所述第二业务模块写入的数据对应的idx除以M得到的余数记为b;所述idx是所述数据的唯一标识,用正整数表示,所述第0库至所述第N-1库均包括表结构相同的第0表至第M-1表,M是大于1的正整数,b是非负整数。
M是每个库中表的数量,由于b是idx除以M得到的余数,因此b是小于M的非负整数。核心数据库中的每张表的表结构相同,且每张表设置有agentId(门店Id)和idx这两个字段,每张表可以进一步分为0表、1表、…、M-1表等,还可以按照表单类型将每个表单类型对应的表都分为0表、1表、…、M-1表等。表单类型例如是运单、短信发送记录、扫描记录等。核心数据库中的表例如是:agent_ship0(运单0表)、agent_ship1(运单1表)、agent_sms_record0(短信发送记录0表)、agent_sms_record1(短信发送记录1表)、agent_scan_arrive_record0(扫描记录0表)、agent_scan_arrive_record1(扫描记录1表)等。其中idx是一行数据的唯一标识,该标识的产生方式可以采用雪花算法产生,雪花算法的核心是把时间戳、服务器机器ID、序列号组合在一起,整体上按照时间自增排序,好处是整个分布式***内不会产生ID碰撞(由datacenter和服务器机器ID作区分),并且效率较高。idx可以作为每张表的主键。将数据保存至core库时,通过Sharding-JDBC配置好的选库规则及选表规则,来确定数据最终保存到对应的core库中的某一个库某一个表。
步骤S422b:将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表。
将单表拆分为多个表,利用预定的选表规则将数据写入idx对应的表中,进一步减小单表数据量,提高数据库的性能。
进一步优选地,所述第0库至所述第N-1库均包括表结构相同且与每个表单类型相对应的第0表至第M-1表;所述步骤S422b可以包括将所述redis数据库中所述第二业务模块写入的数据写入第a库中与所写入的数据的表单类型相对应的第b表。将数据按照表单类型写入对应表中,表单类型例如是运单表、短信发送记录、扫描记录表等,进一步减小单表数据量,提高数据库的性能。
M例如是2、3、4等。当M=2时,将一行数据的idx除以2的余数b是0、1中的一个,根据余数b的取值将该行数据放入对应的第b表中。例如当一行数据的idx除以2的余数b是0时,将该行数据被写入第0表;当一行数据的idx除以2的余数b是1时,将该行数据被写入第1表。
参见图7,第三实施例提供了一种数据处理方法,在第二实施例的基础上,所述方法还可以包括步骤S500:每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,将所述底层数据库中预定表的增量数据同步至所述搜索服务器。
预定时长是预先设定的时长,例如是15秒、1分钟、5分钟等。预定表是预先指定的表,例如是核心数据库中的表,如agent_ship0(运单0表)、agent_ship1(运单1表)、agent_sms_record0(短信发送记录0表)、agent_sms_record1(短信发送记录1表)、agent_scan_arrive_record0(扫描记录0表)、agent_scan_arrive_record1(扫描记录1表)等。
具体地,步骤S500可以包括:每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,使用Logstash将所述底层数据库中预定表的增量数据同步至所述搜索服务器。使用Logstash,根据数据的最后更新时间收集各个数据源变动的数据,然后同步至Elasticsearch。定期将增量数据同步至搜索服务器,保持搜索服务器与底层数据库中数据的一致性。
参见图8,第四实施例提供了一种数据处理装置10,包括同步模块100、读取模块200,同步模块100与读取模块200进行数据交互。
同步模块100用于将底层数据库中的数据同步至搜索服务器。优选地,所述同步模块100还用于每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,将所述底层数据库中预定表的增量数据同步至所述搜索服务器。
读取模块200用于响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。业务模块例如是***菜单模块、门店信息模块、短信模版模块、费率维护模块、运单模块、短信发送记录模块、扫描记录模块等,其名称可以是业务模块201、业务模块202、业务模块203等。
继续参见图8,所述数据处理装置10还可以包括写入模块300,写入模块300分别与同步模块100、读取模块200进行数据交互。
具体地,参见图9,所述写入模块300可以包括一次写入子模块310、二次写入子模块320,一次写入子模块310与二次写入子模块320进行数据交互。
一次写入子模块310用于响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库。
二次写入子模块320用于将所述redis数据库中的数据写入所述底层数据库。
具体地,参见图10,所述读取模块200可以包括第一读取子模块210、第二读取子模块220,第一读取子模块210与第二读取子模块220进行数据交互。
第一读取子模块210用于响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块。
第二读取子模块220用于响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。
优选地,所述底层数据库可以包括基类数据库和核心数据库。
具体地,参见图11,所述二次写入子模块320可以包括基类写入单元321、核心写入单元322,基类写入单元321与核心写入单元322进行数据交互。
基类写入单元321用于将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库。
核心写入单元322用于将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。
具体地,参见图12,所述核心写入单元322可以包括选库子单元3221、写入子单元3222,选库子单元3221与写入子单元3222进行数据交互。
选库子单元3221用于将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数。
写入子单元3222用于将所述redis数据库中所述第二业务模块写入的数据写入第a库。
具体地,参见图13,所述写入子单元3222可以包括选表部分3222a、写入部分3222b,选表部分3222a与写入部分3222b进行数据交互。
选表部分3222a用于将所述redis数据库中所述第二业务模块写入的数据对应的idx除以M得到的余数记为b;所述idx是所述数据的唯一标识,用正整数表示,所述第0库至所述第N-1库均包括表结构相同的第0表至第M-1表,M是大于1的正整数,b是非负整数。
写入部分3222b用于将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表。
优选地,所述第0库至所述第N-1库均包括表结构相同且与每个表单类型相对应的第0表至第M-1表,所述写入部分3222b可以用于将所述redis数据库中所述第二业务模块写入的数据写入第a库中与所写入的数据的表单类型相对应的第b表。
第五实施例提供了一种电子设备,该电子设备包括处理器和存储器,处理器执行存储器存储的计算机指令,使得电子设备执行上述任一项数据处理方法。
第六实施例提供了一种计算机存储介质,该计算机存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述任一项数据处理方法。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,其设置有的实用进步性,已符合专利法所强调的功能增进及使用要件,本申请以上的说明及附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
将底层数据库中的数据同步至搜索服务器;
响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。
2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库;
将所述redis数据库中的数据写入所述底层数据库;
所述响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块,包括:
响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;
响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。
3.根据权利要求2所述的数据处理方法,其特征在于,所述底层数据库包括基类数据库和核心数据库;
所述将所述redis数据库中的数据写入所述底层数据库,包括:
将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库;
将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。
4.根据权利要求3所述的数据处理方法,其特征在于,所述将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库,包括:
将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数;
将所述redis数据库中所述第二业务模块写入的数据写入第a库。
5.根据权利要求4所述的数据处理方法,其特征在于,所述将所述redis数据库中所述第二业务模块写入的数据写入第a库,包括:
将所述redis数据库中所述第二业务模块写入的数据对应的idx除以M得到的余数记为b;所述idx是所述数据的唯一标识,用正整数表示,所述第0库至所述第N-1库均包括表结构相同的第0表至第M-1表,M是大于1的正整数,b是非负整数;
将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表。
6.根据权利要求5所述的数据处理方法,其特征在于,所述第0库至所述第N-1库均包括表结构相同且与每个表单类型相对应的第0表至第M-1表;
所述将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表,包括:
将所述redis数据库中所述第二业务模块写入的数据写入第a库中与所写入的数据的表单类型相对应的第b表。
7.根据权利要求5所述的数据处理方法,其特征在于,还包括:
每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,将所述底层数据库中预定表的增量数据同步至所述搜索服务器。
8.一种数据处理装置,其特征在于,包括:
同步模块,用于将底层数据库中的数据同步至搜索服务器;
读取模块,用于响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器执行所述存储器存储的计算机指令,使得所述电子设备执行权利要求1至7任一项所述的数据处理方法。
10.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求1至7任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272135.9A CN111400406B (zh) | 2020-04-09 | 2020-04-09 | 数据处理方法及装置、电子设备、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272135.9A CN111400406B (zh) | 2020-04-09 | 2020-04-09 | 数据处理方法及装置、电子设备、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400406A true CN111400406A (zh) | 2020-07-10 |
CN111400406B CN111400406B (zh) | 2023-05-12 |
Family
ID=71433106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010272135.9A Active CN111400406B (zh) | 2020-04-09 | 2020-04-09 | 数据处理方法及装置、电子设备、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400406B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930543A (zh) * | 2020-09-23 | 2020-11-13 | 北京精准沟通传媒科技股份有限公司 | 项目管理中间件、项目管理方法以及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930472A (zh) * | 2010-09-09 | 2010-12-29 | 南京中兴特种软件有限责任公司 | 一种支持分布式数据库基于并行查询的方法 |
CN103473696A (zh) * | 2013-09-03 | 2013-12-25 | 周吉 | 一种收集、分析和分发网络商业信息的方法和*** |
US20180336255A1 (en) * | 2017-05-19 | 2018-11-22 | Ubtech Robotics Corp | Data interaction method and device thereof |
CN110191168A (zh) * | 2019-05-23 | 2019-08-30 | 北京百度网讯科技有限公司 | 在线业务数据的处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-04-09 CN CN202010272135.9A patent/CN111400406B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930472A (zh) * | 2010-09-09 | 2010-12-29 | 南京中兴特种软件有限责任公司 | 一种支持分布式数据库基于并行查询的方法 |
CN103473696A (zh) * | 2013-09-03 | 2013-12-25 | 周吉 | 一种收集、分析和分发网络商业信息的方法和*** |
US20180336255A1 (en) * | 2017-05-19 | 2018-11-22 | Ubtech Robotics Corp | Data interaction method and device thereof |
CN110191168A (zh) * | 2019-05-23 | 2019-08-30 | 北京百度网讯科技有限公司 | 在线业务数据的处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
王亚玲;杨超;章名尚;: "数据库***应用分片中间件" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930543A (zh) * | 2020-09-23 | 2020-11-13 | 北京精准沟通传媒科技股份有限公司 | 项目管理中间件、项目管理方法以及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111400406B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818115B (zh) | 一种处理数据表的方法及装置 | |
US9953102B2 (en) | Creating NoSQL database index for semi-structured data | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
US11372568B2 (en) | System and method for storing and accessing blockchain data | |
CN102193990A (zh) | 一种图形数据库及其实现方法 | |
US5742809A (en) | Database generic composite structure processing system | |
CN111400406B (zh) | 数据处理方法及装置、电子设备、计算机存储介质 | |
CN112131214A (zh) | 数据写入、数据查询的方法、***、设备和存储介质 | |
CN114003614A (zh) | 一种数据同步装置、方法、网上交易***、计算机设备和存储介质 | |
CN112035524A (zh) | 列表数据查询方法、装置、计算机设备及可读存储介质 | |
CN114185934B (zh) | 一种基于天盾数据库列存储的索引及查询方法及*** | |
CN111061759A (zh) | 数据查询方法及装置 | |
CN115470243A (zh) | 一种数据处理加速的方法与装置 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN113761053A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN111913973A (zh) | 一种数据同步方法、装置及存储介质 | |
CN114911824A (zh) | 基于查询树的数据库中间件跨节点Join查询方法 | |
CN111444198B (zh) | 一种基于中心化块链式账本的交易存储、查询方法 | |
CN112597191B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN116028504B (zh) | 一种数据湖元数据管理方法及装置 | |
CN117235179A (zh) | 基于sqoop的数据同步方法、装置、计算机设备及存储介质 | |
CN112434088A (zh) | 一种数据高效检索方法 | |
CN117033381A (zh) | 多副本数据存储方法、装置、设备及介质 | |
CN113312382A (zh) | 一种用于数据库分页查询的方法、装置及*** | |
CN117520349A (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 |