一种电子发票数据组织查询方法及系统与流程

文档序号:12466191阅读:285来源:国知局
一种电子发票数据组织查询方法及系统与流程

本发明涉及电子发票领域,尤其涉及一种基于电子发票数据特征的电子发票数据组织查询方法及系统。



背景技术:

随着信息的高速发展,电子发票作为信息时代的产物,与普通发票一样,采用税务局统一发放的形式给商家使用,发票号码采用全国统一编号,采用统一防伪技术,分配给商家,在电子发票上附有电子税局的签名机制。

商家在开具电子发票后,需要将电子发票数据存储到数据库,以备随时查验、使用。传统的电子发票数据存储方式,是使用关系型数据库进行存储。关系型数据库,是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的是二维表格模型,而一个关系型数据库就是由二维表及表之间的联系所组成的一个数据组织。

在关系型数据库中,当单表达到亿级数据后,因关系型数据库是基于B树或B+树的存储结构,对于亿级数据量而言,是很难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增时,关系型数据库无法通过简单的添加更多的硬件和服务节点来扩展存储性能和负载能力,对于大数据的存储性较差;其次对于关系型数据库来说,在一张包含海量数据的表中查询目标数据,全表扫描一次往往需要数十分钟,甚至数小时,在表中进行SQL的实时查询效率极其低下。



技术实现要素:

本发明实施例提供了一种电子发票数据组织查询方法及系统,用于提高海量电子发票数据的存储性能和查询效率。

本发明实施例一方面提供的电子发票数据组织查询方法,应用于电子发票数据组织查询系统,包括:在HBase数据库中创建电子发票主表格和电子发票索引表格;接收上传的电子发票,解析获取电子发票数据;将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;接收电子发票查询请求;根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

本发明实施例另一方面提供的电子发票数据组织查询系统,包括:创建单元,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;第一接收单元,用于接收上传的电子发票;解析获取单元,用于解析电子发票,获取电子发票数据;组装单元,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;存储单元,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;第二接收单元,用于接收电子发票的查询请求;查询单元,用于根据电子发票的查询请求,查询电子发票索引表格;获取单元,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

从以上技术方案可以看出,本发明实施例具有以下优点:本发明实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

附图说明

图1为本发明实施例中电子发票数据组织查询方法的一个实施例示意图;

图2为本发明实施例中电子发票数据组织查询方法的另一个实施例示意图;

图3为本发明实施例中电子发票数据组织查询方法的另一个实施例示意图;

图4为本发明实施例中电子发票数据组织查询方法的另一个实施例示意图;

图5为本发明实施例中电子发票数据组织查询方法的另一个实施例示意图;

图6为本发明实施例中电子发票数据组织查询方法的另一个实施例示意图;

图7为本发明实施例中电子发票数据组织查询系统的一个实施例示意图;

图8为本发明实施例中电子发票数据组织查询系统的另一个实施例示意图;

图9为本发明实施例中电子发票数据组织查询系统的另一个实施例示意图;

图10为本发明实施例中电子发票数据组织查询系统的另一个实施例示意图;

图11为本发明实施例中电子发票数据组织查询系统的另一个实施例示意图;

图12为本发明实施例中电子发票数据组织查询系统的另一个实施例示意图。

具体实施方式

本发明实施例提供了一种电子发票数据组织查询方法及系统,用于提高海量电子发票数据的存储性能和查询效率。

请参阅图1,本发明实施例中电子发票数据组织查询方法的一个实施例包括:

101、在HBase数据库中创建电子发票主表格和电子发票索引表格;

电子发票完成开具后,需要将电子发票数据存储到数据库,以备随时查验、使用。本实施例中,电子发票数据组织查询系统是将电子发票数据存储到HBase数据库中,在存储数据前,电子发票数据组织查询系统要先在HBase数据库中创建电子发票主表格和电子发票索引表格,用于存储电子发票主表数据和电子发票索引表数据。

102、接收上传的电子发票,解析获取电子发票数据;

电子发票数据组织查询系统对于用户上传的电子发票,先根据电子发票票面上的数据内容读取电子发票上的对应数据,获取电子发票的数据内容,以用于接下来的数据存储以及数据查询。

具体的电子发票数据格式及数据内容在下面的实施例中具体描述。

103、将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;

电子发票数据组织查询系统获取电子发票数据后,为了提高数据的检索效率,将电子发票数据组装为电子发票主表数据和电子发票索引表数据,在数据组装后,为了根据电子发票索引数据快速查询到电子发票主表数据信息,在电子发票数据存储时,将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格。这样用户就可以根据电子发票的索引表数据快速查询到电子发票主表格的主表数据。

104、接收电子发票查询请求;

电子发票数据组织查询系统在电子发票数据存储后,在用户需要查询电子发票的具体信息时,通过接收用户输入的电子发票查询请求,对电子发票的具体数据信息进行查询。

为了提高数据的查询效率,电子发票数据组织查询系统可以接收用户输入的不同查询请求进行查询,具体的查询请求在下面的实施例中进行详细描述。

105、根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

电子发票数据组织查询系统接收到用户输入的查询请求后,会根据查询请求中的相关信息在电子发票索引表格中进行查询,在检索到电子发票索引表格中的电子发票索引数据后,可以查询电子发票的基本数据,若需要电子发票的具体详细数据,可以通过电子发票索引数据进一步获取与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

为方便理解,下面对本发明实施例中的电子发票数据组织查询方法进行详细描述,电子发票数据组织查询系统可以接收不同的电子发票查询请求,下面从各方面进行描述:

一、接收电子发票的开票企业查询请求;

请参阅图2,本发明实施例中的电子发票数据组织查询方法的另一个实施例包括:

201、在HBase数据库中创建电子发票主表格和电子发票索引表格;

电子发票完成开具后,需要将电子发票数据存储到数据库,以备随时查验、使用。本实施例中,电子发票数据组织查询系统是将电子发票数据存储到HBase数据库中,在存储数据前,电子发票数据组织查询系统要先在HBase数据库中创建电子发票主表格和电子发票索引表格,用于存储电子发票主表数据和电子发票索引表数据。

202、接收上传的电子发票,解析获取电子发票数据;

电子发票数据组织查询系统对于用户上传的电子发票,先根据电子发票票面上的数据内容读取电子发票上的相关对应数据,获取电子发票票面上的数据内容,以用于接下来的数据存储以及数据查询。

电子发票数据组织查询系统可以接收的电子发票的格式包括:文本格式的电子发票、PDF格式的电子发票以及JPG格式的电子发票,具体的电子发票格式包括但不限于以上的格式,也可以为png、bmp、gif格式,具体不作限定。

电子发票数据组织查询系统接收到用户上传的电子发票后,会根据电子发票的包含的发票代码、发票号码、销售方纳税人识别号、销售方(开票企业)名称、购买方(收票企业)名称、购买方纳税人识别号、发票金额、价税合计、合计金额、合计税额、行业类型、开票类型、开票日期、个人手机号、个人邮件、个人账号分别读取对应的已有数据。

例如,用户上传的一张电子发票上包含的数据为:发票代码144031600001,发票号码00001001,销售方纳税人识别号4403121000001X2,销售方名称为老干妈食品有限公司,购买方名称为家旺快餐店,购买方纳税人识别号4503121000001X6,发票金额为200元,价税合计200元,合计金额170.94,合计税额29.06,行业类型为商业,开票类型为蓝色发票,开票日期为20160803,个人手机号空白,个人邮箱空白,个人账号空白,则电子发票数据组织查询系统就按照发票上包含的项目分别读取对应的已有数据,对于空白的数据则不做记录。

电子发票数据组织查询系统在读取对应的数据后,用于接下来的数据组装存储及最终的数据查询。

203、将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;

电子发票数据组织查询系统获取电子发票数据后,为了提高数据的检索效率,将电子发票数据组装为电子发票主表数据和电子发票索引表数据,在数据组装后,为了根据电子发票索引表数据快速查询到电子发票主表数据信息,在电子发票数据存储时,将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格。电子发票数据组织查询系统可以根据电子发票的数据内容,将电子发票数据组装为电子发票主表、开票企业索引表、收票企业索引表、个人手机号索引表、个人邮箱索引表和个人账号索引表。

例如:电子发票数据组织查询系统将读取的电子发票数据组装为电子发票主表,电子发票主表包含主表rowkey(行主键)数据和主表所需的数据字段,主表rowkey(行主键)由发票代码和发票号码组成,例如发票代码为144031600001,发票号码为00001001,则主表rowkey(行主键)数据为14403160000100001001;主表所需的数据字段包含发票代码、发票号码、购买方(即收票企业)名称、购买方纳税识别号、销售方(即开票企业)名称、销售方纳税识别号、价税合计、合计金额、合计税额、行业类型、开票类型、开票日期、个人手机号、个人邮件、个人账号数据。需要说明的是,主表所需的数据字段可以包括但不限于上述的内容,也可以包括发票密文、发票二维码、发票类型等数据,具体此处不做限定。

