CN106294371B - 字符串值域切分方法及装置 - Google Patents
字符串值域切分方法及装置 Download PDFInfo
- Publication number
- CN106294371B CN106294371B CN201510250681.1A CN201510250681A CN106294371B CN 106294371 B CN106294371 B CN 106294371B CN 201510250681 A CN201510250681 A CN 201510250681A CN 106294371 B CN106294371 B CN 106294371B
- Authority
- CN
- China
- Prior art keywords
- cutting
- integer
- character string
- node
- character
- 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.)
- Active
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Abstract
本申请公开了一种应用于数据仓库集成领域的字符串值域切分方法及装置,该方法包括:提取待抽取数据主键中ASCII码值最大及最小的字符串,根据ASCII码值以及预置的进制基数按权展开求和将字符串转化为大整数,组成待切分范围,求其范围差,根据范围差和预置切分份数对待切分范围进行均等切分,得到切分步长,从而能够得到切分节点对应的大整数,采用辗转相除法将切分节点对应的大整数还原为切分节点字符串,根据切分节点字符串生成多条数据抽取语句,进而实现多线程加速抽取。本申请还对上述方法进行了优化,即在按权展开求和以及辗转相除过程中采用缩小的进制基数。本发明极大地提高了数据传输过程中的并发性、高效性。
Description
技术领域
本发明应用于数据仓库集成领域,涉及一种字符串值域切分方法及装置,具体涉及一种应用在数据仓库集成领域中进行离线数据抽取时,对数字、字符串根据值域范围进行均等切分以实现多线程加速抽取的方法。
背景技术
在大数据时代下,数据需要不断流转、交换才能价值最大化,在企业的数据仓库,商业智能建设中,通常会把存放于各种RDBMS(关系型数据库,比如Mysql、Oracle,PostgreSQL等)上的在线数据同步抽取到离线的存储、计算平台进行统一加工处理(例如开源社区的Hadoop,阿里集团内部的ODPS等系统),如图1所示,也会把在线数据迁移到其他在线系统(如从Mysql迁移数据到Oracle),如图2所示。
比如现在有一张mysql表t,数据行数为1亿行,需要抽取其数据,显然快速同步必然需要多线程抽取。如果我们已知其主键为name,并且name的最小值为“aa”,最大值为”zz”,指定切分份数为3份,如图3。为了实现多线程加速抽取,需要获取“aa”和”zz”之间的两个节点,才能够完成切分并依据切分后的字符串段进行多线程抽取。而现有的做法一般是将字符串转化为极小的数字,组成待切分范围,对数字范围等差切分,得到切分节点,根据切分范围生成多条数据抽取语句,进而实现多线程加速抽取。
但是这样的做法存在一定的缺陷。
首先,采用把字符串转换为极小数(如BigDecimal)表示方式,但是在字符串的转换运算中,可能抛出异常,导致切分失败。
其次,为了避免在字符串的转换运算中可能抛出异常,选择适应的算法时往往需要对转换的数据进行近似处理(比如四舍五入等操作),从而使得精度受损而无法将字符串精确还原,此外在一些极小数被还原为字符串时必须指定还原字符的最大长度,此限制同样导致精度无法还原。
再者,对字母字符串转换为极小数的过程中需要采用65536为基数,此范围基本上容纳了所有的欧美字符和绝大部分的亚洲字符,进而对ASCII字符串在切分后的还原过程中,也可能出现非ASCII字符。
另外,对字符串的不同待切分类型,转换为极小数的方式并不通用,并非适用于任何字符串,比如RDBMS中的整数类型/时间类型等就不适用。
因此,随着对接的数据存储日益增长以及数据源头数据库类型的日益丰富,对数据传输性能、准确性、数据一致性、稳定性等造成严峻考验,如何提高数据传输性能的稳定性,尤其是多线程抽取以实现加速,并适用于所有切分类型的字符串就成为了亟待解决的技术问题。
发明内容
本申请所要解决的技术问题是,克服现有技术的不足,提供一种更准确、更高效的字符串值域切分方法及装置。
本申请的一个目的在于提出一种字符串值域切分方法,应用于数据仓库集成领域,包括:提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长;根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
本申请的另一个目的在于提出一种字符串值域切分装置,应用于数据仓库集成领域,该装置包含:字符串提取模块、字符串转化模块、切分步长获取模块、切分节点获取模块、字符串还原切分模块,其中:所述字符串提取模块,用于提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;所述字符串转化模块,用于根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;所述切分步长获取模块,用于根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长;所述切分节点获取模块,用于根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;所述字符串还原切分模块,用于根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
本申请的另一个目的在于提出一种字符串值域切分方法,应用于数据仓库集成领域,提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
本申请的另一个目的在于提出一种字符串值域切分装置,应用于数据仓库集成领域,该装置包含:字符串提取模块、字符串转化模块、切分步长获取模块、切分节点获取模块、字符串还原切分模块,其中:所述字符串提取模块,用于提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;所述字符串转化模块,用于根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;所述切分步长获取模块,用于根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;所述切分节点获取模块,用于根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;所述字符串还原切分模块,用于根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
与现有技术相比,本申请能够获得以下技术效果:
1)实现了通用的ASCII字符串范围切分,保证对任意给定ASCII字符串都能做到切分;切分算法中以按权相加的方法将字符串转化为不失真的大整数,通过两个大整数的差值范围与切分份数是否能整除来判断切分步长,保证了切分过程是完全不失真的;由于转化过程中的进制基数在128以内,故切分结果仍然限制在128个ASCII字符范围内,从而有效地避免了非ASCII字符的出现。
2)通过辗转相除法将转化结果进行还原,利用辗转相除法在处理大数时的高效性,本发明的还原过程不会出现任何失真情况,很好地解决了现有技术中极小数在还原过程中因精度受损而无法精确还原的问题。
3)在优化方案中,采取了缩小进制的方法,将转化过程中按权相加的进制基数进一步缩小到待切分字符串的单个字符中综合ASCII码值的最大和最小之间,从而使还原结果中避免了ASCII码值为0—31及127的不可见字符的出现,提高了切分节点字符串的可读性,数据处理人员在排错时也更加方便。
4)通过把要进行切分的字段,都无损的转换为大整数类型,并进行等差切分后再逆向不失真的还原成其本来类型。
综上,本发明在解决数据传输性能,尤其是多线程抽取以实现加速等方面有显著进步。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术及本申请实施例的离线数据同步场景的示意图;
图2为现有技术及本申请实施例的数据迁移场景的示意图;
图3为现有技术中进行数据多线程切分加速抽取的示意图;
图4为本申请实施例中的字符串值域切分的流程示意图;
图5为本申请实施例中图4中步骤1003的细部流程示意图;
图6为本申请实施例中图4中步骤1004的细部流程示意图;
图7为本申请实施例中根据第二大整数与所述切分步长求切分节点的示意图;
图8是本申请实施例中根据第二大整数与所述切分步长求切分节点的又一示意图;
图9是本申请实施例中采用128为进制基数得到切分节点的示意图;
图10是本申请实施例中采用缩小的进制基数得到切分节点的示意图;
图11是本申请实施例中一种字符串值域切分装置的结构示意图;
图12是本申请实施例中又一种字符串值域切分装置的结构示意图;
图13是本申请实施例中又一种字符串值域切分装置的结构示意图;
图14是本申请实施例中又一种字符串值域切分装置的结构示意图;
图15是本申请实施例中又一种字符串值域切分装置的结构示意图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
实施例一
如图4所示,为本申请实施例中的字符串值域切分,包括如下步骤:
步骤1001,提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串。
抽取数据是数据同步过程中待处理的数据,例如,数据表中保存有多行数据,对这个数据表中进行数据同步过程时,需要逐行地对每行数据进行离线抽取,离线抽取并进行处理的某一行数据就是步骤1001中提到的待抽取数据。
待抽取数据往往具有一主关键字,主关键字也称主键,主键一般是数据表中的一个或多个字段,数据表中数据行的字段必须和主键有关系且数据表中数据行的字段也只和主键有关系。因此主键可以唯一确定数据表中的一行数据,也就是说,主键能够唯一地确定待抽取数据。
当然,用数据表来举例仅为说明解释,并不限制待抽取数据的组织形式,其可以使用数据行形式以外的其他形式进行抽取,也可以使用数据表形式以外的形式进行保存,本申请并不限于此。
由于主键保证了数据的完整性,对数数据的主键进行操作能够加快数据库的操作速度,因此只需提取待抽取数据的主关键字中ASCII码值最大的字符串、ASCII码值最小的字符串,得到主键的ASCII码值范围,将不直观的ASCII字符转化为直观的数字,更有利于均等切分。得到数据主关键字的切分结果即可唯一地对待抽取数据进行多线程加速抽取,这一过程不仅克服了ASCII字符直接被切分的不便性,同时也保证了数据的不丢失且不失真。
例如,假设某数据行的主键包含多个字符串,根据其主键提取到的ASCII码值最大的字符串为8cdB,ASCII码值最小字符串为2E4e。
步骤1002,根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序。
显然,按权值和加权系数展开求和的方式会将相应字符串转化为大整数,对大整数进行数据操作更加方便,而且进行中间数据操作时也不会导致中间处理结果的数值过于小,无法进行后续操作步骤或者后续操作结果抛出异常从而无法还原得到字符串,因此大整数显然可以保证最终处理结果都可以还原为ASCII字符串的。因此对于任意字符串都可以适用于本申请的大整数转化方式。
而对于现有技术中,更多的使用的是将字符串转化为极小数的方式,对于一些字符串在转换后进行中间处理时,中间处理结果会得到极小数,对于这种极小数在某些情况下是无法进行后续的数据操作的,这样会导致这些极小数相应的字符无法被还原,显然这个转化反而会导致字符串切分失败。
本步骤中的转化过程进一步包括:以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。待转化的字符串的具体转化的计算过程如公式1所示:
C0×B0+C0×B1+…+Cn-1×Bn-1 公式1
公式1中,C0~Cn-1是ASCII待转化的字符串中每个单个字符对应的ASCII码值,B是预置的进制基数,0~n是单个字符在相应字符串中所处的位置序号。
接续步骤1001中所示出的实例,所提取出来的第一字符串为8cdB,第二字符串为2E4e,如下是这两个字符串分别转化为大整数的过程,此处进制基数B根据ASCII字符的数量设置为128:
字符串8cdB的转化计算过程为:66×1280+98×1281+99×1282+56×1283=119075138。
字符串2E4e的转化过程为:101×1280+52×1281+69×1282+50×1283=105994853。
步骤1003,根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长。
因为第二大整数是小于第一大整数的,因此从第二大整数到第一大整数之间是存在一个数值上的差值范围的,这个差值范围就是上述范围差。而预置的切分份数在设置时并不会参考范围差来设置,所以并不能保证上述范围差一定能够被预置切分份数整除。如果能够被整除,那所述范围差恰好被均等切分,切分得到的每份的切分步长是相同的,这个整数就是切分步长;如果不能够被整除,那么为了保证切分的结果仍是整数且最大可能地保持切分结果的均等性,切分步长就由两个步长来完成。
对第一大整数和第二大整数求取范围差,计算如公式2所示:
Δ=big-small 公式2
公式2中,big表示第一大整数,small表示第二大整数,Δ表示第一大整数与第二大整数的范围差。
结合图5,为本步骤1003的细部流程,进一步包括如下步骤:
步骤1003a,判断所述切分份数与所述范围差的大小。
当所述范围差小于所述切分份数时,执行步骤1003b。
当所述范围差大于所述切分份数时,执行步骤1003c。
步骤1003b,此时无法切分到指定的份数,提示切分失败,流程结束,或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分,跳转到步骤1003c。
在步骤1003b中,可以根据第一大整数和第二大整数求范围差后,根据预置的切分份数进行模拟切分或是两个数值大小的比对来判断,此种情况若是所述范围差小于所述切分份数时,无法切分到指定的份数;也可以在预设置切分份数时根据第一大整数与第二大整数的范围差来考虑切分份数的上限值,此种情况若是所述范围差小于所述切分份数时,调整所述切分份数为所述范围差的值,本申请并不限于此。其中预置的切分份数通常大于等于1。
步骤1003c,根据预置的切分份数对所述范围差进行均等切分,并判断均等切分的结果。
判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,执行步骤1003d。
判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,执行步骤1003e。
步骤1003d,将所述整数作为切分步长。
该步骤具体实施如下:根据所述范围差对所述切分份数进行除法求商的操作,如公式3所示:
step=Δ/N 公式3
公式3中,除法求商的结果step为切分步长,N为预置切分份数。
步骤1003e,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长。
切分得到的第一份数以及第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果;
具体操作步骤如公式3所示:
step=Δ/N
r=Δ%N 公式4
公式3中,取整的结果step为第一切分步长,N为预置切分份数,取余的结果r为第二份数,其中,step+1为第二步长,N-r为第一份数。
在上述步骤1003c中,判断根据预置的切分份数对所述范围差进行均等切分结果,可以是在切分之前进行预模拟切分,若预模拟切分的结果不是整数,那么可以根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长,用两个步长以及两个步长各自对应的切分份数依次进行切分;也可以将预模拟切分结果的整数部分作为切分步长进行切分,当切分完预设的份数后,仍然余下一份数值长度与已切分好的数值长度明显不均等的数值,将这最后一份按照余下的量平均分给已切分完成的其他份,每份多加1,被加1的份数等于余下的量,本申请不限于此。
其中,以第一步长加1为第二步长,因为1是最小的整数,这样做既保证了切分步长是整数,同时也保证了切分结果的最大均等性。
步骤1004,根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到。
下面结合图6,本步骤1004的细部操作,进一步包括如下步骤:
在步骤1003c中,判断根据预置的切分份数对所述范围差进行均等切分结果是否为整数,得到了两种不同的切分步长,那么就对应两种不同的求取切分节点的方式。
若判定为整数,跳转到步骤1003d,将所述整数作为切分步长,执行步骤1004a;若判定为非整数,跳转到步骤1003e,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长,执行步骤1004b。
步骤1004a,所述整数即为切分步长,根据第二大整数与所述切分步长依次累加即可得到对应的切分节点,如图7所示;
根据所述第二大整数与所述切分步长相加得到第1切分节点对应的大整数,用所述第1切分节点对应的大整数与所述切分步长相加得到第2切分节点对应的大整数,直到得到第N-1切分节点对应的大整数,所述N等于预置切分份数。具体操作如公式:
G1=small+step
G2=G1+step
……
GN-1=GN-2+step 公式5
公式5中,G1~GN-1是第一切分节点直至第N-1切分节点对应的大整数,step为范围差对切分份数的商,即步骤1003d中得到的切分步长。
当然,本步并骤不限于这一种方式,也可根据所述第一大整数与所述切分步长相减得到倒数第一个切分节点对应的大整数,再减切分步长得到倒数第二个切分节点对应的大整数,直至得到所有的切分节点。本申请并不限于此。
步骤1004b,所述第一步长、第二步长即为切分步长,分别根据第二大整数与第一步长、第二步长依次累加即可得到每个切分节点对应的大整数,其中以第一步长为切分步长的切分份数以及以第二步长为切分步长的切分份数由预置的切分份数对所述范围差进行取整及取余的结果来决定。
结合图8,根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;
根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N-r切分节点对应的大整数,所述N-r等于所述第一份数;
用第N-r切分节点对应的大整数与所述第二步长相加得到第N-r+1切分节点对应的大整数;用所述第N-r+1切分节点对应的大整数与所述第二步长相加得到第N-r+2切分节点对应的大整数,直到得到第N-1切分节点对应的大整数,所述r等于所述第二份数,N为预置的切分份数。其具体操作步骤如公式6所示:
G1=small+step
G2=G1+step
…
GN-r=GN-r-1+step
GN-r+1=GN-r+step+1
GN-r+2=GN-r+1+step+1
…
GN-1=GN-2+step+1 公式6
公式6中,G1~GN-1是第一切分节点直至第N-1切分节点对应的大整数,step为第一步长,step+1为第二步长。
本步骤也可以由第二大整数先与第二步长累加得到前r个节点对应的大整数,再与第一步长累加得到剩余N-r-1个节点对应的大整数;
也可以由第一大整数先与第二步长相减得到前r个节点对应的大整数,再与第一步长相减得到剩余N-r-1个节点对应的大整数;
也可以由第一大整数先与第一步长相减得到前N-r个节点对应的大整数,再与第一步相减减得到剩余r-1个节点对应的大整数;
上述变形方式都可以实现本步骤,本申请不限于此。
接续步骤1001、1002中所示出的实例,将字符串8cdB和字符串2E4e切分成6份,具体实施过程如下:
N=6,step=13080285/6=2180047,r=Δ%N=3。所以,切分结果中,第一步长为step=2180047,第二步长为step+1=2180048,第一份数等于第二份数,为3份。
被切分出的5个节点G数值为G1=small+step+1=108174901、G2=G1+step+1=110354949、G3=G2+step+1=112534997、G4=G3+step=114715044、G5=G4+step=116895091
步骤1005,根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
所述还原是基于辗转相除法将大整数转化为ASCII码值,通过对ASCII码表进行查询即可得到码值对应的字符串,该所述字符串就是切分节点字符串,根据节点字符串即可对待抽取数据进行切分,从而生成多线程加速抽取的语句
接续步骤1001、1002中所示出的实例,结合图9,将字符串8cdB和字符串2E4e切分成6份,就得到如下切分范围:[8cdB,3J<5]、[3J<5,4OD□]、[4OD□,5TKU]、[5TKU、6YS$]、[6YS$,7∧Zs]、[7∧Zs,2E4e]。其中,□表示不可见字符。
以下再以一实施例对于进制基数的设置进行说明。
在上述步骤1002、1005中所使用到的进制基数是预先设置的,设置可以是在步骤1001之前,也可以是在步骤1001之后,步骤1002之前。
在ASCII码中,ASCII码值在0—31以内以及127是不可见的空字符以及控制字符,如步骤1005得到的切分节点,第二个节点字符串中ASCII码值5对应的字符是查询符,不可见,导致分界点字符串可读性差,排错不方便。为了改进此现象将有两种方式实现进制基数的设置:
1)所述进制基数是根据ASCII码所能代表的总字符数设置得到的。
一般ASCII码所能代表的基础总字符数是128。这样确保所有的切分节点对应的大整数在还原成字符串之后,切分节点字符串仍然在ASCII字符的范围内,从而避免了切分过程中出现非ASCII字符。
2)所述进制基数是根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到的,显然,相比上一种方式,该进制是缩小的进制。具体通过以下方式进行设置:
查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;
将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
其具体操作如下公式7所示:
Max=max{Max1,Max2}
Min=min{Min1,Min2} 公式7
公式7中,Max1、Min1分别是第一最大值和第二最大值,Max2、Min2分别是第二最大值和第二最小值,Max、Min分别是综合最大值与综合最小值。
如此,第二种进制基数获取的方式即如公式8所示:
Max-Min+1 公式8
公式8中,Max、Min分别是综合最大值与综合最小值。
无论采用以上哪种方式设置的进制基数,对于步骤1001-1004中的操作都是相同的,可参见实施例一中的步骤,在此不再赘述。
以下以一个实例,对于第二种缩小的进制的方式设置进制基数来进行说明。
假设对字符串8cdB和字符串2E4e进行进制缩小,字符串8cdb对应的ASCII值分别为56/99/98/66,字符串2E4e对应的ASCII值为50/69/52/101,Max=max{56,99,98,66,50,69,52,101}=101,Min=min{56,99,98,66,50,69,52,101}=50。
以Max-Min+1,即101-50+1=52作为进制基数。显然,相比第一种方式以128为进制基数的方式,第二种方式显然是将进制基数缩小了。
如果将上述两个字符串按照步骤1002所述的方法转化成大整数,结果将如下:
字符串8cdb的转化过程为:66×520+98×521+99×522+56×523=8146906,字符串2E4e的转化过程为:101×520+52×521+69×522+50×523=7219781。
第一大整数big=8146906,第二大整数small=7219781
根据步骤1003,第一大整数与第二大整数的范围差Δ=big-small=927125。对转换后的两个大整数进行范围均等切分,仍然假设切分份数为6,则
step=927125/6=154520,r=927125%6=5。所以,切分结果中,有5份的步长为step+1=154521,有1份的步长为step=154520。
根据步骤1004,得到切分节点分别为:被切分出的5个节点G数值为:G1=small+step=7374301、G2=G1+step+1=7528822、G3=G2+step+1=7683343、G4=G3+step+1=7837864、G5=G4+step+1=7992385。
如上所述,无论采用以上哪种方式设置的进制基数,对于步骤1001-1004中的操作都是相同的。但是采用不同的方式设置进制基数,步骤1005的操作会发生变化,即根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分,会有两种不同的具体操作方式。
1)根据ASCII码所能代表的总字符数设置得到所述进制基数时,直接采用辗转相除法即可进行大整数还原到字符串:
用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;
根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;
根据所述第二次取整操作的结果再次执行取整及取余操作直至第m次取整操作的结果为零,对所述第一个整数、第二个整数直至第m个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。其具体实施过程如公式9:
C0=G%B、A0=G/B
C1=A0%B、A1=A0/B
…
Cm=Am-1%B、Am=Am-1/B=0 公式9
公式9中,G是相应切分节点,C0~Cm是第一至第m次取余得到的第一个整数直至第m个整数,A0~Am-1是第一至第m次取整得到的第一个结果直至第m个结果,B是预置的进制基数。
如此,该节点对应的ASCII码值即为CmCm-1…C0,查ASCII码表即可得到节点字符串。下面通过一个具体的例子来进一步阐述该步骤:
接续实施例1中步骤1004,将得到的切分节点所对应的大整数还原为字符串:
以128为基数将得到的切分节点G利用辗转相除法转化为相应的ASCII码值。对第一个切分节点G1的处理如下,
C0=G1%128=53、A0=G1/128=845116
C1=A0%128=60、A1=A0/128=6602
C2=A1%128=74、A2=A1/128=51
C3=A2%128=51、A3=A2/128=0
则此节点对应的ASCII码值C3C2C1C0即为51/74/60/53,查ASCII码表得到第一个节点字符串为3J<5。
用同样的转换方法,其余四个节点分别得到的ASCII码值如下:52/79/68/5、53/84/75/85、54/89/83/36、55/94/90/115,查ASCII表即可得到第二个节点字符串为4OD□、第三个节点字符串为5TKU、第四个节点字符串为6YS$、第五个节点字符串为7∧Zs,正如步骤1005中所示的切分结果。
2)根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数时,需要在辗转相除算法的基础上对辗转相除的结果进一步进行还原:
采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;
根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;
根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
其具体实施过程如公式10:
C0=G%B-1+Min、A0=G/B
C1=A0%B-1+Min、A1=A0/B
…
Cm=Am-1%B-1+Min、Am=Am-1/B=0 公式10
公式10中,G是相应的切分节点,C0~Cm是第一至第m次取余得到的第一个整数直至第m个整数,A0~Am-1是第一至第m次取整得到的第一个结果直至第m个结果,B是预置的进制基数,Min是综合最小值。
如此,该节点对应的ASCII码值即为CmCm-1…C0,查ASCII码表即可得到节点字符串。
结合图10,将通过缩小进制转化出的大整数以同样的进制还原为ASCII字符串:
假设第一个切分节点G1=7374301,Min=50,B=52
C0=G1%52-1+Min=74、A0=G1/52=141813
C1=A0%52-1+Min=58、A1=A0/52=2727
C2=A1%52-1+Min=72、A2=A1/52=52
C3=A2%52-1+Min=49、A3=A2/52=1
C4=A3%52-1+Min=50、A4=A3/52=0
则此节点对应的ASCII码值C4C3C2C1C0即为50/49/72/58/74,查ASCII码表得到第一个节点字符串为21H:J。
同样的计算方法,余下四个节点对应的ASCII字符分别为:22MB3、23RFP、24WQ9、25\XV。
与1)中的方式进行对比,本步骤2)的切分结果中并不含有不可见字符,可读性更优。与此同时,若此步骤2)中不采用辗转相除法,则可能导致切分的过程中出现除不尽的小数而进行近似处理的情况,从而导致切分精度受损而无法精确还原,辗转相除法能够很好的避免上述情况。
采用2)进制缩小的方法能保证还原出的ASCII字符就在ASCII码值最小的字符及ASCII码值最大的字符之间,若是待切分字符串中不含有不可见字符,那么还原的结果中一定也不会出现不可见字符。这样便提高了切分节点的可读性,更有利于排错及数据的加速抽取。
实施例二
如图11所示,为本申请实施例的另一种字符串值域切分方法,包括:
步骤2001,提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
步骤2002,根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;
步骤2003,根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;
步骤2004,根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
步骤2005,根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
本实施例与上述实施例一中的特征相互对应,因此可参见实施例一中的相关描述,在此不再赘述。
实施例三
如图12所示,为本申请实施例的一种字符串值域切分装置,包含:字符串提取模块10、字符串转化模块20、切分步长获取模块30、切分节点获取模块40、字符串还原切分模块50,其中:
所述字符串提取模块10,用于提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
所述字符串转化模块20,用于根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;
所述切分步长获取模块30,用于根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长;
所述切分节点获取模块40,用于根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
所述字符串还原切分模块50,用于根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
如图13所示,所述字符串值域切分装置,还包含:进制基数设置模块60,与所述字符串转化模块20、所述字符串还原切分模块50相连,用于根据ASCII码所能代表的总字符数设置得到所述进制基数;或者,根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数。
当根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数时,所述进制基数设置模块60进一步用于查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
当根据ASCII码所能代表的总字符数设置得到所述进制基数时,所述字符串还原切分模块50,进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
当根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数时,所述字符串还原切分模块50进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
所述切分步长获取模块30,进一步用于判断所述切分份数与所述范围差的大小,当所述范围差小于所述切分份数时,无法切分到指定的份数,提示切分失败或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分。
所述切分步长获取模块30,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,进一步用于根据所述第二大整数与所述切分步长相加得到第1切分节点对应的大整数;通过所述第1切分节点对应的大整数与所述切分步长相加得到第2切分节点对应的大整数,直到得到第S-1切分节点对应的大整数,所述S等于预置切分份数。
所述切分步长获取模块30,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,进一步用于根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;其中,切分得到的第一份数以及的第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果。
所述切分节点获取模块40,进一步用于根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N切分节点对应的大整数,所述N等于所述第一份数;用第N切分节点对应的大整数与所述第二步长相加得到第N+1切分节点对应的大整数;用所述第N+1切分节点对应的大整数与所述第二步长相加得到第N+2切分节点对应的大整数,直到得到第N+M-1切分节点对应的大整数,所述M等于所述第二份数。
所述字符串转化模块20,进一步用于以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。
本装置实施例与上述实施例一中的特征相互对应,因此可参见实施例一中方法流程部分的相关描述,在此不再赘述。
实施例四
如图14所示,为本申请实施例的一种字符串值域切分装置,包含:字符串提取模块11、字符串转化模块21、切分步长获取模块31、切分节点获取模块41、字符串还原切分模块51,其中:
所述字符串提取模块11,用于提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
所述字符串转化模块21,用于根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中该所述位置序号是单个字符在相应字符串中的排列次序;
所述切分步长获取模块31,用于根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;
所述切分节点获取模块41,用于根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
所述字符串还原切分模块51,用于根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
如图15所示,所述字符串值域切分装置,还包含:进制基数设置模块61,与所述字符串转化模块21、所述字符串还原切分模块51相连,用于根据ASCII码所能代表的总字符数设置得到所述进制基数;或者,根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数。
当根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数时,所述进制基数设置模块61进一步用于查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
当根据ASCII码所能代表的总字符数设置得到所述进制基数时,所述字符串还原切分模块51,进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
当根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数时,所述字符串还原切分模块51进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
所述切分步长获取模块31,进一步用于判断所述切分份数与所述范围差的大小,当所述范围差小于所述切分份数时,无法切分到指定的份数,提示切分失败或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分。
所述切分步长获取模块31,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,进一步用于根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;其中,切分得到的第一份数以及的第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果。
所述切分节点获取模块41,进一步用于根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N切分节点对应的大整数,所述N等于所述第一份数;用第N切分节点对应的大整数与所述第二步长相加得到第N+1切分节点对应的大整数;用所述第N+1切分节点对应的大整数与所述第二步长相加得到第N+2切分节点对应的大整数,直到得到第N+M-1切分节点对应的大整数,所述M等于所述第二份数。
所述字符串转化模块21,进一步用于以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。
本装置实施例与上述实施例一、二中的特征相互对应,因此可参见实施例一、二中方法流程部分的相关描述,在此不再赘述。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (42)
1.一种字符串值域切分方法,应用于数据仓库集成领域,其特征在于:
提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中所述位置序号是单个字符在相应字符串中的排列次序;
根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长;
根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
2.根据权利要求1所述的字符串值域切分方法,其特征在于,
所述进制基数是根据ASCII码所能代表的总字符数设置得到的。
3.根据权利要求2所述的字符串值域切分方法,其特征在于,根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,进一步包括:
采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;
根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;
根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
4.根据权利要求1所述的字符串值域切分方法,其特征在于,
所述进制基数是根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到的。
5.根据权利要求4所述的字符串值域切分方法,所述进制基数是根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值得到的,进一步包括:
查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;
将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
6.根据权利要求5所述的字符串值域切分方法,其特征在于,根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,进一步包括:
采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;
根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;
根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
7.根据权利要求1-6中任一项所述的字符串值域切分方法,其特征在于,根据预置的切分份数对所述范围差进行均等切分,进一步包括:
判断所述切分份数与所述范围差的大小,当所述范围差小于所述切分份数时,无法切分到指定的份数,提示切分失败或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分。
8.根据权利要求1-6中任一项所述的字符串值域切分方法,其特征在于,根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,进一步包括:
根据所述第二大整数与所述切分步长相加得到第1切分节点对应的大整数;
通过所述第1切分节点对应的大整数与所述切分步长相加得到第2切分节点对应的大整数,直到得到第S-1切分节点对应的大整数,所述S等于预置切分份数。
9.根据权利要求1-6中任一项所述的字符串值域切分方法,其特征在于,根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长,还包括:
当判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;
其中,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果。
10.根据权利要求9所述的字符串值域切分方法,其特征在于,根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,进一步包括:
根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;
根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N切分节点对应的大整数,所述N等于所述第一份数;
用第N切分节点对应的大整数与所述第二步长相加得到第N+1切分节点对应的大整数;用所述第N+1切分节点对应的大整数与所述第二步长相加得到第N+2切分节点对应的大整数,直到得到第N+M-1切分节点对应的大整数,所述M等于所述第二份数。
11.根据权利要求1-6中任一项所述的字符串值域切分方法,其特征在于,根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,进一步包括:
以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。
12.一种字符串值域切分装置,应用于数据仓库集成领域,其特征在于,该装置包含:字符串提取模块、字符串转化模块、切分步长获取模块、切分节点获取模块、字符串还原切分模块,其中:
所述字符串提取模块,用于提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
所述字符串转化模块,用于根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中所述位置序号是单个字符在相应字符串中的排列次序;
所述切分步长获取模块,用于根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,将所述整数作为切分步长;
所述切分节点获取模块,用于根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
所述字符串还原切分模块,用于根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
13.根据权利要求12所述的字符串值域切分装置,其特征在于,还包括:
进制基数设置模块,用于根据ASCII码所能代表的总字符数设置得到所述进制基数。
14.根据权利要求13所述的字符串值域切分装置,其特征在于,
所述字符串还原切分模块,进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
15.根据权利要求12所述的字符串值域切分装置,其特征在于,还包括:
进制基数设置模块,用于根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数。
16.根据权利要求15所述的字符串值域切分装置,其特征在于,
所述进制基数设置模块,进一步用于查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
17.根据权利要求16所述的字符串值域切分装置,其特征在于,
所述字符串还原切分模块,进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
18.根据权利要求12-17中任一项所述的字符串值域切分装置,其特征在于,
所述切分步长获取模块,进一步用于判断所述切分份数与所述范围差的大小,当所述范围差小于所述切分份数时,无法切分到指定的份数,提示切分失败或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分。
19.根据权利要求12-17中任一项所述的字符串值域切分装置,其特征在于,
所述切分步长获取模块,判定根据预置的切分份数对所述范围差进行均等切分结果为整数时,进一步用于根据所述第二大整数与所述切分步长相加得到第1切分节点对应的大整数;通过所述第1切分节点对应的大整数与所述切分步长相加得到第2切分节点对应的大整数,直到得到第S-1切分节点对应的大整数,所述S等于预置切分份数。
20.根据权利要求12-17中任一项所述的字符串值域切分装置,其特征在于,
所述切分步长获取模块,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,进一步用于根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;其中,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果。
21.根据权利要求20所述的字符串值域切分装置,其特征在于,
所述切分节点获取模块,进一步用于根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N切分节点对应的大整数,所述N等于所述第一份数;用第N切分节点对应的大整数与所述第二步长相加得到第N+1切分节点对应的大整数;用所述第N+1切分节点对应的大整数与所述第二步长相加得到第N+2切分节点对应的大整数,直到得到第N+M-1切分节点对应的大整数,所述M等于所述第二份数。
22.根据权利要求12-17中任一项所述的字符串值域切分装置,其特征在于,
所述字符串转化模块,进一步用于以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。
23.一种字符串值域切分方法,应用于数据仓库集成领域,其特征在于,
提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中所述位置序号是单个字符在相应字符串中的排列次序;
根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;
根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
24.根据权利要求23所述的字符串值域切分方法,其特征在于,
所述进制基数是根据ASCII码所能代表的总字符数设置得到的。
25.根据权利要求24所述的字符串值域切分方法,其特征在于,根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,进一步包括:
采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;
根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;
根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
26.根据权利要求23所述的字符串值域切分方法,其特征在于,
所述进制基数是根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到的。
27.根据权利要求26所述的字符串值域切分方法,所述进制基数是根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值得到的,进一步包括:
查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;
将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
28.根据权利要求27所述的字符串值域切分方法,其特征在于,根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,进一步包括:
采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;
根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;
根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
29.根据权利要求23-28中任一项所述的字符串值域切分方法,其特征在于,根据预置的切分份数对所述范围进行均等切分,进一步包括:
判断所述切分份数与所述范围差的大小,当所述范围差小于所述切分份数时,无法切分到指定的份数,提示切分失败或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分。
30.根据权利要求23-28中任一项所述的字符串值域切分方法,其特征在于,当判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长,进一步包括:
切分得到的第一份数以及第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果。
31.根据权利要求30所述的字符串值域切分方法,其特征在于,根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,进一步包括:
根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;
根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N切分节点对应的大整数,所述N等于所述第一份数;
用第N切分节点对应的大整数与所述第二步长相加得到第N+1切分节点对应的大整数;用所述第N+1切分节点对应的大整数与所述第二步长相加得到第N+2切分节点对应的大整数,直到得到第N+M-1切分节点对应的大整数,所述M等于所述第二份数。
32.根据权利要求23-28中任一项所述的字符串值域切分方法,其特征在于,根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,进一步包括:
以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。
33.一种字符串值域切分装置,应用于数据仓库集成领域,其特征在于,该装置包含:字符串提取模块、字符串转化模块、切分步长获取模块、切分节点获取模块、字符串还原切分模块,其中:
所述字符串提取模块,用于提取待抽取数据的主关键字中ASCII码值最大的字符串为第一字符串、ASCII码值最小的字符串为第二字符串;
所述字符串转化模块,用于根据预置的进制基数,分别结合第一、第二字符串中相应的单个字符所处的位置序号将所述第一、第二字符串转化为完全不失真的第一大整数和第二大整数,其中所述位置序号是单个字符在相应字符串中的排列次序;
所述切分步长获取模块,用于根据所述第一大整数和第二大整数求取范围差,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,根据所述范围差对所述切分份数进行取整及取余操作,以所述取整操作的结果为第一步长,以所述第一步长加1为第二步长,将所述第一步长、第二步长作为切分步长;
所述切分节点获取模块,用于根据所述第二大整数与切分步长进行累加求和,得到每个切分节点所对应的大整数,其中,该切分节点由所述均等切分得到;
所述字符串还原切分模块,用于根据所述进制基数将所述每个切分节点对应的大整数还原成ASCII码值,根据ASCII码值得到相应的每个切分节点的节点字符串,根据所述节点字符串对待抽取数据进行切分。
34.根据权利要求33所述的字符串值域切分装置,其特征在于,还包括:
进制基数设置模块,用于根据ASCII码所能代表的总字符数设置得到所述进制基数。
35.根据权利要求34所述的字符串值域切分装置,其特征在于,
所述字符串还原切分模块,进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
36.根据权利要求33所述的字符串值域切分装置,其特征在于,还包括:
进制基数设置模块,用于根据所述第一、第二字符串的单个字符对应的ASCII码值中最小数值和最大数值设置得到所述进制基数。
37.根据权利要求36所述的字符串值域切分装置,其特征在于,
所述进制基数设置模块,进一步用于查找所述第一字符串的单个字符对应的ASCII码值中最小数值为第一最小值、最大数值为第一最大值,查找所述第二字符串的单个字符对应的ASCII码值中最小数值为第二最小值、最大数值为第二最大值;将所述第一最小值和第二最小值中较小的一个设置为综合最小值,将所述第一最大值和第二最大值中较大的一个设置为综合最大值,以综合最大值减去综合最小值再加1设置所述进制基数。
38.根据权利要求37所述的字符串值域切分装置,其特征在于,
所述字符串还原切分模块,进一步用于采用辗转相除法,用所述切分节点所对应的大整数对所述进制基数进行第一次取整及取余操作,将所述第一次取余操作的结果减1再加上所述综合最小值作为第一个整数;根据所述第一次取整操作的结果,对所述进制基数进行第二次取整及取余操作,将所述第二次取余操作的结果减1再加上所述综合最小值作为第二个整数;根据所述第二次取整操作的结果再次执行取整及取余操作直至第N次取整操作的结果为零,对所述第一个整数、第二个整数直至第N个整数进行倒序排列,所述倒序排列的结果是所述切分节点对应的节点字符串的ASCII码值。
39.根据权利要求33-38中任一项所述的字符串值域切分装置,其特征在于,
所述切分步长获取模块,进一步用于判断所述切分份数与所述范围差的大小,当所述范围差小于所述切分份数时,无法切分到指定的份数,提示切分失败或者调整所述切分份数为所述范围差的值,根据调整后的所述切分份数对所述范围差继续进行均等切分。
40.根据权利要求33-38中任一项所述的字符串值域切分装置,其特征在于,
所述切分步长获取模块,判定根据预置的切分份数对所述范围差进行均等切分结果为非整数时,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果,切分得到的第一份数以及第二份数之和等于所述预置的切分份数,其中,所述第一份数以所述第一步长切分得到,所述第二份数以所述第二步长切分得到,并且所述第二份数等于所述取余操作的结果。
41.根据权利要求40所述的字符串值域切分装置,其特征在于,
所述切分节点获取模块,进一步用于根据所述第二大整数与所述第一步长相加得到第1切分节点对应的大整数;根据所述第1切分节点对应的大整数与所述第一步长相加得到第2切分节点对应的大整数,直到得到第N切分节点对应的大整数,所述N等于所述第一份数;用第N切分节点对应的大整数与所述第二步长相加得到第N+1切分节点对应的大整数;用所述第N+1切分节点对应的大整数与所述第二步长相加得到第N+2切分节点对应的大整数,直到得到第N+M-1切分节点对应的大整数,所述M等于所述第二份数。
42.根据权利要求33-38中任一项所述的字符串值域切分装置,其特征在于,
所述字符串转化模块,进一步用于以所述进制基数为基数,以所述基数的整数次幂为权值,以所述单个字符的ASCII码值为加权系数,按权值和加权系数展开求和,其中以所述单个字符在相应字符串中所处的位置序号为所述基数整数次幂中的幂指数。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510250681.1A CN106294371B (zh) | 2015-05-15 | 2015-05-15 | 字符串值域切分方法及装置 |
TW104142283A TW201706879A (zh) | 2015-05-15 | 2015-12-16 | 字串值域切分方法及裝置 |
US15/154,867 US10552441B2 (en) | 2015-05-15 | 2016-05-13 | Method and apparatus for multithreading extraction of data from a database |
PCT/US2016/032517 WO2016187058A1 (en) | 2015-05-15 | 2016-05-13 | Method and apparatus for multithreading extraction of data from a database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510250681.1A CN106294371B (zh) | 2015-05-15 | 2015-05-15 | 字符串值域切分方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106294371A CN106294371A (zh) | 2017-01-04 |
CN106294371B true CN106294371B (zh) | 2019-08-16 |
Family
ID=57276125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510250681.1A Active CN106294371B (zh) | 2015-05-15 | 2015-05-15 | 字符串值域切分方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10552441B2 (zh) |
CN (1) | CN106294371B (zh) |
TW (1) | TW201706879A (zh) |
WO (1) | WO2016187058A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10891366B1 (en) * | 2017-08-18 | 2021-01-12 | Jonetix Corporation | Secure hardware signature and related methods and applications |
CN108809779A (zh) * | 2018-06-19 | 2018-11-13 | 北京上中元科技有限公司 | 一种新风净化设备自动识别/验证的方法 |
WO2020064265A1 (en) | 2018-09-24 | 2020-04-02 | Asml Netherlands B.V. | A process tool and an inspection method |
CN109918370B (zh) * | 2019-01-24 | 2021-10-08 | 西安交通大学 | 一种基于web的可配置表单应用前端的开发方法及系统 |
CN112416313B (zh) * | 2019-08-23 | 2022-07-12 | 无锡江南计算技术研究所 | 支持大整数数据类型和运算符的编译方法 |
CN111831253A (zh) * | 2020-06-30 | 2020-10-27 | 深圳市永达电子信息股份有限公司 | 一种超长位数减法的处理方法和计算机可读存储介质 |
CN115686759B (zh) * | 2023-01-04 | 2023-04-07 | 恒丰银行股份有限公司 | 一种计算虚拟机唯一识别码的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071420A (zh) * | 2007-06-22 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 一种切分索引分词的方法及系统 |
CN102479217A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库中实现计算均衡的方法及装置 |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
CN103488684A (zh) * | 2013-08-23 | 2014-01-01 | 国家电网公司 | 基于缓存数据多线程处理的电力可靠性指标快速计算方法 |
CN103778138A (zh) * | 2012-10-19 | 2014-05-07 | 深圳市世纪光速信息技术有限公司 | 一种连续字符串的切分方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6408308B1 (en) * | 1998-01-29 | 2002-06-18 | Incyte Pharmaceuticals, Inc. | System and method for generating, analyzing and storing normalized expression datasets from raw expression datasets derived from microarray includes nucleic acid probe sequences |
GB2406681B (en) | 2000-11-30 | 2005-05-18 | Coppereye Ltd | Database |
US7801851B2 (en) * | 2003-06-30 | 2010-09-21 | Gravic, Inc. | Method for ensuring referential integrity in multi-threaded replication engines |
US20090187599A1 (en) * | 2008-01-23 | 2009-07-23 | Bruso Kelsey L | Generating identity values in a multi-host database management system |
US8554602B1 (en) * | 2009-04-16 | 2013-10-08 | Exelate, Inc. | System and method for behavioral segment optimization based on data exchange |
US8260824B2 (en) * | 2009-05-05 | 2012-09-04 | Rocket Software, Inc. | Object-relational based data access for nested relational and hierarchical databases |
US8037076B2 (en) * | 2009-05-11 | 2011-10-11 | Red Hat, Inc. | Federated indexing from hashed primary key slices |
US8024374B2 (en) * | 2009-07-24 | 2011-09-20 | Oracle International Corporation | Computer object conversion using an intermediate object |
CN102713996A (zh) * | 2010-01-13 | 2012-10-03 | 三菱电机株式会社 | 隐匿检索系统以及公开参数生成装置以及加密装置以及用户秘密密钥生成装置以及查询发布装置以及检索装置以及计算机程序以及隐匿检索方法以及公开参数生成方法以及加密方法以及用户秘密密钥生成方法以及查询发布方法以及检索方法 |
US9600513B2 (en) * | 2011-06-09 | 2017-03-21 | International Business Machines Corporation | Database table comparison |
JP5737118B2 (ja) * | 2011-10-04 | 2015-06-17 | 富士通株式会社 | ストレージシステム及びストレージシステムネットワーク |
TWI493948B (zh) * | 2012-08-22 | 2015-07-21 | Hon Hai Prec Ind Co Ltd | 減少網路位址表頭的系統、裝置及方法 |
US9990478B2 (en) * | 2012-11-30 | 2018-06-05 | The Nielsen Company (Us), Llc | Methods, apparatus, and articles of manufacture to encode auxiliary data into relational database keys and methods, apparatus, and articles of manufacture to obtain encoded data from relational database keys |
-
2015
- 2015-05-15 CN CN201510250681.1A patent/CN106294371B/zh active Active
- 2015-12-16 TW TW104142283A patent/TW201706879A/zh unknown
-
2016
- 2016-05-13 US US15/154,867 patent/US10552441B2/en active Active
- 2016-05-13 WO PCT/US2016/032517 patent/WO2016187058A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071420A (zh) * | 2007-06-22 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 一种切分索引分词的方法及系统 |
CN102479217A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库中实现计算均衡的方法及装置 |
CN103778138A (zh) * | 2012-10-19 | 2014-05-07 | 深圳市世纪光速信息技术有限公司 | 一种连续字符串的切分方法和装置 |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
CN103488684A (zh) * | 2013-08-23 | 2014-01-01 | 国家电网公司 | 基于缓存数据多线程处理的电力可靠性指标快速计算方法 |
Non-Patent Citations (1)
Title |
---|
FoxBASE文件数据切分及数据转换方法;沈鸣等;《计算机系统应用》;19941231(第10期);全文 |
Also Published As
Publication number | Publication date |
---|---|
TW201706879A (zh) | 2017-02-16 |
US10552441B2 (en) | 2020-02-04 |
US20160335336A1 (en) | 2016-11-17 |
CN106294371A (zh) | 2017-01-04 |
WO2016187058A1 (en) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294371B (zh) | 字符串值域切分方法及装置 | |
CN107591800B (zh) | 基于场景分析的含分布式电源配电网运行状态预测方法 | |
Schäfer et al. | Detection of gravitational-wave signals from binary neutron star mergers using machine learning | |
US20170046614A1 (en) | Accelerated tr-l-bfgs algorithm for neural network | |
US10452676B2 (en) | Managing database with counting bloom filters | |
CN111210432B (zh) | 一种基于多尺度多级注意力机制的图像语义分割方法 | |
US20200019814A1 (en) | Jaccard similarity estimation of weighted samples: scaling and randomized rounding sample selection with circular smearing | |
WO2017124930A1 (zh) | 一种特征数据处理方法及设备 | |
CN108369584B (zh) | 信息处理系统、描述符创建方法和描述符创建程序 | |
CN102509001A (zh) | 一种自动去除时序数据野值点的方法 | |
CN109754080A (zh) | 面向嵌入式网络模型的剪枝方法 | |
CN109736720A (zh) | 一种基于改进Kriging模型的深海连接器密封结构优化方法 | |
CN108073641B (zh) | 查询数据表的方法和装置 | |
CN107861965A (zh) | 数据智能识别方法及系统 | |
CN112181715A (zh) | 基于配网自动化系统模型的可视化备份与比对方法 | |
CN105871382A (zh) | 一种Micaps第四类格点数据无损压缩算法 | |
CN107436865A (zh) | 一种词对齐训练方法、机器翻译方法及系统 | |
CN106485370B (zh) | 一种信息预测的方法和装置 | |
CN105335459A (zh) | 基于xbrl智能报告平台的合并报表数据抽取方法 | |
CN111625596A (zh) | 新能源实时消纳调度的多源数据同步共享方法及系统 | |
CN105573726A (zh) | 一种规则处理方法及设备 | |
CN113536508B (zh) | 一种制造网络节点分类方法及系统 | |
CN107784015B (zh) | 一种基于电力系统在线历史数据的数据约简方法 | |
CN103810282B (zh) | 一种罗杰斯特‑正态模型话题提取方法 | |
CN104462458A (zh) | 大数据系统的数据挖掘方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1232976 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |