一种基于分片技术的大模型数据比较方法

文档序号:6633178阅读:315来源:国知局
一种基于分片技术的大模型数据比较方法
【专利摘要】本发明公开了一种基于分片技术的大模型数据比较方法,包括以下几个步骤:设置分片参数;取出基准数据源的所有关键字,按从小到大顺序排列,并存放至关键字数组中;计算出分片个数fragment_num及每个分片中的记录数,再按序从关键字数组中获取每个分片的首尾关键字值;为每个分片启动一个工作线程,每个工作线程分别从基准数据源和待比较数据源中获取相对应的数据内容;各个工作线程逐行比较分配给自己的数据内容,并记录下差异结果;所有工作线程处理结束后,得到fragment_num个差异结果,将所有差异结果汇合为最终的差异结果。本发明应用在两个系统或两个数据库中可大幅度提高大模型数据比较效率。
【专利说明】一种基于分片技术的大模型数据比较方法

【技术领域】
[0001]本发明涉及一种基于分片技术的大模型数据比较方法,属于电力系统自动化配电网模型管理【技术领域】。

【背景技术】
[0002]配电网模型数据量比较大,一张模型表的记录数很可能会达到百万级别。针对这种数量级的表,传统的单工作流比较方式可能存在比较过程耗时较长的问题。


【发明内容】

[0003]针对现有技术存在的不足,本发明目的是提供一种应用在两个系统或两个数据库中可大幅度提高大模型数据比较效率的基于分片技术的大模型数据比较方法。
[0004]为了实现上述目的,本发明是通过如下的技术方案来实现:
[0005]本发明的一种基于分片技术的大模型数据比较方法,具体包括以下几个步骤:
[0006](I)设置分片参数,所述分片参数支持两种设置方式:按记录数设置和按数据块大小设置;若分片参数设置为按数据块大小,设数据块大小为m,设待比较数据源中每条记录的长度为k,设每个分片所包含的记录数最多为n,则可获得n = m/k ;若分片参数设置为按记录数,则η即为每个分片所包含的最多记录数;
[0007](2)取出基准数据源的所有关键字,按从小到大顺序排列,并存放至关键字数组中,所述关键字数组大小为该基准数据源中的总记录数record_sum ;
[0008](3)计算出分片个数fragment_num及每个分片中的记录数,再按序从关键字数组中获取每个分片的首尾关键字值,即得到分片信息;
[0009]fragment_num = record_sum/n+ (record_sum% η ! = O)
[0010]若总记录数record_sum为η的整数倍,则获得的每个分片中记录数都为η ;
[0011]若总记录数record_sum不为η的整数倍,贝U前fragment_num_l个分片中,每个分片的记录数为n,剩下的记录数分配在最后一个分片中;
[0012](4)为每个分片启动一个工作线程,根据对应的分片信息,每个工作线程分别从基准数据源和待比较数据源中获取相对应的数据内容;
[0013](5)各个工作线程逐行按域比较分配给自己的数据内容,并记录下差异结果;
[0014](6)所有工作线程处理结束后,得到fragment_num个差异结果,将所有差异结果按关键字从小到大汇合为一个结果,即为最终的差异结果。
[0015]上述差异结果包含差异标识和差异内容描述;所述差异标识包含插入、更新、删除三种标识;若某条记录待比较数据源中无,基准数据源中有,则该差异标识为插入;若某条记录待比较数据源中有,基准数据源中无,则该差异标识为删除;若某条记录在待比较数据源及基准数据源中关键字一致,但内容不一致,则该差异标识为更新;差异内容描述为基准数据源和待比较数据源中对应的数据记录。
[0016]在本发明中,提供按记录数设置和按数据块大小设置这两种分片参数设置方式保障了分片的灵活性;根据关键字进行每个分片的划分,保障了分片的不相交性和完整性,从而也就保障了比较过程的无冗余及差异结果的完整性;多个工作线程根据各自的分片信息同时进行读取数据内容和比较,将比较工作并发进行从而提高了整体比较效率;使用差异标识和差异内容描述记录待比较数据源记录与基准数据源记录的差异,从而根据差异结果可方便的组织出需同步的SQL语句。

【专利附图】

【附图说明】
[0017]图1为本发明的基于分片技术的大模型数据比较方法工作流程图。