电子发票数据组织查询系统根据电子发票主表数据组装开票企业索引表数据,开票企业索引表数据包含开票企业索引表rowkey(行主键)数据和开票企业索引表所需的数据字段,开票企业索引表rowkey(行主键)数据由开票企业纳税人识别号、开票日期、发票代码后三位和发票号码组成,例如开票企业纳税人识别号为4403121000001X2,开票日期为20160101,发票号码为00001001,发票代码为144031600001,则组成的开票企业索引表rowkey(行主键)数据为4403121000001X216010100100001001;开票企业索引表所需的数据字段包含主表rowkey(行主键)数据、价税合计、购买方名称、购买方纳税人识别号、开票项目、发票类型。需要说明的是,开票企业索引表所需的数据字段包括但不限于上述的内容,也可以包括发票密文、发票二维码、发票类型等数据,具体此处不做限定。

在电子发票数据中的购买方(收票企业)纳税人识别号不为空时,电子发票数据组织查询系统根据电子发票主表数据组装收票企业索引表数据,收票企业索引表数据包含收票企业索引表rowkey(行主键)数据和收票企业索引表所需的数据字段;收票企业索引表rowkey(行主键)数据由收票企业纳税人识别号、开票日期、发票代码后三位和发票号码组成,例如收票企业纳税人识别号为4506171000001X6,开票日期为20160101,发票号码为00001001,发票代码为144031600001,则组成的收票企业索引表rowkey(行主键)数据为4506171000001X616010100100001001;收票企业索引表所需的数据字段包含主表rowkey(行主键)数据、价税合计、销售方名称、销售方纳税人识别号、开票项目、发票类型。需要说明的是,收票企业索引表所需的数据字段包括但不限于上述的内容,也可以包括发票密文、发票二维码、发票类型等数据,具体此处不做限定。

在电子发票数据中的个人手机号不为空时,电子发票数据组织查询系统根据电子发票主表数据组装个人手机号索引表数据,个人手机号索引表数据包含个人手机号索引表rowkey(行主键)数据和个人手机号索引表所需的数据字段;个人手机号索引表rowkey(行主键)数据由个人手机号、开票日期、发票代码后三位和发票号码组成,例如个人手机号为13500000001,开票日期为20160101,发票号码为00001001,发票代码为144031600001,则组成的个人手机号索引表rowkey(行主键)数据为1350000000116010100100001001;个人手机号索引表所需的数据字段包含主表rowkey(行主键)数据、价税合计、销售方名称、销售方纳税人识别号、开票项目、发票类型。需要说明的是,个人手机号索引表所需的数据字段包括但不限于上述的内容,也可以包括发票密文、发票二维码、发票类型等数据,具体此处不做限定。

在电子发票数据中的个人邮箱不为空时,电子发票数据组织查询系统根据电子发票主表数据组装个人邮箱索引表数据,个人邮箱索引表数据包含个人邮箱索引表rowkey(行主键)数据和个人邮箱索引表所需的数据字段;个人邮箱索引表rowkey(行主键)数据由个人邮箱、开票日期、发票代码后三位和发票号码组成,例如例如个人邮箱为test001@test.com,开票日期为20160101,发票号码为00001001,发票代码为144031600001,因个人邮箱字符长度因人而异,所以可以先采用MD5算法将个人邮箱转换为32位的固定长度字符串如96e79218965eb72c92a549dd5a330112,则组成的个人邮箱索引表rowkey数据为96e79218965eb72c92a549dd5a33011216010100100001001;个人邮箱索引表所需的数据字段包含主表rowkey(行主键)数据、价税合计、销售方名称、销售方纳税人识别号、开票项目、发票类型。需要说明的是,个人邮箱索引表所需的数据字段包括但不限于上述的内容,也可以包括发票密文、发票二维码、发票类型等数据,具体此处不做限定。

在电子发票数据中的个人账号不为空时,电子发票数据组织查询系统根据电子发票主表数据组装个人账号索引表数据,个人账号索引表数据包含个人账号索引表rowkey(行主键)数据和个人账号索引表所需的数据字段;个人账号索引表rowkey(行主键)数据由个人账号、开票日期、发票代码后三位和发票号码组成,例如个人账号为testuser001,开票日期为20160101,发票号码为00001001,发票代码为144031600001,因个人账号字符长度因人而异,所以可以先采用MD5算法将个人账号转换为32位的固定长度字符串如12a79212965eb72c92a549dd5a112215,则组成的个人账号索引表rowkey(行主键)数据为12a79212965eb72c92a549dd5a11221516010100100001001;个人账号索引表所需的数据字段包含主表rowkey(行主键)数据、价税合计、销售方名称、销售方纳税人识别号、开票项目、发票类型。需要说明的是,个人账号索引表所需的数据字段包括但不限于上述的内容,也可以包括发票密文、发票二维码、发票类型等数据,具体此处不做限定。

204、接收电子发票的开票企业查询请求;

电子发票数据组织查询系统在电子发票数据存储后,在用户需要查询电子发票的相关信息时,通过接收用户输入的电子发票的开票企业查询请求,对电子发票的具体数据信息进行查询。

例如:用户知道开票企业的纳税人识别号为4403121000001X2,查询条件为2016年1月份的开具的电子发票信息,则电子发票数据组织查询系统就会组装开票企业的查询信息,确定企业索引表rowkey的查询范围,在开票企业索引表中进行查询。

根据上述查询条件,组装后的查询信息:

StartKey=4403121000001X216010100000000000,

EndKey=4403121000001X216013199999999999,

即查询StartKey和EndKey之间的所有开票企业索引表rowkey。

205、根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

电子发票数据组织查询系统接收到用户输入的查询请求后,会根据查询请求中的相关信息在电子发票索引表格中进行查询,在检索到电子发票索引表格中的电子发票索引数据后,可以查询电子发票的基本数据,若需要电子发票的具体详细数据,可以通过电子发票索引数据进一步获取与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

例如:电平发票数据组织查询系统根据步骤204输入的查询条件,自动从每个数据节点上并发查询开票企业索引表,获取各个数据节点的开票企业索引表的开票数据,并进行汇总后呈现给用户,若用户需要进一步了解电子发票更详细的数据,则可以通过开票企业索引表中包含的主表rowkey数据,在HBase数据库中查询电子发票主表对应的电子发票主表数据,并进一步呈现给用户。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,电子发票数据组织查询系统是通过接收电子发票的开票企业查询请求,对电子发票的详细数据进行查询,增加了方案的多样性。

二、接收电子发票的收票企业查询请求;

请参阅图3,本发明实施例中的电子发票数据组织查询方法的另一个实施例包括:

301、在HBase数据库中创建电子发票主表格和电子发票索引表格;

302、接收上传的电子发票,解析获取电子发票数据;

303、将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;

本实施例中的步骤301至303,与图2所述实施例中的步骤201至203类似,具体此处不再赘述。

304、接收电子发票的收票企业查询请求;

在收票方为企业时,电子发票数据组织查询系统在电子发票数据存储后,在用户需要查询电子发票的相关信息时,通过接收用户输入的电子发票的收票企业查询请求,对电子发票的具体数据信息进行查询。

例如:用户知道收票企业的纳税人识别号为4503121000001X6,查询条件为2016年1月份的开具的电子发票信息,则电子发票数据组织查询系统就会组装开票企业的查询信息,确定企业索引表rowkey的查询范围,在开票企业索引表中进行查询。

根据上述查询条件,组装后的查询信息:

StartKey=4503121000001X616010100000000000,

EndKey=4503121000001X616013199999999999,

即查询StartKey和EndKey之间的所有收票企业索引表rowkey。

305、根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

电子发票数据组织查询系统接收到用户输入的收票企业查询请求后,会根据查询请求中的相关信息在电子发票索引表格中进行查询,在检索到电子发票索引表格中的电子发票索引数据后,可以查询电子发票的基本数据,若需要电子发票的具体详细数据,可以通过电子发票索引数据进一步获取与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

例如:电子发票数据组织查询系统根据步骤304输入的查询条件,自动从每个数据节点上并发查询收票企业索引表,获取各个数据节点的收票企业索引表的开票数据,并进行汇总后呈现给用户,若用户需要进一步了解电子发票更详细的数据,则可以通过收票企业索引表中包含的主表rowkey数据,在HBase数据库中查询电子发票主表对应的电子发票主表数据,并进一步呈现给用户。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,电子发票数据组织查询系统是通过接收电子发票的收票企业查询请求,对电子发票的详细数据进行查询,增加了方案的多样性。

三、接收电子发票的个人手机号查询请求;

请参阅图4,本发明实施例中的电子票发票数据组织查询方法的另一个实施例包括:

401、在HBase数据库中创建电子发票主表格和电子发票索引表格;

402、接收上传的电子发票,解析获取电子发票数据;

403、将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;

