CN112434015B - 数据存储的方法、装置、电子设备及介质 - Google Patents
数据存储的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN112434015B CN112434015B CN202011423915.5A CN202011423915A CN112434015B CN 112434015 B CN112434015 B CN 112434015B CN 202011423915 A CN202011423915 A CN 202011423915A CN 112434015 B CN112434015 B CN 112434015B
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- storage
- key
- database
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and 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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
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)
- Computing Systems (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
技术领域
本申请中涉及数据通信技术,尤其是一种数据存储的方法、装置、电子设备及介质。
背景技术
由于通信时代和社会的兴起,数据访问技术已经随着越来越多的用户在使用互联网而不断发展。
进一步的,随着计算机技术的发展,数据的数量也在呈几何式的上涨。尤其是业务量高发的时间段上,如何保证大量的高并发写入的数据的准确性以及稳定性是非常关键的。相关技术中,通常是采用将数据存储到数据库的形式实现数据的传输访问。
然而,相关技术中当需要处理的数据量很大或者数据库中现有数据量很大的时候,频繁的数据读取会对数据库造成很大的压力,从而会导致数据库出现宕机等情况。
发明内容
本申请实施例提供一种数据存储的方法、装置、电子设备及介质,本申请实施例用于解决相关技术中存在频繁的数据读取会对数据库造成很大的压力,从而会导致数据库出现宕机的问题。
其中,根据本申请实施例的一个方面,提供的一种数据存储的方法,其特征在于,应用于用于数据分发的服务器中,包括:
获取待存储数据,所述待存储数据中携带有存储标识;
若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;
将所述待存储数据拼装成包含第一键值对的数据对象;
将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中。
可选地,在基于本申请上述方法的另一个实施例中,所述基于所述存储标识,确定所述待存储数据用于存储到目标数据库,包括:
解析所述存储标识,获取所述待存储数据的数据类型,和/或,数据容量;
基于预设的匹配策略,确定所述数据类型,和/或,所述数据容量对应的存储对象是否为所述目标数据库。
可选地,在基于本申请上述方法的另一个实施例中,所述获取所述待存储数据的第一关联关系,包括:
获取所述待存储数据所在的目标业务板块;
将所述目标业务板块中,在第一历史时间段的读取频率大于预设阈值的业务数据作为所述待存储数据的第一关联数据;
基于所述待存储数据的第一关联数据,建立所述待存储数据的第一关联关系。
可选地,在基于本申请上述方法的另一个实施例中,所述获取所述待存储数据的第一关联关系,包括:
将在第二历史时间段中,与所述待存储数据发生过业务交互的数据作为所述待存储数据的第二关联数据;
基于所述待存储数据的第二关联数据,建立所述待存储数据的第一关联关系。
可选地,在基于本申请上述方法的另一个实施例中,所述将所述待存储数据拼装成包含第一键值对的数据对象,包括:
确定所述待存储数据原始所在的第一存储对象,所述存储对象对应于存储列表以及存储数据库的其中至少一种;
确定所述待存储数据的关联数据所在的第二存储对象;
生成所述第一键值对,其中所述第一键值对的主键为根据所述第一存储对象的名称信息生成的,所述第一键值对的副键为根据所述第二存储对象的名称信息生成的;
将所述待存储数据拼装成包含所述第一键值对的数据对象。
可选地,在基于本申请上述方法的另一个实施例中,所述将所述待存储数据拼装成包含第一键值对的数据对象,包括:
确定所述待存储数据的等级指标,所述等级指标用于反映所述待存储数据的业务重要性;
生成第二键值对,其中所述第二键值对的主键为根据所述待存储数据的等级指标生成的;
将所述待存储数据拼装成包含所述第二键值对的数据对象。
可选地,在基于本申请上述方法的另一个实施例中,所述确定所述待存储数据的等级指标,包括:
解析所述待存储数据,确定所述待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种;
基于所述待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种,确定所述待存储数据的等级指标。
可选地,在基于本申请上述方法的另一个实施例中,所述分布式键值对数据库包括Aerospike数据库,Hazelcast数据库,Memcached数据库,Microsoft Azure Cosmos DB数据库以及Redis数据库的至少任意一种。
其中,根据本申请实施例的一个方面,提供的一种数据存储的方法装置,其特征在于,应用于用于数据分发的服务器中,包括:
获取模块,被配置为获取待存储数据,所述待存储数据中携带有存储标识;
确定模块,被配置为若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;
拼装模块,被配置为将所述待存储数据拼装成包含第一键值对的数据对象;
存储模块,被配置为将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中。
根据本申请实施例的又一个方面,提供的一种电子设备,包括:
存储器,用于存储可执行指令;以及
显示器,用于与所述存储器显示以执行所述可执行指令从而完成上述任一所述数据存储的方法的操作。
根据本申请实施例的还一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行上述任一所述数据存储的方法的操作。
本申请中,可以获取待存储数据,待存储数据中携带有存储标识,并若基于存储标识,确定待存储数据用于存储到目标数据库,获取记录有待存储数据的关联数据的第一关联关系,再将待存储数据拼装成包含第一键值对的数据对象,以使后续将数据对象以及第一关联关系存储到分布式键值对数据库中。通过应用本申请的技术方案,可以在检测到当前存在待存储数据时,可以首先不直接将该数据直接存储至数据库中,而是对其携带的存储标识进行解析,进而确定该数据的存储目的地。可以理解的,如果该数据用于存储到目标数据库时,可以根据该数据库的运行压力等因素选择是否将其缓存到分布式键值对数据库中,从而实现减轻数据库的压力的目的。
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1为本申请提出的Redis分布式Key-Value数据库的系统架构示意图;
图2为本申请提出的一种数据存储的方法示意图;
图3为本申请提出的一种数据存储的方法流程图;
图4为本申请数据存储的方法电子装置的结构示意图;
图5为本申请显示电子设备结构示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,本申请各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
需要说明的是,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
下面结合图1-图3来描述根据本申请示例性实施方式的用于进行数据存储的方法。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
图1示出了可以应用本申请实施例的其中一种分布式键值对数据库的业务系统架构,即Redis分布式键值对Key-Value数据库的系统架构示意图。
由图1可以看出,Redis集群是一个开源的底层使用c语言编写的key-value的内存数据库,具有丰富的数据结构,读写性能非常高,使其可以在很多方面用来构建高速缓存。对于客户端中待存储的待缓存数据,各条数据之间相互独立,完全没有依赖关系,Redis可以将每一条数据构建成一个或者多个key-value键值对在Redis中单独存储,当需要进行数据访问的时候,也可以通过需要访问的数据的key来获取该条数据。
进一步的,本申请还提出一种数据存储的方法、装置、目标终端及介质。
图2示意性地示出了根据本申请实施方式的一种数据存储的方法的流程示意图。如图2所示,该方法应用于用于数据分发的服务器中,包括:
S101,获取待存储数据,待存储数据中携带有存储标识。
首先,本申请不对待存储数据进行具体限定,其该待存储数据中携带有存储标识。其中,该存储标识可以为由用户手动添加的,也可以为根据预设规则而自动生成的。
S102,若基于存储标识,确定待存储数据用于存储到目标数据库,获取待存储数据的第一关联关系,第一关联关系中记录有待存储数据的关联数据。
进一步的,本申请不对目标数据库进行具体限定,一种方式中,该数据库可以为关系型数据库。其中,关系型数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。其中,关系型数据库中存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。常见的关系型数据库有Mysql,SqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,并发量高时关系型数据就会到达瓶颈。
然而,随着系统访问量的增加,当业务数据量越来越高时,关系型数据库的磁盘容量也在不断增加,可以理解的,当海量数据同一时间高并发存储至数据库时,数据库即有可能出现运行缓慢或是系统崩溃等情况。从而影响业务处理的时效性。
为了解决上述存在的问题,本申请实施例即可以在终端生成有待存储数据向目标数据库存储数据的事件时,可以首先不直接将该数据直接存储至数据库中,而是对其携带的存储标识进行解析,进而确定该数据的存储目的地。可以理解的,如果该数据用于存储到目标数据库时,可以根据该数据库的运行压力等因素决定是否将其第一时间存储到该关系型数据库中。
更进一步的,为了能够像关系型数据库一样在分布式键值对数据库中实现关联查询,本申请还需要将待存储数据的对应关联关系进行缓存,因此需要对每个待存储数据的各个依赖关系进行配置,同时将该依赖关系存储到分布式键值对数据库中。
需要说明的是,本申请中第一关联关系中记录有待存储数据的关联数据,其中该关联数据可以为一个,也可以为多个。
S103,将待存储数据拼装成包含第一键值对的数据对象。
其中,本申请在确定待存储数据为存放于目标数据库的数据时,为了减轻目标数据库的压力,提高系统的处理效率,此时本申请可以对这些待存储数据进行缓存。为了上层应用能够在分布式键值对数据库中像在关系型数据库中不仅能够实现对简单数据的存储和访问,也能够实现对依赖关系的存储和访问。本申请需要为该待存储数据生成一个对应的键值对,从而将该待存储数据拼装成包含第一键值对的数据对象。
进一步的,本申请也不对该键值对的生成方式进行具体限定,例如可以为用户手动生成的,也可以为系统根据该待存储数据的属性参数,自动为其生成的。
进一步的,键值对即可以为键值项(Value entry),其中每个键值项可以包括名称,类型和数据三部分。本申请实施例中,也不对键值对的类型进行具体限定,例如可以为字符串值、二进制值、DWORD值等等。
S104,将数据对象以及第一关联关系存储到分布式键值对数据库中。
其中,本申请不对分布式键值对数据库进行具体限定,一种方式中,其可以为Redis分布式集群数据库。又或,也可以为Aerospike数据库,Hazelcast数据库,Memcached数据库,Microsoft Azure Cosmos DB数据库的任意一种等等。
进一步的,Redis分布式集群是C语言开发的一个开源的高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-onlysql,泛指非关系型数据库)的数据库。另外,Redis作为一个内存数据库。其具备性能优秀,数据在内存中,读写速度非常快,支持并发10W QPS;以及单进程单线程,采用IO多路复用机制的方式。从而可以实现支持存储丰富的数据类型,例如支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。除此之外Redis分布式集群还可以支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载等目的。
进一步的,为了提高缓存速率,本申请对每一个需要缓存至Redis数据库的数据对象创建一个新的线程来进行缓存,同时将该线程将入到线程池中进行管理。线程启动的时候,首先根据数据对象,调用数据查询接口获取数据,然后将结果集中的每一条数据根据当前线程缓存的数据信息组装成Redis模型中的key-value键值对,最后将键值对通过Redis管道接口批量插入到Redis中。可选的,本申请还可以同时为每一个主键添加一个随机值的缓存失效时间,避免缓存雪崩。
本申请中,可以获取待存储数据,待存储数据中携带有存储标识,并若基于存储标识,确定待存储数据用于存储到目标数据库,获取记录有待存储数据的关联数据的第一关联关系,再将待存储数据拼装成包含第一键值对的数据对象,以使后续将数据对象以及第一关联关系存储到分布式键值对数据库中。通过应用本申请的技术方案,可以在检测到当前存在待存储数据时,可以首先不直接将该数据直接存储至数据库中,而是对其携带的存储标识进行解析,进而确定该数据的存储目的地。可以理解的,如果该数据用于存储到目标数据库时,可以根据该数据库的运行压力等因素选择是否将其缓存到分布式键值对数据库中,从而实现减轻数据库的压力的目的。
可选的,在本申请一种可能的实施方式中,在S102(基于存储标识,确定待存储数据用于存储到目标数据库)中,可以通过以下方式确定:
解析存储标识,获取待存储数据的数据类型,和/或,数据容量;
基于预设的匹配策略,确定数据类型,和/或,数据容量对应的存储对象是否为目标数据库。
进一步的,本申请中在确定存储数据的存储目的地的方式中,也可以根据该数据对应的数据类型来确定。可以理解的,例如本申请可以检测待存储数据的业务数据类型,如果其业务数据类型对应于用户安全业务,用户支付业务等时,即可以确定该待存储数据的存储目的地确定为目标数据库。
又或,本申请也可以检测待存储数据的数据属性类型,如果该数据类型对应于线性表、栈和队列、数组等属性类型时,即可以确定该待存储数据的存储目的地为目标数据库。而当该数据类型对应于树结构、图结构、广义表、稀疏矩阵、文件结构等时。则将该待存储数据的存储目的地确定为非目标数据库。
更进一步的,本申请中在确定存储数据的存储目的地的方式中,也可以根据该数据对应的数据容量来确定。可以理解的,例如本申请可以检测待存储数据的数据容量,如果其大于预设阈值,即可以确定该待存储数据的存储目的地为目标数据库。又或,也可以在检测到待存储数据的数据容量小于预设阈值的情况下,确定该待存储数据的存储目的地为目标数据库。
可选的,在本申请一种可能的实施方式中,在S102(获取待存储数据的第一关联关系)中,可以通过以下两种方式确定:
第一种方式:
获取待存储数据所在的目标业务板块;
将目标业务板块中,在第一历史时间段的读取频率大于预设阈值的业务数据作为待存储数据的第一关联数据;
基于待存储数据的第一关联数据,建立待存储数据的第一关联关系。
其中,本申请在确定该待存储数据的关联关系的过程中,可以通过该数据对应的关联数据来确定。其中,一种方式中,可以首先确定待存储数据所在的业务板块,并将历史时间段内,该业务板块中读取频率大于预设阈值的业务数据作为该待存储数据的关联数据。
例如,本申请在获取到待存储数据之后,并确定其所在的业务板块为用户支付业务板块时,即可以调取支付业务板块中,在过去2天内,被用户设备的读取次数超过10次的业务数据A。进一步的,即可将业务数据A作为待存储数据的第一关联数据。并建立二者之间的关联关系。
需要说明的是,本申请不对第一历史时间段进行具体限定,例如可以为一小时,也可以为一天。另外,本申请也不对预设阈值进行具体限定,例如可以为10次/天,也可以为10次/小时等等。
可选的,本申请中也不对第一关联数据的数量进行具体限定,例如可以为一个,也可以为多个。
第二种方式:
将在第二历史时间段中,与待存储数据发生过业务交互的数据作为待存储数据的第二关联数据;
基于待存储数据的第二关联数据,建立待存储数据的第一关联关系。
其中,本申请在确定该待存储数据的关联关系的过程中,也可以通过该数据对应的关联数据来确定。其中,一种方式中,可以首先确定与待存储数据发生过业务交互的数据作为待存储数据的第二关联数据。可选的,本申请中也不对第二关联数据的数量进行具体限定,例如可以为一个,也可以为多个。
需要说明的是,本申请中的业务交互可以包括被用户对象在一次调取的数据集合中,除待存储数据之外的所有其他数据,又或,也可以为与待存储数据所在业务系统中,除待存储数据之外的所有其他数据等等。本申请不对业务交互进行具体限定。
例如,本申请在获取到待存储数据之后,并可以确定在过去一段时间内,所有与其发生过业务交互的数据B。进一步的,即可将业务数据B作为待存储数据的第二关联数据。并建立二者之间的关联关系。需要说明的是,本申请不对第二历史时间段进行具体限定,例如可以为一小时,也可以为一天。
可选的,在本申请一种可能的实施方式中,在S102(将待存储数据拼装成包含第一键值对的数据对象)中,可以通过以下两种方式确定:
第一种方式:
确定待存储数据原始所在的第一存储对象,存储对象对应于存储列表以及存储数据库的其中至少一种;
确定待存储数据的关联数据所在的第二存储对象;
生成第一键值对,其中第一键值对的主键为根据第一存储对象的名称信息生成的,第一键值对的副键为根据第二存储对象的名称信息生成的;
将待存储数据拼装成包含第一键值对的数据对象。
其中,本申请在为待存储数据生成键值对的过程中,可以通过待存储数据原始所在的存储对象以及关联数据所在的存储对象来确定。
例如,以待存储数据原始所在的第一存储对象为表项A,关联数据所在的第二存储对象为表项B为例进行说明:
对于表项A,本申请可以通过主键值来确定该待存储数据所在数据库中唯一的一行记录,因此通过依据其所在存储对象来生成主键进行存储的方式,即可以将该数据的键值对格式为:key:“表名#主键值”。其中,key中包含表名的目的是为了防止不同的表项A中存在主键相同的记录。另外,对于副键值value来说,同样也可以通过依据其所在存储对象的生成副键进行存储的方式来实现。即可以将该数据的键值对格式为:key:“表名#副键值”。其中,key中包含表名的目的是为了防止不同的表项B中存在该副键相同的记录。可以理解的,以待存储数据原始所在的存储对象以及关联数据所在的存储对象来确定该数据的键值对的方式可以在将待存储数据存储到分布式键值对数据库之后,可以随时找到该数据以及与之关联数据的原始出处。从而避免出现当分布式键值对数据库出现宕机的情况下,无法还原数据的问题。
第二种方式:
确定待存储数据的等级指标,等级指标用于反映待存储数据的业务重要性;
生成第二键值对,其中第二键值对的主键为根据待存储数据的等级指标生成的;
将待存储数据拼装成包含第二键值对的数据对象。
进一步的,本申请实施例即可以在将待存储数据存储到分布式键值对数据库之后,可以根据其携带的,用于反映业务重要性的键值对进行解析,进而方便后续批量性的查找同一业务重要性的数据。
可选的,在本申请一种可能的实施方式中,在确定待存储数据的等级指标中,可以通过以下方式确定:
解析待存储数据,确定待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种;
基于待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种,确定待存储数据的等级指标。
其中,本申请在确定待存储数据的等级指标的过程中,可以通过待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种来确定。可以理解的,当该待存储数据对应的生成对象越重要时,其对应的等级指标越高。同样的,当该待存储数据对应的业务等级越重要时,其对应的等级指标越高等等。
进一步的,如图3所示,为本申请提出的一种数据存储的方法的流程图,首先,本申请可以获取待存储数据,其中待存储数据中携带有存储标识,并解析存储标识,获取待存储数据的数据类型,和/或,数据容量;再基于预设的匹配策略,来确定数据类型,和/或,数据容量对应的存储对象是否为该目标数据库。
若确定,一种方式中,可以获取待存储数据所在的目标业务板块;并将目标业务板块中,在第一历史时间段的读取频率大于预设阈值的业务数据作为待存储数据的第一关联数据;再基于待存储数据的第一关联数据,建立待存储数据的第一关联关系。
另一种方式中,可以将在第二历史时间段中,与待存储数据发生过业务交互的数据作为待存储数据的第二关联数据;并基于待存储数据的第二关联数据,建立待存储数据的第一关联关系。
进一步的,可以确定待存储数据原始所在的第一存储对象,存储对象对应于存储列表以及存储数据库的其中至少一种;确定待存储数据的关联数据所在的第二存储对象;生成第一键值对,其中第一键值对的主键为根据第一存储对象的名称信息生成的,第一键值对的副键为根据第二存储对象的名称信息生成的;将待存储数据拼装成包含第一键值对的数据对象。
又或,也可以确定待存储数据的等级指标,等级指标用于反映待存储数据的业务重要性;并生成第二键值对,其中第二键值对的主键为根据待存储数据的等级指标生成的;再将待存储数据拼装成包含第二键值对的数据对象。其中,在确定待存储数据的等级指标的方式中,可以通过解析待存储数据,确定待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种;再基于待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种,确定待存储数据的等级指标。
本申请中,可以获取待存储数据,待存储数据中携带有存储标识,并若基于存储标识,确定待存储数据用于存储到目标数据库,获取记录有待存储数据的关联数据的第一关联关系,再将待存储数据拼装成包含第一键值对的数据对象,以使后续将数据对象以及第一关联关系存储到分布式键值对数据库中。通过应用本申请的技术方案,可以在检测到当前存在待存储数据时,可以首先不直接将该数据直接存储至数据库中,而是对其携带的存储标识进行解析,进而确定该数据的存储目的地。可以理解的,如果该数据用于存储到目标数据库时,可以根据该数据库的运行压力等因素选择是否将其缓存到分布式键值对数据库中,从而实现减轻数据库的压力的目的。
在本申请的另外一种实施方式中,如图4所示,本申请还提供一种数据存储的方法装置。其中,该装置包括获取模块201,确定模块202,拼装模块203,存储模块204,该装置应用于用于数据分发的服务器中,其中,
获取模块201,被配置为获取待存储数据,所述待存储数据中携带有存储标识;
确定模块202,被配置为若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;
拼装模块203,被配置为将所述待存储数据拼装成包含第一键值对的数据对象;
存储模块204,被配置为将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中。
本申请中,可以获取待存储数据,待存储数据中携带有存储标识,并若基于存储标识,确定待存储数据用于存储到目标数据库,获取记录有待存储数据的关联数据的第一关联关系,再将待存储数据拼装成包含第一键值对的数据对象,以使后续将数据对象以及第一关联关系存储到分布式键值对数据库中。通过应用本申请的技术方案,可以在检测到当前存在待存储数据时,可以首先不直接将该数据直接存储至数据库中,而是对其携带的存储标识进行解析,进而确定该数据的存储目的地。可以理解的,如果该数据用于存储到目标数据库时,可以根据该数据库的运行压力等因素选择是否将其缓存到分布式键值对数据库中,从而实现减轻数据库的压力的目的。
在本申请的另一种实施方式中,获取模块201,还包括:
获取模块201,被配置为解析所述存储标识,获取所述待存储数据的数据类型,和/或,数据容量;
获取模块201,被配置为基于预设的匹配策略,确定所述数据类型,和/或,所述数据容量对应的存储对象是否为所述目标数据库。
在本申请的另一种实施方式中,获取模块201,还包括:
获取模块201,被配置为获取所述待存储数据所在的目标业务板块;
获取模块201,被配置为将所述目标业务板块中,在第一历史时间段的读取频率大于预设阈值的业务数据作为所述待存储数据的第一关联数据;
获取模块201,被配置为基于所述待存储数据的第一关联数据,建立所述待存储数据的第一关联关系。
在本申请的另一种实施方式中,获取模块201,还包括:
获取模块201,被配置为将在第二历史时间段中,与所述待存储数据发生过业务交互的数据作为所述待存储数据的第二关联数据;
获取模块201,被配置为基于所述待存储数据的第二关联数据,建立所述待存储数据的第一关联关系。
在本申请的另一种实施方式中,获取模块201,还包括:
获取模块201,被配置为确定所述待存储数据原始所在的第一存储对象,所述存储对象对应于存储列表以及存储数据库的其中至少一种;
获取模块201,被配置为确定所述待存储数据的关联数据所在的第二存储对象;
获取模块201,被配置为生成所述第一键值对,其中所述第一键值对的主键为根据所述第一存储对象的名称信息生成的,所述第一键值对的副键为根据所述第二存储对象的名称信息生成的;
获取模块201,被配置为将所述待存储数据拼装成包含所述第一键值对的数据对象。
在本申请的另一种实施方式中,获取模块201,还包括:
获取模块201,被配置为确定所述待存储数据的等级指标,所述等级指标用于反映所述待存储数据的业务重要性;
获取模块201,被配置为生成第二键值对,其中所述第二键值对的主键为根据所述待存储数据的等级指标生成的;
获取模块201,被配置为将所述待存储数据拼装成包含所述第二键值对的数据对象。
在本申请的另一种实施方式中,获取模块201,还包括:
获取模块201,被配置为解析所述待存储数据,确定所述待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种;
获取模块201,被配置为基于所述待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种,确定所述待存储数据的等级指标。
在本申请的另一种实施方式中,还包括:所述分布式键值对数据库包括Aerospike数据库,Hazelcast数据库,Memcached数据库,Microsoft Azure Cosmos DB数据库以及Redis数据库的至少任意一种。
图5是根据一示例性实施例示出的一种电子设备的逻辑结构框图。例如,电子设备300可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备处理器执行以完成上述网络监控的方法,该方法包括:获取待存储数据,所述待存储数据中携带有存储标识;若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;将所述待存储数据拼装成包含第一键值对的数据对象;将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中。可选地,上述指令还可以由电子设备的处理器执行以完成上述示例性实施例中所涉及的其他步骤。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种应用程序/计算机程序产品,包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行,以完成上述网络监控的方法,该方法包括:获取待存储数据,所述待存储数据中携带有存储标识;若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;将所述待存储数据拼装成包含第一键值对的数据对象;将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中。可选地,上述指令还可以由电子设备的处理器执行以完成上述示例性实施例中所涉及的其他步骤。
图5为计算机设备30的示例图。本领域技术人员可以理解,示意图5仅仅是计算机设备30的示例,并不构成对计算机设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备30还可以包括输入输出设备、网络接入设备、总线等。
所称处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,处理器302是计算机设备30的控制中心,利用各种接口和线路连接整个计算机设备30的各个部分。
存储器301可用于存储计算机可读指令303,处理器302通过运行或执行存储在存储器301内的计算机可读指令或模块,以及调用存储在存储器301内的数据,实现计算机设备30的各种功能。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备30的使用所创建的数据等。此外,存储器301可以包括硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)或其他非易失性/易失性存储器件。
计算机设备30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据存储的方法,其特征在于,应用于用于数据分发的服务器中,包括:
获取待存储数据,所述待存储数据中携带有存储标识;
若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;
将所述待存储数据拼装成包含第一键值对的数据对象;
将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中;
所述将所述待存储数据拼装成包含第一键值对的数据对象,包括:
确定所述待存储数据原始所在的第一存储对象,所述存储对象对应于存储列表以及存储数据库的其中至少一种;
确定所述待存储数据的关联数据所在的第二存储对象;
生成第一键值对,其中所述第一键值对的主键为根据所述第一存储对象的名称信息生成的,所述第一键值对的副键为根据所述第二存储对象的名称信息生成的;
将所述待存储数据拼装成包含所述第一键值对的数据对象。
2.如权利要求1所述的方法,其特征在于,所述基于所述存储标识,确定所述待存储数据用于存储到目标数据库,包括:
解析所述存储标识,获取所述待存储数据的数据类型,和/或,数据容量;
基于预设的匹配策略,确定所述数据类型,和/或,所述数据容量对应的存储对象是否为所述目标数据库。
3.如权利要求1所述的方法,其特征在于,所述获取所述待存储数据的第一关联关系,包括:
获取所述待存储数据所在的目标业务板块;
将所述目标业务板块中,在第一历史时间段的读取频率大于预设阈值的业务数据作为所述待存储数据的第一关联数据;
基于所述待存储数据的第一关联数据,建立所述待存储数据的第一关联关系。
4.如权利要求1或3所述的方法,其特征在于,所述获取所述待存储数据的第一关联关系,包括:
将在第二历史时间段中,与所述待存储数据发生过业务交互的数据作为所述待存储数据的第二关联数据;
基于所述待存储数据的第二关联数据,建立所述待存储数据的第一关联关系。
5.如权利要求1所述的方法,其特征在于,所述将所述待存储数据拼装成包含第一键值对的数据对象,包括:
确定所述待存储数据的等级指标,所述等级指标用于反映所述待存储数据的业务重要性;
生成第二键值对,其中所述第二键值对的主键为根据所述待存储数据的等级指标生成的;
将所述待存储数据拼装成包含所述第二键值对的数据对象。
6.如权利要求5所述的方法,其特征在于,所述确定所述待存储数据的等级指标,包括:
解析所述待存储数据,确定所述待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种;
基于所述待存储数据对应的生成对象、业务等级以及业务处理剩余时限的至少一种,确定所述待存储数据的等级指标。
7.如权利要求1所述的方法,其特征在于,所述分布式键值对数据库包括Aerospike数据库,Hazelcast数据库,Memcached数据库,Microsoft Azure Cosmos DB数据库以及Redis数据库的至少任意一种。
8.一种数据存储的装置,其特征在于,应用于用于数据分发的服务器中,包括:
获取模块,被配置为获取待存储数据,所述待存储数据中携带有存储标识;
确定模块,被配置为若基于所述存储标识,确定所述待存储数据用于存储到目标数据库,获取所述待存储数据的第一关联关系,所述第一关联关系中记录有所述待存储数据的关联数据;
拼装模块,被配置为确定所述待存储数据原始所在的第一存储对象,所述存储对象对应于存储列表以及存储数据库的其中至少一种;确定所述待存储数据的关联数据所在的第二存储对象;生成第一键值对,其中所述第一键值对的主键为根据所述第一存储对象的名称信息生成的,所述第一键值对的副键为根据所述第二存储对象的名称信息生成的;以及将所述待存储数据拼装成包含所述第一键值对的数据对象;
存储模块,被配置为将所述数据对象以及所述第一关联关系存储到分布式键值对数据库中。
9.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;以及,
处理器,用于与所述存储器显示以执行所述可执行指令从而完成权利要求1-7中任一所述数据存储的方法的操作。
10.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1-7中任一所述数据存储的方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011423915.5A CN112434015B (zh) | 2020-12-08 | 2020-12-08 | 数据存储的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011423915.5A CN112434015B (zh) | 2020-12-08 | 2020-12-08 | 数据存储的方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112434015A CN112434015A (zh) | 2021-03-02 |
CN112434015B true CN112434015B (zh) | 2022-08-19 |
Family
ID=74690935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011423915.5A Active CN112434015B (zh) | 2020-12-08 | 2020-12-08 | 数据存储的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112434015B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434501A (zh) * | 2021-06-23 | 2021-09-24 | 平安国际智慧城市科技股份有限公司 | 关系型数据库表的存储方法、设备及可读存储介质 |
CN113468182B (zh) * | 2021-07-14 | 2022-09-20 | 广域铭岛数字科技有限公司 | 一种数据存储方法及系统 |
CN114579061B (zh) * | 2022-04-28 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及介质 |
CN117785889A (zh) * | 2024-02-22 | 2024-03-29 | 支付宝(杭州)信息技术有限公司 | 一种针对图数据库的索引管理方法及相关设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516367A (zh) * | 2016-02-02 | 2016-04-20 | 北京百度网讯科技有限公司 | 分布式数据存储系统、方法和装置 |
WO2016180055A1 (zh) * | 2015-05-12 | 2016-11-17 | 中兴通讯股份有限公司 | 数据存储、读取的方法、装置及系统 |
CN106649335A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN106844374A (zh) * | 2015-12-04 | 2017-06-13 | 北京四维图新科技股份有限公司 | 一种存储、检索照片的方法及装置 |
CN108052550A (zh) * | 2017-11-28 | 2018-05-18 | 平安养老保险股份有限公司 | 年金数据接收方法、装置、计算机设备和存储介质 |
WO2019148720A1 (zh) * | 2018-02-01 | 2019-08-08 | 平安科技(深圳)有限公司 | 电子装置、数据存储方法及存储介质 |
CN110275884A (zh) * | 2019-05-31 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 数据存储方法及节点 |
CN111125089A (zh) * | 2019-11-05 | 2020-05-08 | 远景智能国际私人投资有限公司 | 时序数据存储方法、装置、服务器及存储介质 |
CN111831208A (zh) * | 2019-04-16 | 2020-10-27 | 中移(苏州)软件技术有限公司 | 一种信息处理方法、装置、终端设备及存储介质 |
CN112035472A (zh) * | 2020-08-28 | 2020-12-04 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268834B2 (en) * | 2012-12-13 | 2016-02-23 | Microsoft Technology Licensing, Llc | Distributed SQL query processing using key-value storage system |
-
2020
- 2020-12-08 CN CN202011423915.5A patent/CN112434015B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016180055A1 (zh) * | 2015-05-12 | 2016-11-17 | 中兴通讯股份有限公司 | 数据存储、读取的方法、装置及系统 |
CN106649335A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN106844374A (zh) * | 2015-12-04 | 2017-06-13 | 北京四维图新科技股份有限公司 | 一种存储、检索照片的方法及装置 |
CN105516367A (zh) * | 2016-02-02 | 2016-04-20 | 北京百度网讯科技有限公司 | 分布式数据存储系统、方法和装置 |
CN108052550A (zh) * | 2017-11-28 | 2018-05-18 | 平安养老保险股份有限公司 | 年金数据接收方法、装置、计算机设备和存储介质 |
WO2019148720A1 (zh) * | 2018-02-01 | 2019-08-08 | 平安科技(深圳)有限公司 | 电子装置、数据存储方法及存储介质 |
CN111831208A (zh) * | 2019-04-16 | 2020-10-27 | 中移(苏州)软件技术有限公司 | 一种信息处理方法、装置、终端设备及存储介质 |
CN110275884A (zh) * | 2019-05-31 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 数据存储方法及节点 |
CN111125089A (zh) * | 2019-11-05 | 2020-05-08 | 远景智能国际私人投资有限公司 | 时序数据存储方法、装置、服务器及存储介质 |
CN112035472A (zh) * | 2020-08-28 | 2020-12-04 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
DStore: A Holistic Key-Value Store Exploring Near-Data Processing and On-Demand Scheduling for Compaction Optimization;Hui Sun等;《IEEE Access》;20181004;第61233 - 61253页 * |
NoSQL数据库技术在嵌入式装置中的应用;范三龙等;《工业仪表与自动化装置》;20201015(第05期);第20-24、39页 * |
云存储系统和应用过程中的数据安全性问题与分散式存数;谢斌;《电子制作》;20121015(第10期);第17-18页 * |
基于分布式键值对存储技术的EMS数据库平台;闫湖等;《电网技术》;20120905(第09期);第167-172页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112434015A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112434015B (zh) | 数据存储的方法、装置、电子设备及介质 | |
US9996565B2 (en) | Managing an index of a table of a database | |
RU2458399C2 (ru) | Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов | |
US9875272B1 (en) | Method and system for designing a database system for high event rate, while maintaining predictable query performance | |
US10002170B2 (en) | Managing a table of a database | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
US9477974B2 (en) | Method and systems for flexible and scalable databases | |
US10216782B2 (en) | Processing of updates in a database system using different scenarios | |
US11586585B2 (en) | Method and system for historical call lookup in distributed file systems | |
US11138164B1 (en) | Alter table implementation details with schema versioning | |
US10649964B2 (en) | Incorporating external data into a database schema | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
CN112732751B (zh) | 一种医学数据处理方法、装置、存储介质及设备 | |
CN113986921A (zh) | 一种黑名单查询方法、系统、电子设备及存储介质 | |
US11327986B2 (en) | Retrieving and presenting data in a structured view from a non-relational database | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store | |
US11868349B2 (en) | Row secure table plan generation | |
CN116628042A (zh) | 数据处理方法、装置、设备及介质 | |
CN114385722A (zh) | 接口属性的一致性校验方法、装置、电子设备和存储介质 | |
US20210349902A1 (en) | Database query processing | |
CN117390060A (zh) | 批量数据卸数处理方法、装置、电子设备及可读存储介质 | |
CN117235203A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN117668117A (zh) | 一种用于区块链的数据存储方法、装置、设备及介质 | |
CN113760863A (zh) | 数据库的配置方法、装置、计算机设备和可读存储介质 | |
CN113987322A (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 |