本申请涉及计算机数据存储,特别涉及一种数据存储方法、装置、设备、存储介质及程序产品。
背景技术:
1、分布式存储系统是目前应用广泛的存储系统,通过将数据分散存储在多个独立的设备上,能够克服单台设备的性能瓶颈,从而满足大规模存储的需求。
2、在相关技术中,提供了一种基于hbase流水表的数据存储方案。在hbase中建立一个流水表和一个全量表,流水表保存新的增量数据,全量表保存全量数据。流式数据写入时,直接写入hbase流水表,同时通过hbase的coprocessor(协处理器)机制将数据同步至全量表。在kv(key-value,键值对)中,也分为增量和全量两个部分。其中增量数据保存在内存中,kv不断从hbase流水表中拉取最新的数据合并到内存文件中。全量部分则保存在磁盘,kv定期拉取hbase全量表的hfile文件到本地,并转换成kv格式文件用来提供查询。kv查询时,同时查询增量和全量数据,并根据数据时间戳,返回最终的数据。最后将所有数据同步保存到分布式文件系统中。
3、在数据写入时,对于merger(合并)之类逻辑,需要数据写入前先从hbase中查询出此key(键值)的数据,这个跨机器查询的过程增加了耗时,从而降低了数据存储效率。
技术实现思路
1、本申请实施例提供了一种数据存储方法、装置、设备、存储介质及程序产品。所述技术方案如下:
2、根据本申请实施例的一个方面,提供了一种数据存储方法,应用于分布式存储系统中,所述分布式存储系统包括主存储设备;
3、所述方法包括:
4、所述主存储设备接收来自数据写入方的写入请求,所述写入请求用于请求写入第一数据;
5、所述主存储设备从所述主存储设备的本地数据库中获取所述第一数据对应的关联数据;
6、所述主存储设备将所述第一数据和所述关联数据进行合并,得到合并后数据;
7、所述主存储设备将所述合并后数据写入消息队列,所述主存储设备的本地数据库用于按照策略从所述消息队列中读取所述合并后数据进行存储。
8、根据本申请实施例的一个方面,提供了一种数据存储装置,所述装置包括:
9、写入请求接收模块,用于接收来自数据写入方的写入请求,所述写入请求用于请求写入第一数据;
10、数据获取模块,用于从主存储设备的本地数据库中获取所述第一数据对应的关联数据;
11、数据合并模块,用于将所述第一数据和所述关联数据进行合并,得到合并后数据;
12、数据写入模块,用于将所述合并后数据写入消息队列,所述主存储设备的本地数据库用于按照策略从所述消息队列中读取所述合并后数据进行存储。
13、根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现本申请实施例中至少一个设备所执行的数据存储方法。
14、根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现本申请实施例中至少一个设备所执行的数据存储方法。
15、根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质中读取并执行所述计算机指令,以实现本申请实施例中至少一个设备所执行的数据存储方法。
16、本申请实施例提供的技术方案可以包括如下有益效果:
17、主存储设备获取到数据写入请求之后,通过从主存储设备的本地数据库中获取与待存储数据对应的关联数据,并将待存储数据和对应的关联数据进行合并后写入消息队列。其中,消息队列也位于主存储设备中。接着主存储设备的本地数据库从消息队列中获取合并后数据完成数据的存储。本申请方案中,数据写入过程全程在主存储设备这一个设备中进行,而不需要进行跨机器的数据读写,减少了数据写入过程的耗时,提升了数据存储效率。
1.一种数据存储方法,其特征在于,应用于分布式存储系统中,所述分布式存储系统包括主存储设备;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述主存储设备将所述第一数据和所述关联数据进行合并,得到合并后数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述分布式存储系统还包括至少一个从存储设备;所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述主存储设备将所述第一增量数据发送给所述从存储设备,包括:
5.根据权利要求1所述的方法,其特征在于,所述分布式存储系统还包括请求路由设备;所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述分布式存储系统还包括主从管理设备和至少一个从存储设备;所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述分布式存储系统还包括至少一个从存储设备;所述方法还包括:
9.一种数据存储装置,其特征在于,所述装置包括:
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如权利要求1至8任一项所述的方法中至少一个设备所执行的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求1至8任一项所述的方法中至少一个设备所执行的方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质中读取并执行所述计算机指令,以实现如权利要求1至8任一项所述的方法中至少一个设备所执行的方法。