本实施例中的步骤401至403,与图2所示实施例中的步骤201至203类似,具体此处不再赘述。

404、接收电子发票的个人手机号查询请求;

在收票方为个人时,电子发票数据组织查询系统在电子发票数据存储后,在用户需要查询电子发票的相关信息时,通过接收用户输入的电子发票的个人手机号查询请求,对电子发票的具体数据信息进行查询。

例如:用户知道收票个人的手机号为13500000001,查询条件为2016年1月份的开具的电子发票信息,则电子发票数据组织查询系统就会组装开票企业的查询信息,确定企业索引表rowkey的查询范围,在开票企业索引表中进行查询。

根据上述查询条件,组装后的查询信息:

StartKey=1350000000116010100000000000,

EndKey=1350000000116013199999999999;

即查询StartKey和EndKey之间的所有收票个人手机号索引表rowkey。

405、根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

电子发票数据组织查询系统接收到用户输入的个人手机号查询请求后,会根据查询请求中的相关信息在电子发票索引表格中进行查询,在检索到电子发票索引表格中的电子发票索引数据后,可以查询电子发票的基本数据,若需要电子发票的具体详细数据,可以通过电子发票索引数据进一步获取与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

例如:电子发票数据组织查询系统根据步骤404输入的查询条件,自动从每个数据节点上并发查询个人手机号索引表,获取各个数据节点的个人手机号索引表的开票数据,并进行汇总后呈现给用户,若用户需要进一步了解电子发票更详细的数据,则可以通过个人手机号索引表中包含的主表rowkey数据,在HBase数据库中查询电子发票主表对应的电子发票主表数据,并进一步呈现给用户。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,电子发票数据组织查询系统是通过接收电子发票的个人手机号查询请求,对电子发票的详细数据进行查询,增加了方案的多样性。

四、接收电子发票的个人邮箱查询请求;

请参阅图5,本发明实施例中的电子发票数据组织查询方法的另一个实施例包括:

501、在HBase数据库中创建电子发票主表格和电子发票索引表格;

502、接收上传的电子发票,解析获取电子发票数据;

503、将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;

本实施例中的步骤501至503,与图2所示实施例中的步骤201至203类似,具体此处不再赘述。

504、接收电子发票的个人邮箱查询请求;

在收票方为个人时,电子发票数据组织查询系统在电子发票数据存储后,在用户需要查询电子发票的相关信息时,通过接收用户输入的电子发票的个人邮箱查询请求,对电子发票的具体数据信息进行查询。

例如:用户知道收票个人的邮箱为test001@test.com,查询条件为2016年1月份的开具的电子发票信息,则电子发票数据组织查询系统就会组装开票企业的查询信息,确定企业索引表rowkey的查询范围,在开票企业索引表中进行查询。因个人邮箱字符长度因人而异,所以可以先采用MD5算法将个人邮箱转换为32位的固定长度字符串如:96e79218965eb72c92a549dd5a330112。

根据上述查询条件,组装后的查询信息:

StartKey=96e79218965eb72c92a549dd5a33011216010100000000000,

EndKey=96e79218965eb72c92a549dd5a33011216013199999999999;

即查询StartKey和EndKey之间的所有收票个人邮箱索引表rowkey。

505、根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

电子发票数据组织查询系统接收到用户输入的个人邮箱查询请求后,会根据查询请求中的相关信息在电子发票索引表格中进行查询,在检索到电子发票索引表格中的电子发票索引数据后,可以查询电子发票的基本数据,若需要电子发票的具体详细数据,可以通过电子发票索引数据进一步获取与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

例如:电子发票数据组织查询系统根据步骤504输入的查询条件,自动从每个数据节点上并发查询个人邮箱索引表,获取各个数据节点的个人邮箱索引表的开票数据,并进行汇总后呈现给用户,若用户需要进一步了解电子发票更详细的数据,则可以通过个人邮箱索引表中包含的主表rowkey数据,在HBase数据库中查询电子发票主表对应的电子发票主表数据,并进一步呈现给用户。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,电子发票数据组织查询系统是通过接收电子发票的个人邮箱查询请求,对电子发票的详细数据进行查询,增加了方案的多样性。

五、接收电子发票的个人账号查询请求;

请参阅图6,本发明实施例中的电子发票数据组织查询方法的另一个实施例包括:

601、在HBase数据库中创建电子发票主表格和电子发票索引表格;

602、接收上传的电子发票,解析获取电子发票数据;

603、将电子发票数据组装为电子发票主表数据及电子发票索引表数据,并分别关联存入电子发票主表格及电子发票索引表格;

