CN107480205A - 一种进行数据分区的方法和装置 - Google Patents
一种进行数据分区的方法和装置 Download PDFInfo
- Publication number
- CN107480205A CN107480205A CN201710606901.9A CN201710606901A CN107480205A CN 107480205 A CN107480205 A CN 107480205A CN 201710606901 A CN201710606901 A CN 201710606901A CN 107480205 A CN107480205 A CN 107480205A
- Authority
- CN
- China
- Prior art keywords
- data
- partition
- split
- subregion
- data partition
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种进行数据分区的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:步骤S101、获取每个数据分区的大小;步骤S102、判断是否存在需要进行分割的数据分区;步骤S103、当存在需要进行分割的数据分区时,根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作以得到多个新数据分区;步骤S104、重复执行步骤S101至步骤S103,直至步骤S102判定不存在需要进行分割的数据分区。该实施方式解决了人工操作引起的错误率高、资源浪费和效率低下的问题,并且可以记录每次分区操作的详细信息,为后续查找数据分区情况提供依据,便于***管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种进行数据分区的方法和装置。
背景技术
当数据量很大,而且经常按照某个字段进行条件过滤或者分组时,可以考虑对数据进行分区,例如某种商品的销售情况,经常要查看某个月、某个季度的销售明细或者总计,则可以根据销售日期进行分区,每个月分为一个区,而且最好是能够把不同区的数据分别存放在不同的物理硬盘上,这样在进行查询的时候,可以直接在特定硬盘查询,数据量小,速度快,如果查询所有月份的数据,多块硬盘可以并行查询,速度也会明显提高。
数据库分区是一种物理数据库设计技术,虽然分区技术可以实现很多效果,例如性能的提升、管理的简化等,但其主要目的是为了在特定的数据库操作中减少数据读写的总量以缩减响应时间,提高数据查询的效率。
目前,常用的进行数据库分区的过程主要包括:
1、通过查询数据,经验判断是否需要分区,例如:当数据查询的响应时间超过一定的阈值时,可根据经验判断该分区的数据量过大;
2、通过业务知识,设置分区标识,以用于根据该分区标识进行分区;
3、根据不同的数据库类型,通过其对应的数据库语言中的分区指令,执行创建分区。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1、现有技术需要人工干预和经验判断,当遇到已经分区,但是某一分区还是太大的情形,需要人工再次进行分区;
2、具体操作过程中要结合业务知识人工设置分区标识;
3、后续查找分区记录和操作指南时需要人工进行整理。
综上,现有技术人工干预过多,出错概率大,资源浪费且效率低下;且没有成文的标准和执行记录,不利于***管理。
发明内容
有鉴于此,本发明实施例提供一种进行数据分区的方法和装置,能够解决人工操作引起的错误率高、资源浪费和效率低下的问题,并且可以记录每次分区操作的详细信息,为后续查找数据分区情况提供依据,便于***管理。
为实现上述目的,根据本发明实施例的一个方面,提供了一种进行数据分区的方法。
一种进行数据分区的方法,包括:步骤S101、获取每个数据分区的大小;步骤S102、判断是否存在需要进行分割的数据分区;步骤S103、当存在需要进行分割的数据分区时,根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,所述新数据分区的数据存放路径包括所述待分割数据分区的数据存放路径和所述新数据分区的分区标识,所述分区标识根据所述分区字段生成;步骤S104、重复执行步骤S101至步骤S103,直至步骤S102判定不存在所述需要进行分割的数据分区。
可选地,所述步骤S102包括:根据所述数据分区的大小是否超过预定的阈值来判断是否存在所述需要进行分割的数据分区;若存在某数据分区,且所述某数据分区的大小超过所述预定的阈值,则判定存在所述需要进行分割的数据分区;否则,判定不存在所述需要进行分割的数据分区。
可选地,根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作的步骤包括:在所述待分割数据分区的每行数据的尾部添加所述分区字段;根据所述分区字段确定所述每行数据此次分区操作对应的数据存放路径;根据所述数据存放路径建立新数据分区;根据所述每行数据此次分区操作对应的数据存放路径将所述每行数据保存到对应的新数据分区。
可选地,在根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作的步骤之前,还包括:记录所述需要进行分割的数据分区的分区名称。
可选地,所述分区字段包括字符和特殊符号,且每两个所述字符被所述特殊符号隔开。
根据本发明实施例的另一方面,提供了一种进行数据分区的装置。
一种进行数据分区的装置,包括:获取模块、判断模块和分割模块,其中,所述获取模块,用于获取每个数据分区的大小;所述判断模块,用于判断是否存在需要进行分割的数据分区,若存在所述需要进行分割的数据分区则执行所述分割模块,并返回继续判断是否存在所述需要进行分割的数据分区,直至不存在所述需要进行分割的数据分区;所述分割模块,用于当存在需要进行分割的数据分区时,根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,所述新数据分区的数据存放路径包括所述待分割数据分区的数据存放路径和所述新数据分区的分区标识,所述分区标识根据所述分区字段生成。
可选地,所述判断模块还用于:根据所述数据分区的大小是否超过预定的阈值来判断是否存在所述需要进行分割的数据分区;若存在某数据分区,且所述某数据分区的大小超过所述预定的阈值,则判定存在所述需要进行分割的数据分区;否则,判定不存在所述需要进行分割的数据分区。
可选地,所述分割模块包括:在所述待分割数据分区的每行数据的尾部添加所述分区字段;根据所述分区字段确定所述每行数据此次分区操作对应的数据存放路径;根据所述数据存放路径建立新数据分区;根据所述每行数据此次分区操作对应的数据存放路径将所述每行数据保存到对应的新数据分区。
可选地,还包括分区记录模块,用于:在根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作之前,记录所述需要进行分割的数据分区的分区名称。
可选地,所述分区字段包括字符和特殊符号,且每两个所述字符被所述特殊符号隔开。
根据本发明实施例的又一方面,提供了一种进行数据分区的终端。
一种进行数据分区的终端,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的进行数据分区的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的进行数据分区的方法。
上述发明中的一个实施例具有如下优点或有益效果:
通过将超过预定阈值的数据分区按照递归的方法分割为多个具有层级关系的新数据分区,克服了人工操作的不确定性,解决了人工操作引起的错误率高、资源浪费和效率低下的问题,并且可以记录每次分区操作的详细信息,为后续查找数据分区情况提供依据,便于***管理。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的进行数据分区的方法的主要步骤的示意图;
图2是根据本发明一个实施例的实现流程图;
图3是根据本发明实施例的进行数据分区的装置的主要模块的示意图;
图4是本发明实施例可以应用于其中的示例性***架构图;
图5是适于用来实现本发明实施例的终端的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的进行数据分区的方法的主要步骤的示意图。如图1所示,本发明实施例的进行数据分区的方法主要包括如下的步骤S101至步骤S104。
步骤S101:获取每个数据分区的大小。
当需要对数据表或者表的数据分区进行分区时,首先需要获取该数据表目前的各个数据分区的大小。其中,当该数据表为第一次执行分区时,整个数据表即为一个数据分区。在获取数据分区的大小时,可以通过使用hadoop的命令代码“hadoop fs–du–s–h hdfs地址”来进行获取,该命令在执行时,只需要知道数据表所在的地址,即可返回当前路径下所有的数据分区地址对应的数据分区大小。例如:根据代码“hadoop fs–du–s–h hdfs://节点/user/用户名/库名/表名”,即可返回该数据表的所有数据分区的大小。
步骤S102:判断是否存在需要进行分割的数据分区。
在本发明的实施例中,可以根据数据分区的大小是否超过预定的阈值来判断是否存在需要进行分割的数据分区;
若存在某数据分区,且所述某数据分区的大小超过预定的阈值,则判定存在需要进行分割的数据分区;
否则,判定不存在需要进行分割的数据分区。
在每次对数据表或表的数据分区进行分区之前,需要预先设定每个数据分区的阈值,预设的阈值例如是100GB(千兆字节)。其中,数据分区的阈值可以人工设定,也可以使用hadoop配置的默认值。在设定数据分区的阈值时,可根据实际应用的具体情况灵活进行调整,应兼顾数据查找的效率和数据维护的工作量而定,若分区过小,则在进行数据维护时工作量可能就会较大,若分区过大,则数据查找的效率就会变低。但是,数据分区的阈值必须大于任何一条数据的大小。那么,当获取到每个数据分区的大小后,通过将每个数据分区的大小与该阈值进行比较,即可判定是否存在需要进行分割的数据分区。
步骤S103:当存在需要进行分割的数据分区时,根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,新数据分区的数据存放路径包括待分割数据分区的数据存放路径和新数据分区的分区标识,分区标识根据分区字段生成。
在每次对数据表或表的数据分区进行分区之前,还需要预先设定此次分区操作的分区字段标识及其位置,以及文件分隔符(例如:/001),通过预先设定的这3个参数即可获取执行此次分区操作的分区字段。例如:假设一个数据表及其数据分区包括的字段标识包括“姓名”、“性别”、“年龄”和“身高”,那么这4个字段标识之间包含文件分隔符后的表示为:“姓名/001性别/001年龄/001身高”,当已知分区字段标识所在的位置(如“3”)时,即可得到对应的分区字段标识为“年龄”,根据分区字段标识即可获取到每行数据对应的分区字段。
其中,根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作的过程主要如下:
步骤S1031:在待分割数据分区的每行数据的尾部添加分区字段;
步骤S1032:根据分区字段确定每行数据此次分区操作对应的数据存放路径;
步骤S1033:根据数据存放路径建立新数据分区;
步骤S1034:根据每行数据此次分区操作对应的数据存放路径将每行数据保存到对应的新数据分区。
步骤S1031可以利用写好的MR(MapReduce)程序,在待分割数据分区的每行数据尾部追加一列分区字段,分区字段包括字符和特殊符号,且每两个字符被特殊符号隔开。例如分区字段标识为event_id,对于待分割数据分区中包含的某行数据,该行数据对应的分区字段的值为“ABC123”,那么,该分区字段标识在该行数据尾部追加的分区字段中包括的字符即为“ABC123”,在每两个字符之间添加特殊符号“@@”后,可得到该行数据尾部追加的分区字段为:“A@@B@@C@@1@@2@@3”。此处,特殊符号一般指的是在数据中不会包含的字符,例如:@、&等等。
步骤S1032在根据分区字段确定每行数据此次分区操作对应的数据存放路径时,需要根据分区字段中包括的字符和特殊符号来进行。数据存放路径由待分割数据分区的数据存放路径和新数据分区的分区标识组成,其中,新数据分区的分区标识由字符对应得到。
定义一个分区次数j,j为大于0的自然数且赋初值为1,表示对一个待分割数据分区执行分区操作的次数。由于一个待分割数据分区可能很大,在执行完一次分区操作后,分割成的新数据分区仍有可能会超出预定的阈值,此时需要对分割后得到的新数据分区再次执行分区操作,而此次分区操作可认为是对该待分割数据分区执行的第二次分区操作。
新数据分区的分区标识由字符对应得到,分区字段中包括的字符具有顺序号,且字符的顺序号与分区次数j相对应,亦即,新数据分区的分区标识由顺序号与分区次数j相对应的字符对应得到。以分区字段包括的字符为“ABC123”为例,每个字符被赋予预定的顺序号,顺序号为大于0的自然数且赋初值为1,那么字符“A”对应的顺序号即为1,字符“B”对应的顺序号即为2,字符“1”对应的顺序号即为4,等等。由此,当分区次数j=1时,对应的新数据分区的分区标识即为“A”;当分区次数j=2时,对应的新数据分区的分区标识即为“B”;当分区次数j=4时,对应的新数据分区的分区标识即为“1”,等等。
新数据分区的数据存放路径由待分割数据分区的数据存放路径和新数据分区的分区标识组成。假设待分割数据分区的数据存放路径为X,分区字段标识为test_id,对于待分割数据分区中包含的某行数据,该行数据对应的分区字段的值为“ABC123”,那么,该行数据尾部添加的分区字段为“A@@B@@C@@1@@2@@3”,当分区次数j=1时,对应的新数据分区的数据存放路径为X/test_id_partition=A;当分区次数j=2时,对应的新数据分区的数据存放路径为X/test_id_partition=A/test_id_partition=B;当分区次数j=3时,对应的新数据分区的数据存放路径为X/test_id_partition=A/test_id_partition=B/test_id_partition=C,依此类推,即可得到该行数据每次分区操作对应的数据存放路径。又如,某待分割数据分区路径为X,其中包含4行数据,根据预定的分区字段标识“Event_id”进行第二次分区操作(即:j=2)时,各数据对应的新数据分区的数据存放路径如表1所示。
表1
Event_id | 分区字段 | j=2时的数据存放路径 |
ABC | A@@B@@C | X/event_id_partition=A/event_id_partition=B |
ADC | A@@D@@C | X/event_id_partition=A/event_id_partition=D |
ABD | A@@B@@D | X/event_id_partition=A/event_id_partition=B |
BDC | B@@D@@C | X/event_id_partition=B/event_id_partition=D |
通过步骤S1032即可确定每行数据此次分区操作对应的数据存放路径,之后,执行步骤S1033:根据数据存放路径建立新数据分区。在建立新数据分区时,对于不同的数据,执行此次分区操作对应的数据存放路径可能相同,此时只需要建立一个新数据分区即可。同时,在建立新数据分区时,还可以为该新数据分区命名,命名规则可以根据需要自行设定,例如可以简单地以该新数据分区的路径作为其分区名称等等。
在建立了不同的新数据分区后,即可执行步骤S1034:根据数据此次分区操作对应的数据存放路径将数据保存到对应的新数据分区。例如:某待分割数据分区的数据存放路径为X,分区字段标识为test_id,该待分割数据分区包括3条数据,其中,数据1对应的分区字段包括的字符为“ABC123”;数据2对应的分区字段包括的字符为“AED56”;数据3对应的分区字段包括的字符为“CD24”。当对该待分割数据分区执行第一次分区操作时,根据这3条数据的分区字段可以得到此次(第一次)分区操作对应的数据存放路径分别为:X/test_id_partition=A和X/test_id_partition=C;根据这两个数据存放路径可建立两个新数据分区,若以数据存放路径为分区名称,则这两个新数据分区的分区名称分别为:X/test_id_partition=A和X/test_id_partition=C;根据这3条数据此次分区操作对应的数据存放路径,应将数据1和数据2保存到新数据分区X/test_id_partition=A中,将数据3保存到新数据分区X/test_id_partition=C中,如此,即可实现将该待分割数据分区分成了两个新数据分区X/test_id_partition=A和X/test_id_partition=C。在进行数据分区过程中,待分割数据分区中的数据按照前面所述的方法被分配到了两个新数据分区中,此时,待分割数据分区即变成了分割后的新数据分区。
步骤S104:重复执行步骤S101至步骤S103,直至步骤S102判定不存在需要进行分割的数据分区。
如前所述,在将待分割数据分区进行一次分区操作后,将再次执行步骤S101和S102时,判定是否仍存在需要进行分割的数据分区。当仍存在需要进行分割的数据分区时,则再次执行步骤S103;当不存在需要进行分割的数据分区时,则对所述数据表或表的数据分区的分区过程结束。
另外,在如上所述的数据分区过程完成之后,还可以将在MR程序执行过程中,由不同的reduce(归约)节点产生的小文件进行合并,这些小文件是待分割数据分区内的文件,在执行分区操作过程中被分散存放在不同文件中,通过将这些小文件进行合并,可以优化查询效率。
为了方便后续查询数据的分区情况,在步骤S103根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作之前,还可以记录需要进行分割的数据分区的分区名称,以形成规范化的“分区列表”。根据查询需要,该“分区列表”中还可以记录待分割数据分区的分割时间、分割次数,以及每次分割后得到的数据分区路径等等信息。
根据如上所述的步骤S101至步骤S104,即可将超过预定阈值的数据分区按照递归的方法分割为多个具有层级关系的新数据分区,克服了人工操作的不确定性,解决了人工操作引起的错误率高、资源浪费和效率低下的问题,并且可以记录每次分区操作的详细信息,为后续查找数据分区情况提供依据,便于***管理。
图2是根据本发明一个实施例的实现流程图。如图2所示,在开始执行程序之前,需要先设置分区参数(步骤S201),例如:分区阈值、分区字段标识及其位置、文件分隔符等等。设置完成后,首先需要获取数据分区的大小(步骤S202);然后根据数据分区的大小是否超过预先设置的分区阈值来判断是否存在待分割数据分区(步骤S203);当不存在待分割数据分区时,程序结束(步骤S208),当存在待分割数据分区时,将执行分区操作,主要包括:在待分割数据分区每行数据尾部添加分区字段(步骤S204);根据分区字段确定此次分区操作的数据存放路径(步骤S205);根据数据存放路径动态创建新数据分区(步骤S206);将待分割数据分区内的数据保存到新数据分区中(步骤S207),如此,即可完成此次分区操作;最后,再次跳转到步骤S202,并按照本段前面介绍的流程重复执行,直至不存在待分割数据分区时,程序结束(步骤S208)。
图3是根据本发明实施例的进行数据分区的装置的主要模块的示意图。如图3所示,本发明实施例的进行数据分区的装置300主要包括获取模块301、判断模块302和分割模块303。
获取模块301用于获取每个数据分区的大小;
判断模块302用于判断是否存在需要进行分割的数据分区,若存在需要进行分割的数据分区则执行分割模块,并返回继续判断是否存在需要进行分割的数据分区,直至不存在需要进行分割的数据分区;
分割模块303用于当存在需要进行分割的数据分区时,根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,新数据分区的数据存放路径包括待分割数据分区的数据存放路径和新数据分区的分区标识,分区标识根据分区字段生成。
根据本发明的一个实施例,判断模块302还可以用于:
根据数据分区的大小是否超过预定的阈值来判断是否存在需要进行分割的数据分区;
若存在某数据分区,且所述某数据分区的大小超过预定的阈值,则判定存在需要进行分割的数据分区;
否则,判定不存在需要进行分割的数据分区。
根据本发明的一个实施例,分割模块303还可以用于通过以下过程执行分区操作:
在待分割数据分区的每行数据的尾部添加分区字段;
根据分区字段确定每行数据此次分区操作对应的数据存放路径;
根据数据存放路径建立新数据分区;
根据每行数据此次分区操作对应的数据存放路径将每行数据保存到对应的新数据分区。
另外,本发明实施例的进行数据分区的装置300还可以包括分区记录模块(图中未示出),用于:在根据预定义的分区字段对需要进行分割的待分割数据分区执行分区操作之前,记录需要进行分割的数据分区的分区名称。
根据本发明实施例的技术方案,分区字段可以包括字符和特殊符号,且每两个字符被特殊符号隔开。
根据本发明实施例的技术方案,通过将超过预定阈值的数据分区按照递归的方法分割为多个具有层级关系的新数据分区,解决了人工操作引起的错误率高、资源浪费和效率低下的问题,并且可以记录每次分区操作的详细信息,为后续查找数据分区情况提供依据,便于***管理。
图4示出了可以应用本发明实施例的进行数据分区的方法或进行数据分区的装置(根据具体案件调整)的示例性***架构400。
如图4所示,***架构400可以包括终端设备401、402、403,网络404和服务器405(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络404用以在终端设备404、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的进行数据分区的方法一般由服务器405执行,相应地,进行数据分区的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端的计算机***500的结构示意图。图5示出的终端仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、判断模块和分割模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“用于获取每个数据分区的大小的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101、获取每个数据分区的大小;步骤S102、判断是否存在需要进行分割的数据分区;步骤S103、当存在需要进行分割的数据分区时,根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,所述新数据分区的数据存放路径包括所述待分割数据分区的数据存放路径和所述新数据分区的分区标识,所述分区标识根据所述分区字段生成;步骤S104、重复执行步骤S101至步骤S103,直至步骤S102判定不存在所述需要进行分割的数据分区。
根据本发明实施例的技术方案,通过将超过预定阈值的数据分区按照递归的方法分割为多个具有层级关系的新数据分区,克服了人工操作的不确定性,解决了人工操作引起的错误率高、资源浪费和效率低下的问题,并且可以记录每次分区操作的详细信息,为后续查找数据分区情况提供依据,便于***管理。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种进行数据分区的方法,其特征在于,包括:
步骤S101、获取每个数据分区的大小;
步骤S102、判断是否存在需要进行分割的数据分区;
步骤S103、当存在需要进行分割的数据分区时,根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,所述新数据分区的数据存放路径包括所述待分割数据分区的数据存放路径和所述新数据分区的分区标识,所述分区标识根据所述分区字段生成;
步骤S104、重复执行步骤S101至步骤S103,直至步骤S102判定不存在所述需要进行分割的数据分区。
2.根据权利要求1所述的方法,其特征在于,所述步骤S102包括:
根据所述数据分区的大小是否超过预定的阈值来判断是否存在所述需要进行分割的数据分区;
若存在某数据分区,且所述某数据分区的大小超过所述预定的阈值,则判定存在所述需要进行分割的数据分区;
否则,判定不存在所述需要进行分割的数据分区。
3.根据权利要求1所述的方法,其特征在于,根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作的步骤包括:
在所述待分割数据分区的每行数据的尾部添加所述分区字段;
根据所述分区字段确定所述每行数据此次分区操作对应的数据存放路径;
根据所述数据存放路径建立新数据分区;
根据所述每行数据此次分区操作对应的数据存放路径将所述每行数据保存到对应的新数据分区。
4.根据权利要求1所述的方法,其特征在于,在根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作的步骤之前,还包括:记录所述需要进行分割的数据分区的分区名称。
5.根据权利要求1所述的方法,其特征在于,所述分区字段包括字符和特殊符号,且每两个所述字符被所述特殊符号隔开。
6.一种进行数据分区的装置,其特征在于,包括:获取模块、判断模块和分割模块,其中,
所述获取模块,用于获取每个数据分区的大小;
所述判断模块,用于判断是否存在需要进行分割的数据分区,若存在所述需要进行分割的数据分区则执行所述分割模块,并返回继续判断是否存在所述需要进行分割的数据分区,直至不存在所述需要进行分割的数据分区;
所述分割模块,用于当存在需要进行分割的数据分区时,根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作,以得到多个新数据分区,所述新数据分区的数据存放路径包括所述待分割数据分区的数据存放路径和所述新数据分区的分区标识,所述分区标识根据所述分区字段生成。
7.根据权利要求6所述的装置,其特征在于,所述判断模块还用于:
根据所述数据分区的大小是否超过预定的阈值来判断是否存在所述需要进行分割的数据分区;
若存在某数据分区,且所述某数据分区的大小超过所述预定的阈值,则判定存在所述需要进行分割的数据分区;
否则,判定不存在所述需要进行分割的数据分区。
8.根据权利要求6所述的装置,其特征在于,所述分割模块还用于:
在所述待分割数据分区的每行数据的尾部添加所述分区字段;
根据所述分区字段确定所述每行数据此次分区操作对应的数据存放路径;
根据所述数据存放路径建立新数据分区;
根据所述每行数据此次分区操作对应的数据存放路径将所述每行数据保存到对应的新数据分区。
9.根据权利要求6所述的装置,其特征在于,还包括分区记录模块,用于:在根据预定义的分区字段对所述需要进行分割的待分割数据分区执行分区操作之前,记录所述需要进行分割的数据分区的分区名称。
10.根据权利要求6所述的装置,其特征在于,所述分区字段包括字符和特殊符号,且每两个所述字符被所述特殊符号隔开。
11.一种进行数据分区的终端,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710606901.9A CN107480205B (zh) | 2017-07-24 | 2017-07-24 | 一种进行数据分区的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710606901.9A CN107480205B (zh) | 2017-07-24 | 2017-07-24 | 一种进行数据分区的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107480205A true CN107480205A (zh) | 2017-12-15 |
CN107480205B CN107480205B (zh) | 2020-06-05 |
Family
ID=60595810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710606901.9A Active CN107480205B (zh) | 2017-07-24 | 2017-07-24 | 一种进行数据分区的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480205B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101531A (zh) * | 2018-06-22 | 2018-12-28 | 联想(北京)有限公司 | 文件处理方法、装置及*** |
CN109542898A (zh) * | 2018-10-30 | 2019-03-29 | 天津字节跳动科技有限公司 | 资料库表格的数据存储方法、装置、电子设备及存储介质 |
CN110519319A (zh) * | 2018-05-22 | 2019-11-29 | 杭州海康威视数字技术股份有限公司 | 一种***分区的方法及装置 |
CN110750515A (zh) * | 2019-09-25 | 2020-02-04 | 浙江大华技术股份有限公司 | 数据库查询方法及处理装置 |
CN111061738A (zh) * | 2019-12-16 | 2020-04-24 | 中国建设银行股份有限公司 | 数据表预分组方法、装置、设备及存储介质 |
CN112905596A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理的方法、装置、计算机设备以及存储介质 |
CN113778657A (zh) * | 2020-09-24 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546294A (zh) * | 2009-04-30 | 2009-09-30 | 青岛海信宽带多媒体技术有限公司 | 一种Flash存储器的数据存储方法 |
US20090245665A1 (en) * | 2008-03-31 | 2009-10-01 | Konica Minolta Systems Laboratory, Inc. | Systems and methods for resolution switching |
CN103902544A (zh) * | 2012-12-25 | 2014-07-02 | ***通信集团公司 | 一种数据处理方法及*** |
CN105009110A (zh) * | 2012-11-30 | 2015-10-28 | 华为技术有限公司 | 大规模并行处理(mpp)数据库的自动伸缩方法 |
-
2017
- 2017-07-24 CN CN201710606901.9A patent/CN107480205B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090245665A1 (en) * | 2008-03-31 | 2009-10-01 | Konica Minolta Systems Laboratory, Inc. | Systems and methods for resolution switching |
CN101546294A (zh) * | 2009-04-30 | 2009-09-30 | 青岛海信宽带多媒体技术有限公司 | 一种Flash存储器的数据存储方法 |
CN105009110A (zh) * | 2012-11-30 | 2015-10-28 | 华为技术有限公司 | 大规模并行处理(mpp)数据库的自动伸缩方法 |
CN103902544A (zh) * | 2012-12-25 | 2014-07-02 | ***通信集团公司 | 一种数据处理方法及*** |
Non-Patent Citations (1)
Title |
---|
孙雷刚等: "数据分区在地学空间数据查询中的应用", 《计算机应用》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519319A (zh) * | 2018-05-22 | 2019-11-29 | 杭州海康威视数字技术股份有限公司 | 一种***分区的方法及装置 |
CN110519319B (zh) * | 2018-05-22 | 2022-02-11 | 杭州海康威视数字技术股份有限公司 | 一种***分区的方法及装置 |
CN109101531A (zh) * | 2018-06-22 | 2018-12-28 | 联想(北京)有限公司 | 文件处理方法、装置及*** |
CN109101531B (zh) * | 2018-06-22 | 2022-05-31 | 联想(北京)有限公司 | 文件处理方法、装置及*** |
CN109542898A (zh) * | 2018-10-30 | 2019-03-29 | 天津字节跳动科技有限公司 | 资料库表格的数据存储方法、装置、电子设备及存储介质 |
CN110750515A (zh) * | 2019-09-25 | 2020-02-04 | 浙江大华技术股份有限公司 | 数据库查询方法及处理装置 |
CN111061738A (zh) * | 2019-12-16 | 2020-04-24 | 中国建设银行股份有限公司 | 数据表预分组方法、装置、设备及存储介质 |
CN113778657A (zh) * | 2020-09-24 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
CN113778657B (zh) * | 2020-09-24 | 2024-04-16 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
CN112905596A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理的方法、装置、计算机设备以及存储介质 |
CN112905596B (zh) * | 2021-03-05 | 2024-02-02 | 北京中经惠众科技有限公司 | 数据处理的方法、装置、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107480205B (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107480205A (zh) | 一种进行数据分区的方法和装置 | |
CN110019211A (zh) | 关联索引的方法、装置和*** | |
CN109409119A (zh) | 数据操作方法和装置 | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
CN108629029A (zh) | 一种应用于数据仓库的数据处理方法和装置 | |
CN108256070A (zh) | 用于生成信息的方法和装置 | |
CN110019080A (zh) | 数据访问方法和装置 | |
CN113157947A (zh) | 知识图谱的构建方法、工具、装置和服务器 | |
US10417192B2 (en) | File classification in a distributed file system | |
CN108171528A (zh) | 一种归因方法及归因*** | |
CN112860744A (zh) | 一种业务流程处理方法和装置 | |
CN108288208A (zh) | 基于图像内容的展示对象确定方法、装置、介质及设备 | |
CN112085087A (zh) | 业务规则生成的方法、装置、计算机设备及存储介质 | |
CN110798467A (zh) | 目标对象识别方法、装置、计算机设备及存储介质 | |
CN109359281A (zh) | 动态表单生成方法及装置 | |
CN111339743B (zh) | 一种账号生成的方法和装置 | |
US20190163726A1 (en) | Automatic equation transformation from text | |
CN110309142A (zh) | 规则管理的方法和装置 | |
CN110807097A (zh) | 分析数据的方法和装置 | |
CN107895044A (zh) | 一种数据库数据处理方法、装置和*** | |
CN110109912A (zh) | 一种标识符生成方法和装置 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN110347654A (zh) | 一种上线集群特性的方法和装置 | |
CN109086438A (zh) | 用于查询信息的方法和装置 | |
CN115470767A (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 |