【具体实施方式】
[0018]为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合【具体实施方式】,进一步阐述本发明。
[0019]本发明的一种基于分片技术的大模型数据比较方法。配电网系统中的模型表一般都有关键字,这就提供了按关键字进行分片比较的可能。本发明主要针对记录数较多的模型数据表,根据需要设置分片参数,再根据分片参数从基准数据源与待比较数据源中获取分片内容,并对多个分片同时比较,最终获取差异结果。差异结果由差异标识和差异内容描述组成,差异标识有插入、更新、删除这三种标识,差异内容描述为基准数据源和待比较数据源相应记录的内容信息。差异结果根据基准数据源为待比较数据源而生成。
[0020]参见图1,本方法具体包括以下几个步骤:
[0021](I)指定比较数据源和待比较的模型表,数据源支持的类型有数据库和数据文件等,模型表中需要有关键字。根据需要设置分片参数,可按记录数设置也可按数据块大小设置。
[0022]若分片参数设置为按数据块大小,假设设置数据块大小为m,该表中每条记录的长度为k,对应的每个分片所包含的记录数最多为n,则可获得n = m/k ;若分片参数设置为按记录数,则η即为此设置的数值。
[0023](2)获取基准数据源的所有关键字,并按由小到大顺序排列,存放至关键字数组中,该数组大小为该基准数据源中的总记录数record_sum。
[0024]结合关键字数组,根据分片参数获取分片信息,其中包括分片个数,每个分片的首尾关键字值。
[0025](3)计算出分片个数及每个分片中的记录数,再按序从关键字数组中获取每个分片的首尾关键字值;
[0026]分片个数fragment_num值应为:
[0027]fragment_num = record_sum/n+ (record_sum% η ! = O)
[0028]总记录数record_sum若为η的整数倍,那么获得的每个分片中记录数都为η ;
[0029]总记录数record_sum不为η的整数倍,那么前fragment_num_l个分片中,每个分片的记录数为n,剩下的记录数分配在最后一个分片中。
[0030](4)为每个分片启动一个工作线程,按照对应的分片信息获取基准数据源及待比较数据源的相应内容;
[0031](5)各个工作线程逐行比较分配给自己的数据内容,并记录下差异结果。差异结果中包含差异标识和差异内容描述,差异标识包含插入、更新、删除三种标识,差异内容描述为基准数据源和待比较数据源中相应记录的内容信息。
[0032](6)待所有工作线程比较完成后,得到fragment_nUm个差异结果,将所有差异结果汇合为一个结果,即为最终的差异结果。
[0033]本发明的工作原理为:
[0034]本发明主要针对在不同系统或不同数据库中的同构的记录数较多的大模型数据表的比较并获取差异结果。根据基准数据源的关键字设置分片信息,再从基准数据源与待比较数据源中获取分片内容,并同时比较多个分片,最终获取差异结果。本发明的方法实现了分片比较技术,大幅提高了记录数较多的大模型数据的比较效率。
[0035]在本发明中,提供按记录数设置和按数据块大小设置在一定程度上保障了的分片的灵活性。根据关键字进行每个分片的划分,保障了分片的不相交性和完整性,从而也就保障了比较过程的无冗余及差异结果的完整性。多个工作线程根据各自的分片信息同时进行读取数据内容和比较,将比较工作并发进行以提高整体比较效率。使用差异标识和差异内容描述记录待比较数据源记录与基准数据源记录的差异,从而根据差异结果可方便的组织出需同步的SQL语句。
[0036]采用本发明的方法,对大模型表使用分片技术进行比较,可大幅提高比较效率。在不考虑机器性能及资源占用的情况下,分片数即接近于分片后比分片前提高的速度。
[0037]以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【权利要求】
1.一种基于分片技术的大模型数据比较方法,其特征在于,具体包括以下几个步骤: (1)设置分片参数,所述分片参数支持两种设置方式:按记录数设置和按数据块大小设置; 若分片参数设置为按数据块大小,设数据块大小为m,设待比较数据源中每条记录的长度为k,设每个分片所包含的记录数最多为n,则可获得n = m/k ; 若分片参数设置为按记录数,则η即为每个分片所包含的最多记录数; (2)取出基准数据源的所有关键字,按从小到大顺序排列,并存放至关键字数组中,所述关键字数组大小为该基准数据源中的总记录数record_sum ; (3)计算出分片个数fragment_num及每个分片中的记录数,再按序从关键字数组中获取每个分片的首尾关键字值,即得到分片信息;
fragment_num = record_sum/n+ (record_sum% η ! = O) 若总记录数record_sum为η的整数倍,则获得的每个分片中记录数都为η ; 若总记录数record_sum不为η的整数倍,则前fragment_num_l个分片中,每个分片的记录数为n,剩下的记录数分配在最后一个分片中; (4)为每个分片启动一个工作线程,根据对应的分片信息,每个工作线程分别从基准数据源和待比较数据源中获取相对应的数据内容; (5)各个工作线程逐行按域比较分配给自己的数据内容,并记录下差异结果; (6)所有工作线程处理结束后,得到fragment_num个差异结果,将所有差异结果按关键字从小到大汇合为一个结果,即为最终的差异结果。
2.根据权利要求1所述的基于分片技术的大模型数据比较方法,其特征在于, 所述差异结果包含差异标识和差异内容描述; 所述差异标识包含插入、更新、删除三种标识;若某条记录待比较数据源中无,基准数据源中有,则该差异标识为插入;若某条记录待比较数据源中有,基准数据源中无,则该差异标识为删除;若某条记录在待比较数据源及基准数据源中关键字一致,但内容不一致,则该差异标识为更新; 差异内容描述为基准数据源和待比较数据源中对应的数据记录。
【文档编号】G06F17/30GK104376055SQ201410614042
【公开日】2015年2月25日 申请日期:2014年11月4日 优先权日:2014年11月4日
【发明者】王昌频, 王飞, 季惠英, 季学纯 申请人:国电南瑞科技股份有限公司, 江苏省电力公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1