本实施例中的步骤601至603,与图2所示实施例中的步骤201至203类似,具体此处不再赘述。

604、接收电子发票的个人账号查询请求;

在收票方为个人时,电子发票数据组织查询系统在电子发票数据存储后,在用户需要查询电子发票的相关信息时,通过接收用户输入的电子发票的个人账号查询请求,对电子发票的具体数据信息进行查询。

例如:用户知道收票个人的账号为usertest001,查询条件为2016年1月份的开具的电子发票信息,则电子发票数据组织查询系统就会组装个人账号的查询信息,确定个人账号索引表rowkey的查询范围,在个人账号索引表中进行查询。需要说明的是,本实施例中的个人账号可以为在电子发票平台的注册账号,也可以是微信等第三方平台账号,具体此处不做限定。因个人账号字符长度因人而异,所以可以先采用MD5算法将个人账号转换为32位的固定长度字符串如12a79212965eb72c92a549dd5a112215。

根据上述查询条件,组装后的查询信息:

StartKey=12a79212965eb72c92a549dd5a11221516010100000000000,

EndKey=12a79212965eb72c92a549dd5a11221516013199999999999;

即查询StartKey和EndKey之间的所有收票个人账号索引表rowkey。

605、根据电子发票查询请求,查询电子发票索引表格,获取电子发票索引数据,和/或与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

电子发票数据组织查询系统接收到用户输入的个人账号查询请求后,会根据查询请求中的相关信息在电子发票索引表格中进行查询,在检索到电子发票索引表格中的电子发票索引数据后,可以查询电子发票的基本数据,若需要电子发票的具体详细数据,可以通过电子发票索引数据进一步获取与电子发票索引表格相关联的电子发票主表格中的电子发票主表数据。

例如:电子发票数据组织查询系统根据步骤604输入的查询条件,自动从每个数据节点上并发查询个人账号索引表,获取各个数据节点的个人账号索引表的开票数据,并进行汇总后呈现给用户,若用户需要进一步了解电子发票更详细的数据,则可以通过个人账号索引表中包含的主表rowkey数据,在HBase数据库中查询电子发票主表对应的电子发票主表数据,并进一步呈现给用户。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次电子发票数据组织查询系统对上传的电子发票进行解析,获取电子发票数据,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,电子发票数据组织查询系统是通过接收电子发票的个人账号查询请求,对电子发票的详细数据进行查询,增加了方案的多样性。

上面描述了本发明实施例中的电子发票数据组织查询方法,下面来描述本发明实施例中的电子票发票数据组织查询系统,请参阅图7,本发明实施例中电子发票数据组织查询系统的一个实施例包括:

创建单元701,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;

第一接收单元702,用于接收上传的电子发票;

解析获取单元703,用于解析电子发票,获取电子发票数据;

组装单元704,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;

存储单元705,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;

第二接收单元706,用于接收电子发票的查询请求;

查询单元707,用于根据电子发票的查询请求,查询电子发票索引表格;

获取单元708,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

需要说明的是,本发明实施例中各单元的作用与图1所述实施例中电子发票数据组织查询系统的作用类似,具体此处不再赘述。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次解析获取单元703对上传的电子发票进行解析,获取电子发票数据,存储单元705使用HBase数据库进行存储,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,查询单元707按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

为便于理解,下面详细描述本发明实施例中的电子发票数据组织查询系统,电子发票数据组织查询系统可以接收不同的电子发票查询请求,下面从各方面进行描述:

一、接收电子发票的开票企业查询请求;

请参阅图8,本发明实施例中电子发票数据组织查询系统的另一个实施例包括:

创建单元801,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;

第一接收单元802,用于接收上传的电子发票;

解析获取单元803,用于解析电子发票,获取电子发票数据;

组装单元804,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;

存储单元805,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;

第二接收单元806,用于接收电子发票的查询请求;

查询单元807,用于根据电子发票的查询请求,查询电子发票索引表格;

获取单元808,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

上述的组装单元804包括:

第一组装子单元8041,用于将电子发票数据组装为电子发票主表数据;

第二组装子单元8042,用于根据电子发票主表数据,组装开票企业索引表数据;

第三组装子单元8043,用于在电子发票数据的收票企业纳税人账号不为空时,根据电子发票主表数据,组装电子发票的收票企业索引表数据;

第四组装子单元8044,用于在电子发票数据的个人手机号不为空时,根据电子发票主表数据,组装电子发票的个人手机号索引表数据;

