CN106372121A - 服务器及数据处理方法 - Google Patents
服务器及数据处理方法 Download PDFInfo
- Publication number
- CN106372121A CN106372121A CN201610711904.4A CN201610711904A CN106372121A CN 106372121 A CN106372121 A CN 106372121A CN 201610711904 A CN201610711904 A CN 201610711904A CN 106372121 A CN106372121 A CN 106372121A
- Authority
- CN
- China
- Prior art keywords
- data
- index table
- secondary index
- record
- described secondary
- 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
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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种服务器,所述服务器包括:处理器以及分布式存储系统;所述处理器用于在所述在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;对所述二级索引表中的数据进行更新;在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;按照预设的时间顺序依次排列所述二级索引表中各条记录。本发明还公开了一种数据处理方法。本发明在数据库中,实现了数据更新的同时,按照时间进行数据的排序。
Description
技术领域
本发明涉及大数据领域,尤其涉及一种服务器及数据处理方法。
背景技术
目前,互联网公司在日常运营中会生成和累积用户网络行为数据。这些数据的规模非常庞大,以至于不能用G或T来衡量。因为数据存储量大,所以一般现在互联网公司都使用nosql非关系型数据库来存储大数据量的数据,Hbase(分布式存储系统)就是其中的一种。
但是在实际使用hbase的过程中,由于hbase中rowkey(行主键)的设计问题,如果需要更新,则需要获知rowkey中的数据,比如使用ID或者其他信息;但是,如果需要按照时间进行数据的排序,则rowkey中需要设置时间字段,这样就又造成不可获知rowkey,导致数据无法更新。因此,现在的hbase无法兼容数据更新和数据排序两种功能。
发明内容
本发明的主要目的在于提出一种服务器及数据处理方法,旨在解决现在的hbase无法兼容数据更新和数据排序两种功能的技术问题。
为实现上述目的,本发明提供的一种服务器,所述服务器包括:处理器以及分布式存储系统;
所述处理器用于在所述分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
对所述二级索引表中的数据进行更新;
在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
按照预设的时间顺序依次排列所述二级索引表中各条记录。
可选地,所述处理器还用于:
根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
在每条记录的数据添加完成时,生成每条记录对应的时间戳。
可选地,所述处理器对所述二级索引表中的数据进行更新包括:
在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
从所述二级索引表关联的主表中获取对应的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
可选地,所述处理器还用于:
获取外界输入的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
将所述新的记录添加到所述二级索引表关联的主表中。
可选地,所述处理器还用于:
在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
此外,为实现上述目的,本发明提供的一种数据处理装置,所述数据处理装置包括:
确定模块,用于在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
更新模块,用于对所述二级索引表中的数据进行更新;
识别模块,用于在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
排列模块,用于按照预设的时间顺序依次排列所述二级索引表中各条记录。
可选地,所述数据处理装置还包括:
建立模块,用于根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
处理模块,用于从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
生成模块,用于在每条记录的数据添加完成时,生成每条记录对应的时间戳。
可选地,所述更新模块包括:
添加单元,用于在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
获取单元,用于从所述二级索引表关联的主表中获取对应的数据;
生成单元,用于将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
可选地,所述获取单元,还用于获取外界输入的数据;
所述生成单元,还用于将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
所述添加单元,还用于将所述新的记录添加到所述二级索引表关联的主表中。
可选地,所述数据处理装置还包括:
获取模块,用于在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
替换模块,用于根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
此外,为实现上述目的,本发明还提出一种数据处理方法,所述数据处理方法包括:
在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
对所述二级索引表中的数据进行更新;
在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
按照预设的时间顺序依次排列所述二级索引表中各条记录。
可选地,所述在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表的步骤之前,所述数据处理方法还包括:
根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
在每条记录的数据添加完成时,生成每条记录对应的时间戳。
可选地,所述对所述二级索引表中的数据进行更新的步骤包括:
在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
从所述二级索引表关联的主表中获取对应的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
可选地,所述在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项的步骤之后,所述数据处理方法还包括:
获取外界输入的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
将所述新的记录添加到所述二级索引表关联的主表中。
可选地,所述按照预设的时间顺序依次排列所述二级索引表中各条记录的步骤之后,所述数据处理方法还包括:
在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
本发明提出的服务器及数据处理方法,在分布式存储系统中接收到数据更新指令时,先确定待处理的二级索引表,然后对所述二级索引表中的数据进行更新,在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳,最终按照预设的时间顺序依次排列所述二级索引表中各条记录,实现了数据更新的同时,按照时间进行数据的排序,提高了数据处理的灵活性和智能性。
附图说明
图1为实现本发明各个实施例一个可选的服务器的硬件结构示意图;
图2为本发明数据处理装置第一实施例的模块示意图;
图3为本发明数据处理装置第二实施例的模块示意图;
图4为图3中更新模块的细化模块示意图;
图5为本发明数据处理装置第五实施例的模块示意图;
图6为本发明数据处理方法第一实施例的流程示意图;
图7为本发明数据处理方法第二实施例的流程示意图;
图8为本发明对所述二级索引表中的数据进行更新较佳实施例的流程示意图;
图9为本发明数据处理方法第五实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为实现本发明实施例一个可选的服务器的硬件结构示意。
如图1所示,所述服务器包括处理器1001、分布式存储系统1002以及外界接口1003;
所述处理器1001用于在所述分布式存储系统1002中接收到数据更新指令时,确定待处理的二级索引表,然后对所述二级索引表中的数据进行更新,在数据更新完成时,若从所述外界接口1003中接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳,最终按照预设的时间顺序依次排列所述二级索引表中各条记录。
进一步地,所述处理器1001还用于:根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同,并从所述主表中获取数据,再将获取的数据添加到所述二级索引表的各条记录中,在每条记录的数据添加完成时,生成每条记录对应的时间戳。
进一步地,所述处理器1001对所述二级索引表中的数据进行更新包括:在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项,然后从所述二级索引表关联的主表中获取对应的数据,再将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
进一步地,所述处理器1001还用于:从所述外界接口1003获取外界输入的数据,将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳,将所述新的记录添加到所述二级索引表关联的主表中。
进一步地,所述处理器1001还用于:在所述二级索引表的任一条记录中接收到数据修改指令时,从所述外界接口1003获取修改后的数据,根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
基于上述服务器的硬件结构,提出本发明数据处理装置的各个实施例。
应当理解的是,所述数据处理装置为服务器。
参照图2,图2为本发明数据处理装置第一实施例的模块示意图。
需要强调的是,对本领域的技术人员来说,图2所示模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图2所示的数据处理装置的模块,可轻易进行新的模块的补充;各模块的名称是自定义名称,仅用于辅助理解该数据处理装置的各个程序模块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的模块所要达成的功能。
在本实施例中,所述数据处理装置包括:
确定模块10,用于在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
在本实施例中,所述确定模块10在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表的方式包括:a、在任一个二级索引表的界面中接收到基于更新按钮触发的数据更新指令,将所述二级索引表作为待处理的二级索引表;b、在接收到基于更新按钮触发的数据更新指令时,先在分布式存储系统中选择一个主表,根据预设的主表与二级索引表的关联关系,获取所述主表关联的二级索引表,将获取的二级索引表作为待处理的二级索引表。
值得注意的是,在对分布式存储系统中的数据进行处理之前,所述分布式存储系统中已经建立有主表以及二级索引表,其中,每个二级索引表都会关联一个主表,具体的建立方式在第二实施例中进行详述。同理,二级索引表中还包含多条记录,每条记录都包含有多个类型的数据,并且,每条记录都有对应的时间戳,所述时间戳由主表中的数据添加所述二级索引表中的记录时生成,即主表中的数据添加到二级索引表所在的任一条记录时,即可生成所述记录对应的时间戳。
更新模块20,用于对所述二级索引表中的数据进行更新;
在确定模块10确定二级索引表之后,更新模块20对所述二级索引表中的数据进行更新,所述更新方式包括数据增加、数据删除,由于所述二级索引表中包含多条记录,因此,更新模块20对所述二级索引表中的数据进行更新,实际上是在所述二级索引表中增加记录,或者删除记录。
具体地,所述更新模块20对所述二级索引表中的数据进行更新的方式包括:
1)方式一、在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
从所述二级索引表关联的主表中获取对应的数据;
步骤3、将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
2)方式二、在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项之后,还包括:
获取外界输入的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
将所述新的记录添加到所述二级索引表关联的主表中。
3)方式三、在所述数据更新指令为数据删除指令时,确定所述二级索引表中待删除的记录;
将确定的记录进行删除。
识别模块30,用于在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
在本实施例中,在更新模块20对所述二级索引表中的数据进行更新,并且更新完成时,若接收到数据排序指令,识别模块30先对所述二级索引表中各条记录的时间戳进行识别,此处应当理解的是,所述二级索引表中各条记录的预置时间戳,是建立二级索引表时就已经生成并存储,因此,后续在对数据进行更新之后,若接收到数据排序指令,识别模块30即可识别所述二级索引表中的各条记录对应的预置时间戳。
排列模块40,用于按照预设的时间顺序依次排列所述二级索引表中各条记录。
在本实施例中,在识别模块30识别所述二级索引表中各条记录的预置时间戳,排列模块40即可按照预设的时间顺序依次排列所述二级索引表中的各条记录,由于时间顺序包括时间从早到晚以及从晚到早的顺序,因此,按照时间从早到晚或者从晚到早的顺序可依次排列所述二级索引表中各条记录。当然,值得一提的是,在分布式存储系统中,对记录进行排序时,一般都是采用逆序的方式,也就是采用时间从晚到早的方式进行排序,因此,最晚生成的数据排列在前面,最早生成的数据排列在后面。
本实施例提出的数据处理装置,确定模块在分布式存储系统中接收到数据更新指令时,先确定待处理的二级索引表,然后更新模块对所述二级索引表中的数据进行更新,在数据更新完成时,若接收到数据排序指令,识别模块识别所述二级索引表中各条记录的预置时间戳,最终排列模块按照预设的时间顺序依次排列所述二级索引表中各条记录,实现了数据更新的同时,按照时间进行数据的排序,提高了数据处理的灵活性和智能性。
进一步地,提出本发明数据处理装置的第二实施例。
数据处理装置的第二实施例与数据处理装置的第一实施例的区别在于,参照图3,所述数据处理装置还包括:
建立模块50,用于根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
处理模块60,用于从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
生成模块70,用于在每条记录的数据添加完成时,生成每条记录对应的时间戳。
本实施例中,主要描述二级索引表的建立,具体地,先确定主表的行主键rowkey,然后建立模块50根据主表的行主键,建立所述主表关联的二级索引表,由于二级索引表中包含多条记录,因此,所述二级索引表中各条记录对应的行主键与所述主表的行主键相同,也就是说,在主表的行主键rowkey为rowkey1时,所述主表关联的二级索引表中,各条记录对应的行主键也是rowkey1。然后,处理模块60从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中,最终生成模块70在每条记录的数据添加完成时,生成每条记录对应的时间戳,由于每条记录中都要添加数据,且添加数据的时间是不同的,因此,每条记录对应的时间戳都是不同的,同样以行主键为rowkey1举例,例如当前二级索引表中包含10条记录,确定了时间戳之后,包括时间戳的10条记录的行主键分别为rowkey1-10:00、rowkey1-10:01、rowkey1-10:02、…、rowkey1-10:09。
应当理解的是,每条记录的时间戳一旦生成,后续无论对该记录修改几次,该记录的时间戳都会保持不变,也就是说,二级索引表中的时间戳是一个固定值,不会因为记录中的数据改变而改变。
在本实施例中,在建立主表关联的二级索引表之后,获取主表中的数据添加到二级索引表中,最终在每条记录的数据添加完成时,生成每条记录对应的时间戳,实现了在二级索引表中,每条记录都是有时间戳的,后续根据所述时间戳即可直接进行排序了,实现了数据更新的同时,按照时间进行数据的排序,提高了数据处理的灵活性和智能性。
进一步地,提出本发明数据处理装置的第三实施例。
数据处理装置的第三实施例与数据处理装置的第二实施例的区别在于,参照图4,所述更新模块20包括:
添加单元21,用于在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
获取单元22,用于从所述二级索引表关联的主表中获取对应的数据;
生成单元23,用于将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
在本实施例中,在接收到数据更新指令,且所述数据更新指令为数据添加指令时,此时,添加单元21先在所述二级索引表中添加记录项,也就是说,增加多一个记录项,然后获取单元22从所述二级索引表关联的主表中获取对应的数据,如记录项有多少个列值,每个列值对应什么数据类型,都从所述主表中进行获取,最终生成单元23将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳,相当于是增加新的记录时,重新生成新的记录对应的时间戳。
在本实施例中,在所述数据更新指令为数据添加指令时,先在所述二级索引表中添加记录项,最终将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,使得分布式存储系统中的数据可以随时进行增加,提高了数据管理的灵活性。
进一步地,提出本发明数据处理装置的第四实施例。
数据处理装置的第四实施例与数据处理装置的第三实施例的区别在于,所述获取单元22,还用于获取外界输入的数据;
所述生成单元23,还用于将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
所述添加单元21,还用于将所述新的记录添加到所述二级索引表关联的主表中。
在本实施例中,所述获取单元22获取外界输入的数据,所述外界可以是外部设备,也可以是用户,在获取到所述外界输入的数据时,所述生成单元23先将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳,最终所述添加单元21将所述新的记录添加到所述二级索引表关联的主表中。
在本实施例中,通过将外界输入的数据添加到主表中,进行存储,同样实现了数据的更新,从而提高了数据更新的灵活性。
进一步地,提出本发明数据处理装置的第五实施例。
数据处理装置的第五实施例与数据处理装置的第一实施例的区别在于,参照图5,所述数据处理装置还包括:
获取模块80,用于在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
替换模块90,用于根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
在本实施例中,在所述二级索引表的任一条记录中接收到数据修改指令时,首先,获取模块80获取修改后的数据,然后替换模块90根据修改后的数据替换所述记录中的数据,由于所述记录对应的时间戳保持不变,相当于是数据修改后,时间戳也不会修改,提高了数据存储的稳定性。
为更好理解本发明,举例详述之:
首先,应当理解的是,现有的分布式存储系统hbase中使用二级索引表的功能,主要实现方式为:主表包括1条rowkey记录,其中,用10列显示该条rowkey记录,分别为列1、列2…、列10,而二级索引表中包括10条rowkey记录,这10条rowkey记录用来查询该主表某条记录,以实现快速查询,也就是说,现有的设计只提供快速查询主表某列的功能。
而本实施例中,主表包括1条rowkey记录,其中,仅有1列表示rowkey,列值为二级索引表rowkey,而二级索引表包括1条rowkey记录,同样用10列表示,但是,在rowkey中可添加时间戳。这样,数据更新时,可从主表中查询二级索引表的key,进行数值更新,而按照时间进行排序查询时,则可直接查询二级索引表,进行按照时间进行排序展示处理,本实施例中,所述排序的方式优选为逆序排列。
具体地,参照下列内容:
首先,先采用二级索引表的方式来保存相关数据信息;
比如:主表采用如下方式设计。
Rowkey 列
Id_msgid timestamp_id_msgid
二级索引表采用如下方式设计。
上述表示为此种设计的库表设计方式。当新增一条记录时,先在二级索引表中新增对应的记录项,并在主表中获取新增数据的rowkey信息,以添加到二级索引表,之后,开始向主表中新增一条对应记录,主表记录用来更新操作。
更新操作时,根据可获知项自动拼装的rowkey信息,从主表中进行查询,可查询出对应的列值,该列值为二级索引表的rowkey信息,因此可以根据该rowkey在二级索引表中进行相关的更新操作。
当按照时间进行逆排序时,可以直接查询二级索引表rowkey字段,按照timestamp(时间戳)进行逆排序,之后,根据排序好的逆序结果,进行相关数据的展示工作。
此时,就已经实现了通过该种设计,在hbase的基础之上完成的即可更新,又可逆排序的功能了。
本发明进一步提供一种数据处理方法。
参照图6,图6为本发明数据处理方法第一实施例的流程示意图。
在本实施例中,所述数据处理方法包括:
步骤S10,在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
在本实施例中,所述在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表的方式包括:a、在任一个二级索引表的界面中接收到基于更新按钮触发的数据更新指令,将所述二级索引表作为待处理的二级索引表;b、在接收到基于更新按钮触发的数据更新指令时,先在分布式存储系统中选择一个主表,根据预设的主表与二级索引表的关联关系,获取所述主表关联的二级索引表,将获取的二级索引表作为待处理的二级索引表。
值得注意的是,在对分布式存储系统中的数据进行处理之前,所述分布式存储系统中已经建立有主表以及二级索引表,其中,每个二级索引表都会关联一个主表,具体的建立方式在第二实施例中进行详述。同理,二级索引表中还包含多条记录,每条记录都包含有多个类型的数据,并且,每条记录都有对应的时间戳,所述时间戳由主表中的数据添加所述二级索引表中的记录时生成,即主表中的数据添加到二级索引表所在的任一条记录时,即可生成所述记录对应的时间戳。
步骤S20,对所述二级索引表中的数据进行更新;
在确定二级索引表之后,对所述二级索引表中的数据进行更新,所述更新方式包括数据增加、数据删除,由于所述二级索引表中包含多条记录,因此,对所述二级索引表中的数据进行更新,实际上是在所述二级索引表中增加记录,或者删除记录。
具体地,所述对所述二级索引表中的数据进行更新的方式包括:
1)方式一、所述步骤S20包括:
步骤1、在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
步骤2、从所述二级索引表关联的主表中获取对应的数据;
步骤3、将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
2)方式二、在所述步骤1之后,所述步骤S20还包括:
步骤4、获取外界输入的数据;
步骤5、将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
步骤6、将所述新的记录添加到所述二级索引表关联的主表中。
3)方式三、所述步骤S20包括:
在所述数据更新指令为数据删除指令时,确定所述二级索引表中待删除的记录;
将确定的记录进行删除。
步骤S30,在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
在本实施例中,在对所述二级索引表中的数据进行更新,并且更新完成时,若接收到数据排序指令,先对所述二级索引表中各条记录的时间戳进行识别,此处应当理解的是,所述二级索引表中各条记录的预置时间戳,是建立二级索引表时就已经生成并存储,因此,后续在对数据进行更新之后,若接收到数据排序指令,即可识别所述二级索引表中的各条记录对应的预置时间戳。
步骤S40,按照预设的时间顺序依次排列所述二级索引表中各条记录。
在本实施例中,在识别所述二级索引表中各条记录的预置时间戳,即可按照预设的时间顺序依次排列所述二级索引表中的各条记录,由于时间顺序包括时间从早到晚以及从晚到早的顺序,因此,按照时间从早到晚或者从晚到早的顺序可依次排列所述二级索引表中各条记录。当然,值得一提的是,在分布式存储系统中,对记录进行排序时,一般都是采用逆序的方式,也就是采用时间从晚到早的方式进行排序,因此,最晚生成的数据排列在前面,最早生成的数据排列在后面。
本实施例提出的数据处理方法,在分布式存储系统中接收到数据更新指令时,先确定待处理的二级索引表,然后对所述二级索引表中的数据进行更新,在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳,最终按照预设的时间顺序依次排列所述二级索引表中各条记录,实现了数据更新的同时,按照时间进行数据的排序,提高了数据处理的灵活性和智能性。
进一步地,提出本发明数据处理方法的第二实施例。
数据处理方法的第二实施例与数据处理方法的第一实施例的区别在于,参照图7,所述步骤S10之前,所述数据处理方法还包括:
步骤S50,根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
步骤S60,从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
步骤S70,在每条记录的数据添加完成时,生成每条记录对应的时间戳。
本实施例中,主要描述二级索引表的建立,具体地,先确定主表的行主键rowkey,然后根据主表的行主键,建立所述主表关联的二级索引表,由于二级索引表中包含多条记录,因此,所述二级索引表中各条记录对应的行主键与所述主表的行主键相同,也就是说,在主表的行主键rowkey为rowkey1时,所述主表关联的二级索引表中,各条记录对应的行主键也是rowkey1。然后,从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中,最终在每条记录的数据添加完成时,生成每条记录对应的时间戳,由于每条记录中都要添加数据,且添加数据的时间是不同的,因此,每条记录对应的时间戳都是不同的,同样以行主键为rowkey1举例,例如当前二级索引表中包含10条记录,确定了时间戳之后,包括时间戳的10条记录的行主键分别为rowkey1-10:00、rowkey1-10:01、rowkey1-10:02、…、rowkey1-10:09。
应当理解的是,每条记录的时间戳一旦生成,后续无论对该记录修改几次,该记录的时间戳都会保持不变,也就是说,二级索引表中的时间戳是一个固定值,不会因为记录中的数据改变而改变。
在本实施例中,在建立主表关联的二级索引表之后,获取主表中的数据添加到二级索引表中,最终在每条记录的数据添加完成时,生成每条记录对应的时间戳,实现了在二级索引表中,每条记录都是有时间戳的,后续根据所述时间戳即可直接进行排序了,实现了数据更新的同时,按照时间进行数据的排序,提高了数据处理的灵活性和智能性。
进一步地,提出本发明数据处理方法的第三实施例。
数据处理方法的第三实施例与数据处理方法的第二实施例的区别在于,参照图8,所述步骤S20包括:
步骤S21,在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
步骤S22,从所述二级索引表关联的主表中获取对应的数据;
步骤S23,将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
在本实施例中,在接收到数据更新指令,且所述数据更新指令为数据添加指令时,此时,先在所述二级索引表中添加记录项,也就是说,增加多一个记录项,然后从所述二级索引表关联的主表中获取对应的数据,如记录项有多少个列值,每个列值对应什么数据类型,都从所述主表中进行获取,最终将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳,相当于是增加新的记录时,重新生成新的记录对应的时间戳。
在本实施例中,在所述数据更新指令为数据添加指令时,先在所述二级索引表中添加记录项,最终将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,使得分布式存储系统中的数据可以随时进行增加,提高了数据管理的灵活性。
进一步地,提出本发明数据处理方法的第四实施例。
数据处理方法的第四实施例与数据处理方法的第三实施例的区别在于,所述步骤S21之后,所述步骤S20包括:
获取外界输入的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
将所述新的记录添加到所述二级索引表关联的主表中。
在本实施例中,获取外界输入的数据,所述外界可以是外部设备,也可以是用户,在获取到所述外界输入的数据时,先将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳,最终将所述新的记录添加到所述二级索引表关联的主表中。
在本实施例中,通过将外界输入的数据添加到主表中,进行存储,同样实现了数据的更新,从而提高了数据更新的灵活性。
进一步地,提出本发明数据处理方法的第五实施例。
数据处理方法的第五实施例与数据处理方法的第一实施例的区别在于,参照图9,所述步骤S40之后,所述数据处理方法还包括:
步骤S80,在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
步骤S90,根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
在本实施例中,在所述二级索引表的任一条记录中接收到数据修改指令时,首先,获取修改后的数据,然后根据修改后的数据替换所述记录中的数据,由于所述记录对应的时间戳保持不变,相当于是数据修改后,时间戳也不会修改,提高了数据存储的稳定性。
为更好理解本发明,举例详述之:
首先,应当理解的是,现有的分布式存储系统hbase中使用二级索引表的功能,主要实现方式为:主表包括1条rowkey记录,其中,用10列显示该条rowkey记录,分别为列1、列2…、列10,而二级索引表中包括10条rowkey记录,这10条rowkey记录用来查询该主表某条记录,以实现快速查询,也就是说,现有的设计只提供快速查询主表某列的功能。
而本实施例中,主表包括1条rowkey记录,其中,仅有1列表示rowkey,列值为二级索引表rowkey,而二级索引表包括1条rowkey记录,同样用10列表示,但是,在rowkey中可添加时间戳。这样,数据更新时,可从主表中查询二级索引表的key,进行数值更新,而按照时间进行排序查询时,则可直接查询二级索引表,进行按照时间进行排序展示处理,本实施例中,所述排序的方式优选为逆序排列。
具体地,参照下列内容:
步骤A、首先,先采用二级索引表的方式来保存相关数据信息;
比如:主表采用如下方式设计。
Rowkey 列
Id_msgid timestamp_id_msgid
二级索引表采用如下方式设计。
步骤B、如步骤A,表示为此种设计的库表设计方式。当新增一条记录时,先在二级索引表中新增对应的记录项,并在主表中获取新增数据的rowkey信息,以添加到二级索引表,之后,开始向主表中新增一条对应记录,主表记录用来更新操作。
步骤C、更新操作时,根据可获知项自动拼装的rowkey信息,从主表中进行查询,可查询出对应的列值,该列值为二级索引表的rowkey信息,因此可以根据该rowkey在二级索引表中进行相关的更新操作。
步骤D、当按照时间进行逆排序时,可以直接查询二级索引表rowkey字段,按照timestamp(时间戳)进行逆排序,之后,根据排序好的逆序结果,进行相关数据的展示工作。
步骤E、此时,就已经实现了通过该种设计,在hbase的基础之上完成的即可更新,又可逆排序的功能了。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种服务器,其特征在于,所述服务器包括:处理器以及分布式存储系统;
所述处理器用于在所述分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
对所述二级索引表中的数据进行更新;
在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
按照预设的时间顺序依次排列所述二级索引表中各条记录。
2.如权利要求1所述的服务器,其特征在于,所述处理器还用于:
根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
在每条记录的数据添加完成时,生成每条记录对应的时间戳。
3.如权利要求2所述的服务器,其特征在于,所述处理器对所述二级索引表中的数据进行更新包括:
在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
从所述二级索引表关联的主表中获取对应的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
4.如权利要求3所述的服务器,其特征在于,所述处理器还用于:
获取外界输入的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
将所述新的记录添加到所述二级索引表关联的主表中。
5.如权利要求1-4任一项所述的服务器,其特征在于,所述处理器还用于:
在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
6.一种数据处理方法,其特征在于,所述数据处理方法包括:
在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表;
对所述二级索引表中的数据进行更新;
在数据更新完成时,若接收到数据排序指令,识别所述二级索引表中各条记录的预置时间戳;
按照预设的时间顺序依次排列所述二级索引表中各条记录。
7.如权利要求6所述的数据处理方法,其特征在于,所述在分布式存储系统中接收到数据更新指令时,确定待处理的二级索引表的步骤之前,所述数据处理方法还包括:
根据主表的行主键,建立所述主表关联的二级索引表,其中,二级索引表中各条记录对应的行主键与所述主表的行主键相同;
从所述主表中获取数据,并将获取的数据添加到所述二级索引表的各条记录中;
在每条记录的数据添加完成时,生成每条记录对应的时间戳。
8.如权利要求7所述的数据处理方法,其特征在于,所述对所述二级索引表中的数据进行更新的步骤包括:
在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项;
从所述二级索引表关联的主表中获取对应的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳。
9.如权利要求8所述的数据处理方法,其特征在于,所述在所述数据更新指令为数据添加指令时,在所述二级索引表中添加记录项的步骤之后,所述数据处理方法还包括:
获取外界输入的数据;
将获取的数据添加到所述二级索引表增加的记录项中,以生成新的记录,并生成所述新的记录的时间戳;
将所述新的记录添加到所述二级索引表关联的主表中。
10.如权利要求6-9任一项所述的数据处理方法,其特征在于,所述按照预设的时间顺序依次排列所述二级索引表中各条记录的步骤之后,所述数据处理方法还包括:
在所述二级索引表的任一条记录中接收到数据修改指令时,获取修改后的数据;
根据修改后的数据替换所述记录中的数据,其中,所述记录对应的时间戳保持不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610711904.4A CN106372121B (zh) | 2016-08-23 | 2016-08-23 | 服务器及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610711904.4A CN106372121B (zh) | 2016-08-23 | 2016-08-23 | 服务器及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106372121A true CN106372121A (zh) | 2017-02-01 |
CN106372121B CN106372121B (zh) | 2020-03-17 |
Family
ID=57878941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610711904.4A Active CN106372121B (zh) | 2016-08-23 | 2016-08-23 | 服务器及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106372121B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108398641A (zh) * | 2017-11-30 | 2018-08-14 | 深圳市科列技术股份有限公司 | 一种电池数据处理方法和电池数据服务器 |
CN111459949A (zh) * | 2019-01-18 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 针对数据库的数据处理方法、装置及设备和索引更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186537A (zh) * | 2011-12-27 | 2013-07-03 | 腾讯科技(北京)有限公司 | 一种基于索引排序的数据读写方法及装置 |
US20130232306A1 (en) * | 2012-03-02 | 2013-09-05 | Cleversafe, Inc. | Merging index nodes of a hierarchical dispersed storage index |
CN103631940A (zh) * | 2013-12-09 | 2014-03-12 | 中国联合网络通信集团有限公司 | 一种应用于hbase数据库的数据写入方法及系统 |
-
2016
- 2016-08-23 CN CN201610711904.4A patent/CN106372121B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186537A (zh) * | 2011-12-27 | 2013-07-03 | 腾讯科技(北京)有限公司 | 一种基于索引排序的数据读写方法及装置 |
US20130232306A1 (en) * | 2012-03-02 | 2013-09-05 | Cleversafe, Inc. | Merging index nodes of a hierarchical dispersed storage index |
CN103631940A (zh) * | 2013-12-09 | 2014-03-12 | 中国联合网络通信集团有限公司 | 一种应用于hbase数据库的数据写入方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108398641A (zh) * | 2017-11-30 | 2018-08-14 | 深圳市科列技术股份有限公司 | 一种电池数据处理方法和电池数据服务器 |
CN111459949A (zh) * | 2019-01-18 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 针对数据库的数据处理方法、装置及设备和索引更新方法 |
CN111459949B (zh) * | 2019-01-18 | 2023-12-19 | 阿里巴巴集团控股有限公司 | 针对数据库的数据处理方法、装置及设备和索引更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106372121B (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019396B (zh) | 一种基于分布式多维分析的数据分析系统及方法 | |
CN103778148B (zh) | Hadoop分布式文件系统数据文件的生命周期管理方法和设备 | |
JP6667931B2 (ja) | 音声情報から時間情報を認識するための方法およびデバイス | |
CN106447346A (zh) | 一种智能电力客服系统的构建方法及系统 | |
JP6165913B1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN105989076A (zh) | 一种数据统计方法以及装置 | |
CN101452487B (zh) | 一种数据加载的方法、系统及数据加载装置 | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN105956123A (zh) | 基于局部更新软件的数据处理方法及装置 | |
CN104423621A (zh) | 拼音字符串处理方法和装置 | |
CN110245145A (zh) | 关系型数据库到Hadoop数据库的结构同步方法和装置 | |
JP2002032773A (ja) | 地図データの処理装置及び方法 | |
CN101477555B (zh) | 基于sql数据库的任务树的快速检索及生成显示的方法 | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
CN105786941B (zh) | 一种信息挖掘方法和装置 | |
CN106372121A (zh) | 服务器及数据处理方法 | |
CN104142952B (zh) | 报表展示方法和装置 | |
CN103793401B (zh) | 建立多个数据库表的共享索引的方法及装置 | |
CN103455964A (zh) | 一种基于案件信息的案件线索分析系统及方法 | |
CN104750860B (zh) | 一种不确定数据的数据存储方法 | |
CN103955519A (zh) | 一种台账查询记录系统及其查询记录方法 | |
CN102194156A (zh) | 一种科技查新方法及系统 | |
CN112685557B (zh) | 可视化信息资源管理方法及装置 | |
CN101566987A (zh) | 二次信息资源数据库系统及其资源处理方法 | |
CN104239314A (zh) | 一种扩展检索词的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |