一种基于海量电子发票数据的分布式存储方法和系统与流程

文档序号:29930741发布日期:2022-05-07 12:46阅读:140来源:国知局
一种基于海量电子发票数据的分布式存储方法和系统与流程

1.本发明涉及数据分布式存储领域,尤其是一种基于海量电子发票数据的分布式存储方法和系统。


背景技术:

2.随着社会的发展,发票在社会经济活动中的意义和作用越来越重要,也越来越受到关注,开票量呈现倍数增加。同时,电子发票的存储管理成为了重中之重。目前采用的存储系统,是使用关系型数据库mysql来保存发票数据。mysql性能优秀,操作简单,是市面上的主流数据存储系统。
3.但是当电子发票的数量成倍增长时,仅单台数据库服务器无法足量存储。需要多台数据库服务器组成集群来提供存储。这样就需要前端介入其他中间件产品来管理数据库集群,造成的后果不仅是在扩容方面比较困难,高可用性更不能保证。如果想实现高可用,需要再引入其他工具来实现。而涉及到的工具越多,维护难度越大。


技术实现要素:

4.为了解决现有技术中处理海量电子发票数据时,多台数据库服务器集群扩容困难,无法保证高可用性等问题,本发明的实施例提供了一种基于海量电子发票数据的分布式存储方法和系统。
5.根据本发明实施例的一个方面,提供了一种基于海量电子发票数据的分布式存储方法,所述方法包括:
6.接收电子发票数据,其中,所述电子发票数据包括发票明细信息;
7.根据接收电子发票数据的时间,生成电子发票数据的数据id;
8.根据电子发票数据的数据id,管理节点从多个存储节点中确定用于存储电子发票数据的存储节点;
9.将电子发票数据存储至确定的存储节点。
10.可选地,在本发明上述各方法实施例中,接收电子发票数据之前还包括:
11.设置存储节点的存储节点标识;
12.设置存储节点待存储的电子发票数据的数据id范围;
13.在管理节点中建立存储节点标识与电子发票数据的数据id的对应关系。
14.可选地,在本发明上述各方法实施例中,所述方法还包括:
15.当需要增加存储节点时,设置拟增加存储节点的存储节点标识;
16.设置拟增加存储节点待存储的电子发票数据的数据id范围;
17.在管理节点中建立拟增加存储节点标识与电子发票数据的数据id的对应关系。
18.可选地,在本发明上述各方法实施例中,根据接收电子发票数据的时间,生成电子发票数据的数据id是指基于接收电子发票数据的时间,根据雪花算法生成电子发票数据的唯一标识。
19.可选地,在本发明上述各方法实施例中,将电子发票数据存储至确定的存储节点包括:
20.将电子发票数据存储至确定的存储节点时,电子发票数据以key-value键值对形式存储,其中,key值为电子发票数据的数据id,value为电子发票数据的发票明细信息。
21.可选地,在本发明上述各方法实施例中,所述方法还包括采用多副本模式,基于分布式一致性raft协议接收、存储和同步电子发票数据,其中,将管理节点确定的用于存储电子发票数据的节点作为raftleader节点,将除管理节点确定的用于存储电子发票数据的节点以外的其他存储节点作为raftfollower节点,raftleader节点负责接收并存储电子发票数据,同时生成存储日志,以及将存储日志复制到raftfollower节点,当有1/2以上raftfollower节点成功接收并存储日志,电子发票数据存储成功。
22.根据本发明实施例的另一个方面,提供了一种基于海量电子发票数据的分布式存储系统,所述系统包括:
23.数据接收单元,用于接收电子发票数据,其中,所述电子发票数据包括发票明细信息;
24.数据id单元,用于根据接收电子发票数据的时间,生成电子发票数据的数据id;
25.管理节点,用于根据电子发票数据的数据id,从多个存储节点中确定用于存储电子发票数据的存储节点;
26.存储节点,用于存储电子发票数据。
27.可选地,在本发明上述各装置实施例中,管理节点还用于:
28.设置存储节点的存储节点标识;
29.设置存储节点待存储的电子发票数据的数据id范围;
30.在管理节点中建立存储节点标识与电子发票数据的数据id的对应关系。
31.可选地,在本发明上述各装置实施例中,管理节点还用于:
32.当需要增加存储节点时,设置拟增加存储节点的存储节点标识;
33.设置拟增加存储节点待存储的电子发票数据的数据id范围;
34.在管理节点中建立拟增加存储节点标识与电子发票数据的数据id的对应关系。
35.可选地,在本发明上述各装置实施例中,数据id单元根据接收电子发票数据的时间,生成电子发票数据的数据id是指基于接收电子发票数据的时间,根据雪花算法生成电子发票数据的唯一标识。
36.可选地,在本发明上述各装置实施例中,存储节点存储电子发票数据包括:
37.将电子发票数据存储至确定的存储节点时,电子发票数据以key-value键值对形式存储,其中,key值为电子发票数据的数据id,value为电子发票数据的发票明细信息。
38.可选地,在本发明上述各装置实施例中,所述系统采用多副本模式,基于分布式一致性raft协议接收、存储和同步电子发票数据,其中,将管理节点确定的用于存储电子发票数据的节点作为raftleader节点,将除管理节点确定的用于存储电子发票数据的节点以外的其他存储节点作为raftfollower节点,raftleader节点负责接收并存储电子发票数据,同时生成存储日志,以及将存储日志复制到raftfollower节点,当有1/2以上raftfollower节点成功接收并存储日志,电子发票数据存储成功。
39.基于本发明上述实施例提供的基于海量电子发票数据的分布式存储方法和系统,
所述方法包括:接收电子发票数据,其中,所述电子发票数据包括发票明细信息;根据接收电子发票数据的时间,生成电子发票数据的数据id;根据电子发票数据的数据id,管理节点从多个存储节点中确定用于存储电子发票数据的存储节点;将电子发票数据存储至确定的存储节点。进一步地,所述方法还采用多副本模式,基于raft协议接收、存储和同步电子发票数据。所述方法和系统的有益效果包括:采用数据id这一唯一标识对接收的电子发票数据进行排序,方便了后续的数据查找和梳理;采用key-value的键值对结构存储数据,占用的存储空间更小,存储及索引更方便;将节点拆分为管理节点和存储节点,方便了当存储节点容易不足,需要扩容时,在管理节点添加新扩容的存储节点以及与存储节点对应的数据id的范围就能实现存储节点的灵活扩容;而采用多副本模式,通过raft协议接收、存储和同步数据则在有1/2以下节点宕机时,对系统没有影响,从而实现了系统的高可用性。进一步地,在存储节点的选择上,使用固态硬盘代替传统的机械硬盘,能使读写速度是原有的4倍左右,从而极大的改善发票数据存储的效率。
40.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
41.通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
42.图1是本发明一示例性实施例提供的基于海量电子发票数据的分布式存储方法的流程示意图;
43.图2是本发明一示例性实施例提供的基于海量电子发票数据的分布式存储系统的结构示意图。
具体实施方式
44.下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。
45.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
46.本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
47.还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
48.还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
49.另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
50.还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
51.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
52.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
53.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
54.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
55.本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
56.终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
57.示例性方法
58.图1是本发明一示例性实施例提供的基于海量电子发票数据的分布式存储方法的流程示意图。本实施例可应用在电子设备上,如图1所示,本实施例所述文本分类模型增量训练与持续部署的方法包括以下步骤:
59.在步骤101,接收电子发票数据,其中,所述电子发票数据包括发票明细信息。
60.可选地,接收电子发票数据之前还包括:
61.设置存储节点的存储节点标识;
62.设置存储节点待存储的电子发票数据的数据id范围;
63.在管理节点中建立存储节点标识与电子发票数据的数据id的对应关系。
64.可选地,所述方法还包括所述方法还包括:
65.当需要增加存储节点时,设置拟增加存储节点的存储节点标识;
66.设置拟增加存储节点待存储的电子发票数据的数据id范围;
67.在管理节点中建立拟增加存储节点标识与电子发票数据的数据id的对应关系。
68.在一个实施例中,存在2个管理节点,10个存储节点。每个存储节点中提前设置了存储节点标识和待存储的电子发票数据的数据id范围,并在管理节点中建立了存储节点标识与电子发票数据的数据id的对应关系。而当接收电子发票数据过多,导致存储容易不够
时,则可以根据需要继续增加存储节点,比如2个,以及增加的存储节点待存储的电子发票数据的数据id范围,并且在管理节点中建立拟增加存储节点标识与电子发票数据的数据id的对应关系。通过建立管理节点和存储节点的双节点结构,实现了存储系统的灵活扩容。
69.在步骤102,根据接收电子发票数据的时间,生成电子发票数据的数据id。
70.可选地,根据接收电子发票数据的时间,生成电子发票数据的数据id是指基于接收电子发票数据的时间,根据雪花算法生成电子发票数据的唯一标识。
71.在一个实施例中,当接收到电子发票数据的时间为2021年12月24日12时25分17秒,那么根据雪花算法,可以将该时间和随机数的组合生成一个数据id20211224122517******作为电子发票的唯一标识,从而保证了发票数据的唯一性,也方便了后续进行查询和梳理。
72.在步骤103,根据电子发票数据的数据id,管理节点从多个存储节点中确定用于存储电子发票数据的存储节点。
73.在一个实施例中,当接收到新的电子发票数据时,通过生成的电子发票数据的数据id,先在管理节点查询存储节点标识与数据id范围的对应关系,从而确定存储电子发票数据的存储节点。
74.在步骤104,将电子发票数据存储至确定的存储节点。
75.可选地,将电子发票数据存储至确定的存储节点包括:
76.将电子发票数据存储至确定的存储节点时,电子发票数据以key-value键值对形式存储,其中,key值为电子发票数据的数据id,value为电子发票数据的发票明细信息。
77.在一个实施例中,由于现有技术中b+tree数据结构是关系型数据库的固定结构,有稳定的存储格式和存储流程,因此将b+tree数据结构更换为key-value的键值对结构后,占用的存储空间更小,存储及索引更方便。测试发现,相同批量的电子发票数据存储,key-value结构占用空间,约为之前关系型数据库系统存储空间的五分之一。
78.可选地,所述方法还包括采用多副本模式,基于分布式一致性raft协议接收、存储和同步电子发票数据,其中,将管理节点确定的用于存储电子发票数据的节点作为raftleader节点,将除管理节点确定的用于存储电子发票数据的节点以外的其他存储节点作为raftfollower节点,raftleader节点负责接收并存储电子发票数据,同时生成存储日志,以及将存储日志复制到raftfollower节点,当有1/2以上raftfollower节点成功接收并存储日志,电子发票数据存储成功。
79.在一个实施例中,采用aft协议存储数据保证了在部分节点宕机后,其他节点仍然能正常使用,实现了存储方法的高可用性。
80.示例性系统
81.图2是本发明一示例性实施例提供的基于海量电子发票数据的分布式存储系统的结构示意图。如图2所示,本实施例所述的基于海量电子发票数据的分布式存储系统包括:
82.数据接收单元201,用于接收电子发票数据,其中,所述电子发票数据包括发票明细信息;
83.数据id单元202,用于根据接收电子发票数据的时间,生成电子发票数据的数据id;
84.管理节点203,用于根据电子发票数据的数据id,从多个存储节点中确定用于存储
电子发票数据的存储节点;
85.存储节点204,用于存储电子发票数据。
86.可选地,管理节点203还用于:
87.设置存储节点的存储节点标识;
88.设置存储节点待存储的电子发票数据的数据id范围;
89.在管理节点中建立存储节点标识与电子发票数据的数据id的对应关系。
90.可选地,管理节点203还用于:
91.当需要增加存储节点时,设置拟增加存储节点的存储节点标识;
92.设置拟增加存储节点待存储的电子发票数据的数据id范围;
93.在管理节点中建立拟增加存储节点标识与电子发票数据的数据id的对应关系。
94.可选地,数据id单元202根据接收电子发票数据的时间,生成电子发票数据的数据id是指基于接收电子发票数据的时间,根据雪花算法生成电子发票数据的唯一标识。
95.可选地,存储节点204存储电子发票数据包括:
96.将电子发票数据存储至确定的存储节点时,电子发票数据以key-value键值对形式存储,其中,key值为电子发票数据的数据id,value为电子发票数据的发票明细信息。
97.可选地,所述系统采用多副本模式,基于分布式一致性raft协议接收、存储和同步电子发票数据,其中,管理节点将确定的主存储节点作为raftleader节点,将除主存储节点以外的其他存储节点作为raftfollower节点,raftleader节点负责接收并存储电子发票数据,同时生成存储日志,以及将存储日志复制到raftfollower节点,当有1/2以上raftfollower节点成功接收并存储日志,电子发票数据存储成功。
98.示例性计算机程序产品和计算机可读存储介质
99.除了上述方法和装置以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的基于海量电子发票数据的分布式存储方法中的步骤。
100.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
101.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的基于海量电子发票数据的分布式存储方法中的步骤。
102.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储
器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
103.以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
104.本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
105.本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
106.可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
107.还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
108.为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1