第五组装子单元8045,用于在电子发票数据的个人邮箱不为空时,根据电子发票主表数据,组装电子发票的个人邮箱索引表数据;

第六组装子单元8046,用于在电子发票数据的个人账号不为空时,根据电子发票主表数据,组装电子发票的个人账号索引表数据。

上述查询单元807包括:

第一查询单元8071,用于接收电子发票的开票企业查询请求。

需要说明的是,本发明实施例中各单元的作用与图2所述实施例中电子发票数据组织查询系统的作用类似,具体此处不再赘述。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次解析获取单元803对上传的电子发票进行解析,获取电子发票数据,存储单元805使用HBase数据库进行存储,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,查询单元807按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,是通过第一查询单元8071接收电子发票的开票企业查询请求,对电子发票数据进行查询,增加了方案的多样性。

二、接收电子发票的收票企业查询请求;

请参阅图9,本发明实施例中电子发票数据组织查询系统的另一个实施例包括:

创建单元901,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;

第一接收单元902,用于接收上传的电子发票;

解析获取单元903,用于解析电子发票,获取电子发票数据;

组装单元904,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;

存储单元905,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;

第二接收单元906,用于接收电子发票的查询请求;

查询单元907,用于根据电子发票的查询请求,查询电子发票索引表格;

获取单元908,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

上述的组装单元904包括:

第一组装子单元9041,用于将电子发票数据组装为电子发票主表数据;

第二组装子单元9042,用于根据电子发票主表数据,组装开票企业索引表数据;

第三组装子单元9043,用于在电子发票数据的收票企业纳税人账号不为空时,根据电子发票主表数据,组装电子发票的收票企业索引表数据;

第四组装子单元9044,用于在电子发票数据的个人手机号不为空时,根据电子发票主表数据,组装电子发票的个人手机号索引表数据;

第五组装子单元9045,用于在电子发票数据的个人邮箱不为空时,根据电子发票主表数据,组装电子发票的个人邮箱索引表数据;

第六组装子单元9046,用于在电子发票数据的个人账号不为空时,根据电子发票主表数据,组装电子发票的个人账号索引表数据。

上述查询单元907包括:

第二查询单元9072,用于接收电子发票的收票企业查询请求。

需要说明的是,本发明实施例中各单元的作用与图3所述实施例中电子票发票数据组织查询系统的作用类似,具体此处不再赘述。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次解析获取单元903对上传的电子发票进行解析,获取电子发票数据,存储单元905使用HBase数据库进行存储,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,查询单元907按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,是通过第二查询单元9072接收电子发票的收票企业查询请求,对电子发票数据进行查询,增加了方案的多样性。

三、接收电子发票的个人手机号查询请求;

请参阅图10,本发明实施例中电子发票数据组织查询系统的另一个实施例包括:

创建单元1001,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;

第一接收单元1002,用于接收上传的电子发票;

解析获取单元1003,用于解析电子发票,获取电子发票数据;

组装单元1004,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;

存储单元1005,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;

第二接收单元1006,用于接收电子发票的查询请求;

查询单元1007,用于根据电子发票的查询请求,查询电子发票索引表格;

获取单元1008,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

上述的组装单元1004包括:

第一组装子单元10041,用于将电子发票数据组装为电子发票主表数据;

第二组装子单元10042,用于根据所述电子发票主表数据,组装开票企业索引表数据;

第三组装子单元10043,用于在电子发票数据的收票企业纳税人账号不为空时,根据电子发票主表数据,组装电子发票的收票企业索引表数据;

第四组装子单元10044,用于在电子发票数据的个人手机号不为空时,根据电子发票主表数据,组装电子发票的个人手机号索引表数据;

第五组装子单元10045,用于在电子发票数据的个人邮箱不为空时,根据电子发票主表数据,组装电子发票的个人邮箱索引表数据;

第六组装子单元10046,用于在电子发票数据的个人账号不为空时,根据电子发票主表数据,组装电子发票的个人账号索引表数据。

上述查询单元1007包括:

第三查询单元10073,用于接收电子发票的个人手机号查询请求。

需要说明的是,本发明实施例中各单元的作用与图4所述实施例中电子发票数据组织查询系统的作用类似,具体此处不再赘述。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次解析获取单元1003对上传的电子发票进行解析,获取电子发票数据,存储单元1005使用HBase数据库进行存储,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,查询单元1007按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,是通过第三查询单元10073接收电子发票的个人手机号查询请求,对电子发票数据进行查询,增加了方案的多样性。

四、接收电子发票的个人邮箱查询请求;

请参阅图11,本发明实施例中电子发票数据组织查询系统的另一个实施例包括:

创建单元1101,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;

第一接收单元1102,用于接收上传的电子发票;

解析获取单元1103,用于解析电子发票,获取电子发票数据;

组装单元1104,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;

存储单元1105,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;

第二接收单元1106,用于接收电子发票的查询请求;

查询单元1107,用于根据电子发票的查询请求,查询电子发票索引表格;

获取单元1108,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

上述的组装单元1104包括:

第一组装子单元11041,用于将电子发票数据组装为电子发票主表数据;

第二组装子单元11042,用于根据电子发票主表数据,组装开票企业索引表数据;

第三组装子单元11043,用于在电子发票数据的收票企业纳税人账号不为空时,根据电子发票主表数据,组装电子发票的收票企业索引表数据;

第四组装子单元11044,用于在电子发票数据的个人手机号不为空时,根据电子发票主表数据,组装电子发票的个人手机号索引表数据;

第五组装子单元11045,用于在电子发票数据的个人邮箱不为空时,根据电子发票主表数据,组装电子发票的个人邮箱索引表数据;

第六组装子单元11046,用于在电子发票数据的个人账号不为空时,根据电子发票主表数据,组装电子发票的个人账号索引表数据。

上述查询单元1107包括:

第四查询单元11074,用于接收电子发票的个人邮箱查询请求。

需要说明的是,本发明实施例中各单元的作用与图5所述实施例中电子发票数据组织查询系统的作用类似,具体此处不再赘述。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次解析获取单元1103对上传的电子发票进行解析,获取电子发票数据,存储单元1105使用HBase数据库进行存储,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,查询单元1107按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,是通过第四查询单元11074接收电子发票的个人邮箱查询请求,对电子发票数据进行查询,增加了方案的多样性。

五、接收电子发票的个人账号查询请求;

请参阅图12,本发明实施例中电子发票数据组织查询系统的另一个实施例包括:

创建单元1201,用于在HBase数据库中创建电子发票主表格和电子发票索引表格;

第一接收单元1202,用于接收上传的电子发票;

解析获取单元1203,用于解析电子发票,获取电子发票数据;

组装单元1204,用于将电子发票数据组装为电子发票主表数据和电子发票索引表数据;

存储单元1205,用于将电子发票主表数据和电子发票索引表数据分别关联存入电子发票主表格和电子发票索引表格;

第二接收单元1206,用于接收电子发票的查询请求;

查询单元1207,用于根据电子发票的查询请求,查询电子发票索引表格;

获取单元1208,用于获取电子发票索引表数据,和/或与电子发票索引表格相关联的电子发票主表中的电子发票主表数据。

上述的组装单元1204包括:

第一组装子单元12041,用于将电子发票数据组装为电子发票主表数据;

第二组装子单元12042,用于根据电子发票主表数据,组装开票企业索引表数据;

第三组装子单元12043,用于在电子发票数据的收票企业纳税人账号不为空时,根据电子发票主表数据,组装电子发票的收票企业索引表数据;

第四组装子单元12044,用于在电子发票数据的个人手机号不为空时,根据电子发票主表数据,组装电子发票的个人手机号索引表数据;

第五组装子单元12045,用于在电子发票数据的个人邮箱不为空时,根据电子发票主表数据,组装电子发票的个人邮箱索引表数据;

第六组装子单元12046,用于在电子发票数据的个人账号不为空时,根据电子发票主表数据,组装电子发票的个人账号索引表数据。

上述查询单元1207包括:

第五查询单元12075,用于接收电子发票的个人账号查询请求。

需要说明的是,本发明实施例中各单元的作用与图6所述实施例中电子发票数据组织查询系统的作用类似,具体此处不再赘述。

本实施例中,HBase数据库是基于Log-Structured Merge Tree的存储结构,可以在最小化系统开销和不停机的情况下,线性增加系统的存储容量和计算能力,系统可以自动地进行负载均衡,同时能够利用新的硬件资源,适应数据的不断增长,提高了大数据的存储性能;其次解析获取单元1203对上传的电子发票进行解析,获取电子发票数据,存储单元1205使用HBase数据库进行存储,在存储电子发票数据时,按照电子发票主表和索引目录表进行分类存储,从而在查询电子发票数据时,查询单元1207按照分类类型实现分区索引,减少目标数据的检索范围,提高了海量电子发票数据的查询效率。

本实施例中,是通过第五查询单元12075接收电子发票的个人账号查询请求,对电子发票数据进行查询,增加了方案的多样性。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1