CN109446205A - 判断数据状态的装置和方法以及数据更新的装置和方法 - Google Patents
判断数据状态的装置和方法以及数据更新的装置和方法 Download PDFInfo
- Publication number
- CN109446205A CN109446205A CN201710748803.9A CN201710748803A CN109446205A CN 109446205 A CN109446205 A CN 109446205A CN 201710748803 A CN201710748803 A CN 201710748803A CN 109446205 A CN109446205 A CN 109446205A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- incremental
- incremental data
- target data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及判断数据状态的装置和方法以及数据更新的装置和方法。判断数据状态的方法包括:给包括增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段,校验字段的值由相应数据的全部非主键字段确定,对于值不完全相同的非主键字段,所确定的校验字段的值也不同;将增量数据与目标数据的主键字段进行比较,如果不同,则判断增量数据的状态为新增,如果相同,则比较增量数据与目标数据的校验字段是否相同;如果增量数据与目标数据的校验字段不同,则判断增量数据的状态为修改,而如果相同则判断增量数据的状态为不变。通过引入校验字段,在判断增量数据状态时,避免了人工对不同的非主键字段反复编码的工作,极大的提升了判断效率。
Description
技术领域
本发明涉及数据仓库领域,尤其是判断数据状态的装置和方法以及数据更新的装置和方法,以及一种存储有执行所述判断数据状态的方法的指令的计算机可读存储介质。
背景技术
随着互联网和移动互联网的飞速发展,大型电信行业公司和电子商务公司,在日常运营中生产出的数据量越来越大。这些数据含有的信息量越来越多,越来越多元化,越来越复杂,并呈现爆发式增长。
为了对数据进行有效存储,通常会先从企业日常运营生产的数据中抽取出增量数据,然后判定增量数据的变化状态,所述增量数据有三种变化状态,分别是新增、修改和不变三种。再将其中新增或修改的信息添加到企业的全量数据库中。在对海量数据的存储应用中,如何根据增量数据的状态来更新全量数据,确保增量数据所包含的新增信息,全部添加到全量数据中,使得全量数据在不增加冗余数据的基础上完成更新,是每一个拥有大数据量的企业都会碰到的问题。
相关技术中判定增量数据状态,更新全量数据的方法有两种。第一种是直接将增量数据和全量数据进行对比,判定增量数据状态,并根据增量数据状态更新全量数据表。第二种是先从全量数据中截取一段周期的数据与增量数据进行对比,判定增量数据状态,再根据增量数据状态更新所述截取出的部分全量数据,最后将这部分截取出的部分全量数据表插回到全量数据中。
无论采用上述哪种方法,均需判定增量数据的变化状态,现有的判定增量数据状态方法是,取主键相同的增量数据与目标数据,对增量数据与目标数据的每一个非主键字段进行比较,判定增量数据的变化状态。
发明内容
相关技术方案中存在如下问题。例如,采用直接将全量数据整体与增量数据进行对比判定的方案,可以保证数据准确性,但是耗费了大量的时间和计算资源。又例如,采用从全量数据中截取一段周期的数据与增量数据进行对比判定的方案,虽然能减少计算时间和计算资源的消耗,但会影响数据的准确性。
在判定增量数据状态的过程中,由于增量数据的字段数和字段类型的不同,每一次判定都需要重新编写复杂的比较代码,需要大量的重复工作,效率低下。
至少部分针对上述问题,提出了本发明。
根据本发明的一方面,提供了一种判断数据状态的方法,包括:给包括增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段,所述校验字段的值由相应数据的全部非主键字段确定,对于值不完全相同的非主键字段,所确定的校验字段的值也不同;将增量数据与目标数据的主键字段进行比较,如果增量数据与目标数据的主键字段不同,则判断增量数据的状态为新增;如果增量数据与目标数据的主键字段相同,则比较增量数据与目标数据的校验字段是否相同,如果增量数据与目标数据的校验字段不同,则判断增量数据的状态为修改,如果增量数据与目标数据的校验字段相同,则判断增量数据的状态为不变。
本发明还提供了另外一种判断数据状态的方法,包括:将增量数据与目标数据的主键字段进行比较,如果增量数据与目标数据的主键字段不同,则判断增量数据的状态为新增;如果增量数据与目标数据的主键字段相同,则给包括主键字段相同的增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段,所述校验字段的值由相应数据的全部非主键字段确定,对于值不完全相同的非主键字段,所确定的校验字段的值也不同,比较增量数据与目标数据的校验字段是否相同,如果增量数据与目标数据的校验字段不同,则判断增量数据的状态为修改,如果增量数据与目标数据的校验字段相同,则判断增量数据的状态为不变。
优选的,所述目标数据是全量数据的一部分或者是全量数据的整体。
优选的,所述校验字段的值由如下方法确定:将所述每一条数据的每一条非主键字段的值分别作为HASHCODE算法的输入参数进行计算;对每个非主键字段的计算结果进行汇总,得到汇总值;将所述汇总值作为HASHCODE算法的输入参数再次进行计算;将所述汇总值的计算结果作为相应的每一条数据的校验字段的值。
优选的,所述目标数据通过如下方式获得:从增量数据的非主键字段中挑选分区字段;根据所述分区字段确定对应的分区标识;按照所述分区标识筛选全量数据,并将筛选出的分区数据作为目标数据。
优选的,所述分区字段为时间字段。
优选的,所述分区标识为所述时间字段对应的时间区间。
优选的,所述增量数据来源于生产数据。
根据本发明的另一方面,提供了一种数据更新的方法,包括:按照前述的方法,判定增量数据的变化状态;根据增量数据的变化状态更新目标数据。
优选的,所述目标数据是全量数据的一部分的情况下,将更新后的目标数据插回到全量数据中。
根据本发明的另一方面,提供了一种判断数据状态的装置,包括:用于执行前述方法的单元。
根据本发明的另一方面,提供了一种数据更新装置,包括:前述判断数据状态的装置,用于将校验字段配置给增量数据和目标数据,并且将增量数据与目标数据进行比较,得到增量数据的变化状态;和数据更新单元,用于根据增量数据的变化状态更新目标数据。
优选的,所述数据更新装置还包括分区标识单元,用于选取分区字段并确定分区标识;分区数据筛选单元,用于根据所述分区标识从全量数据中筛选得到数据作为目标数据。
优选的,所述数据更新装置还包括插回单元,用于将更新后的目标数据插回到全量数据中。
根据本发明的另一方面,提供了数据更新装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述的方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现前述的方法。
根据本公开的不同方案,至少可以实现以下下列效果中的一项或多项:提供了增量数据状态的判定方法和装置,解决了当前数据状态判定方法需要反复编写非主键字段比较代码的问题,避免了重复工作,提升了效率;提供了从全量数据中抽取分区数据的方法和装置,在不降低合并准确性的前提下,减少了合并操作所需数据量,降低了运算资源开销。
附图说明
附图构成说明书的一部分,其描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本公开。在附图中:
图1是本发明更新全量数据的方法的一个实施例的流程图;
图2是本发明判断数据状态的方法的一个实施例的流程图;
图3是本发明判断数据状态的方法的另一个实施例的流程图;
图4是本发明计算校验字段的值的方法的一个实施例的流程图;
图5是本发明数据更新装置的一个实施例的示意图。
图6是本发明全量数据更新装置的一个实施例的示意图。
应理解,附图仅仅是示例性的。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
企业在实际应用中,通常遇到的问题是,如何将由业务系统产生的增量数据更新至已有数据库中,使得全量数据库保持最新的数据状态。针对此问题,本发明提出了如图1所示的解决方案。
图1为本发明更新全量数据的方法一个实施例的流程图。该方法包括步骤S110-S160。
在步骤S110中,从增量数据的非主键字段挑选分区字段。
所述增量数据可以是任何来自于当前数据库之外的新增数据。在一种实施例中,所述增量数据来源于生产数据,所述生产数据是企业在进行具体业务时产生的数据。从生产数据中抽取增量数据需要根据一定的规则进行,所述抽取规则可以但不限于是按照修改时间抽取或按照标志位抽取。在一种实施例中,抽取规则设定为:“最后更新时间”>昨天,这样就可抽取出昨天之后的增量数据,保证了增量数据的全面性。例如,一种表明用户账户信息的数据如表1所示。如果最后更新时间是昨天之后的,则此条信息就将会被抽取出来作为增量数据。
表1.用户账户信息
名称 | 积分 | 余额 | 等级 | 最后更新时间 |
张三 | 5000 | 100 | AAA | 20170101 |
所述增量数据包含至少一个主键字段和至少一个非主键字段。所述主键字段由企业根据业务需求决定,除主键字段外的其他字段均为非主键字段。例如,如上述表1所述表明用户账户信息的数据,名称为主键字段,其他均为非主键字段。
所述分区字段是从非主键字段中挑选出的一个字段。所述分区字段的值可以是有一定规律的,连续的数值。分区字段所包含的数据量应该较为平均,对于分区数据的存储没有倾斜。
在一种实施例中,可以选取时间字段作为分区字段。企业日常业务中产生的数据,通常包含有时间字段,例如创建时间字段、访问页面时间字段或最后更新时间等。在其他实施例中也可以选择非时间字段作为分区字段。
确定分区字段后,继续执行步骤S120。在步骤S120中,根据所述分区字段确定对应的分区标识。
所述分区标识由分区字段所共有的特征确定。在分区字段是时间字段的实施例中,可以根据数据量、处理频率等因素进行不同区间长度的分区。例如按照“天”或“月”来进行分区,以2016年11月1日为例,则2016年11月1日0时0分0秒至2016年11月1日23时59分59秒的数据均对应分区标识“2016年11月1日”。
在其他实施例中,也可以根据数据量的大小选择其他时间单位进行分区。例如可以选择“月”或“年”进行分区。
确定分区标识的选取规则后,计算得到每个增量数据对应的分区标识,并统计出所有不重复的分区标识。
确定分区标识后,继续执行步骤S130。在步骤S130中,按照所述分区标识筛选全量数据,将筛选出的全量数据作为目标数据。
所述全量数据是已经存在于当前数据库中的所有已知数据。按照所述分区标识,检测每条全量数据对应的时间字段的值是否属于所述分区标识所包括的时间区间。并将所有符合要求的全量数据提取出来,作为目标数据。
例如,若分区标识为2016-11-01,2016-11-02,2016-11-03,则根据这3个分区标识所包括的时间范围,从全量数据中筛选出对应的时间字段的值属于2016-11-01,2016-11-02,2016-11-03三天的数据。所筛选出来的数据可以作为目标数据。
通过采用按照分区标识筛选目标数据的方法,避免了截取一段周期的全量数据进行判定更新时,会造成部分增量数据信息丢失的问题。例如,当增量数据包括2016-11-01,2016-11-02,2016-11-03三天的数据,而截取的时间周期为2016-10-01至2016-11-02时,这样在目标数据更新时就会丢失2016-11-03的增量数据所包含的信息。如果增大截取的时间周期的范围,会增大运算量,如果缩短时间周期的范围,则数据丢失的概率会增大。采用本发明所述的通过增量数据分区标识筛选目标数据的方法实现了在不丢失任何数据的情况下,减少计算量的目标,大大降低了运算资源的开销。
在得到目标数据后,继续执行步骤S140。在步骤S140中,判定增量数据的变化状态。
所述增量数据的变化状态包括:新增、修改和不变。以主键字段为客户,非主键字段为余额的数据举例说明增量数据三种变化状态的意思。例如,原始数据为“客户是张三,余额是100”。
当增量数据为“客户是李四,余额是100”时,因为之前并未有主键字段是李四的数据,所以此增量数据的变化状态为新增。
当增量数据为“客户是张三,余额是100,因为增量数据相对于目标数据未发生任何变化,所以此增量数据的变化状态为不变。
当增量数据为“客户是张三,余额是120”时,因为只是主键字段是张三的数据的余额发生了变化,所以此增量数据的变化状态为修改。
在增量数据的变化状态判定完成后,继续执行步骤S150。在步骤S150中,根据增量数据的变化状态更新目标数据。
根据所述目标数据表的设计方式不同,目标数据更新的方式也有所不同。在本实施例中,目标数据表是从全量数据中抽取得到,因此同全量数据表的设计方式相同。常见的全量数据表的设计方式包括覆盖表、拉链表等。
在一种实施例中,所述目标数据的设计方式是覆盖表,以主键字段为客户,非主键字段为余额的数据举例说明覆盖表的数据更新方式。原始目标为“客户是张三,余额是100”。
如果增量数据“客户为李四,余额为100”的状态是新增,则将此条数据插入目标数据表,如下表2所示:
表2.更新后的目标数据
客户 | 余额 |
张三 | 100 |
李四 | 100 |
如果增量数据“客户为张三,余额为100”的状态是不变,则不进行操作。
如果增量数据“客户为张三,余额为120”的状态是修改,则将目标数据表的余额进行更新,如下表3所示:
表3.更新后的目标数据
客户 | 余额 |
张三 | 120 |
覆盖表在更新的过程中不保留历史信息,直接用最新状态覆盖历史状态。
在另外一种实施例中,所述目标数据的设计方式是拉链表,还以主键字段为客户,非主键字段为余额的数据举例说明拉链表的更新方式。原始目标数据为“客户是张三,余额是100”。
如果增量数据“客户为李四,余额为100”的状态是新增,则与覆盖表操作相同,如上表2所示将此条数据插入目标数据表。
如果增量数据“客户为张三,余额为100”的状态是不变,则不进行操作。
如果增量数据“客户为张三,余额为120”的状态是修改,则在主键为张三的数据下新增一列数据,如下表4所示:
表4.更新后的目标数据
客户 | 余额 |
张三 | 100 |
张三 | 120 |
拉链表在更新的过程中保留历史信息,将数据的最新状态添加在历史状态之后。
在目标数据更新后,继续执行步骤S160。在步骤S160中,将更新后的目标数据插回到全量数据中。更新后的目标数据,按照在全量数据中的原位置重新插回到全量数据中,这样就实现了全量数据的更新。
优选的,所述更新全量数据的方法可用在分布式存储架构中对分布式数据仓库中数据的更新。
上述实施例介绍了一种更新全量数据的方法,通过引入分区字段,从全量数据中筛选出目标数据,解决了当前全量数据更新方法中,由于目标数据量大,消耗计算资源多的问题。
在如上述实施例所述的全量数据更新方法中,判断增量数据的变化状态需要逐个对比增量数据和目标数据的主键字段和每一个非主键字段。针对不同的非主键字段,需要编写不同的比较程序,工作量大。
为此本发明引入了一种判断增量数据变化状态的方法,如图2所示是其中一种实施例,介绍了一种判断数据状态的方法。
本领域技术人员可以理解,本发明所述判断增量数据变化状态的方法并非一定要应用于如图1所示的全量数据更新的问题中。在任何需要判定增量数据状态的问题中,均可采用本发明所述方法。例如在上述更新全量数据的实施例中,目标数据来自于全量数据。在其他应用场景中,所述目标数据可以是任何已经存在于当前数据库中的已知数据。
如图2所示的判断数据状态的方法包括步骤S210-S260。
在步骤S210中,给包括增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段。
所述校验字段是所述目标数据和增量数据本来不包含的字段。所述校验字段的值是通过一定的算法计算得到的。所述算法的特点在于:如果输入参数相同,则输出结果相同;如果输入参数不同,则输出结果不同。所述算法的输入参数是当前数据的所有非主键字段的值。
图4给出了以HASHCODE算法为例来计算得到校验字段的值的方法。该方法包括步骤:步骤S410,将所述数据的每一条非主键字段的值分别作为HASHCODE算法的输入参数进行计算;步骤S420,对每个非主键字段的计算结果进行汇总,得到汇总值,并且将所述汇总值作为HASHCODE算法的输入参数再次进行计算;和步骤S430,将所述汇总值的计算结果作为相应数据的校验字段的值。
以下表5所示的客户账户信息数据举例,其中主键字段为客户,非主键字段分别为积分、余额和等级。
表5.客户账户信息
名称 | 积分 | 余额 | 等级 |
张三 | 5000 | 100 | AAA |
所述计算校验字段的HASHCODE算法表示为H,首先分别计算各非主键字段的HASHCODE值。例如,首先计算积分的HASHCODE值H(5000)=00,接下以此计算余额与等级的HASHCODE值,H(100)=11,H(AAA)=22。本领域技术人员可以理解所述计算结果是示例性的。
对上述非主键字段的HASHCODE值汇总,按照顺序排列的方式,汇总的结果是001122。本领域技术人员可以理解,所述汇总的方式可以是依次排列上述计算结果,也可以是其他能够保证所有数据不丢失的方式。接着对上述汇总值取HASHCODE值,即H(001122)=345343345。上述计算结果就是本条数据的校验字段的值。最后,将此值配置到本条数据中。
在其他实施例中,所述计算校验字段的算法还可以是除HASHCODE算法以外的,其他符合上述特点的算法。在一种实施例中,所述算法为MD5算法。优选的,所述校验字段的计算算法为建立在数据仓库环境HIVE上的一个公用的HIVE UDF。
在为所述增量数据和目标数据均配置校验字段后,继续执行步骤S220。在步骤S220中,比较增量数据与目标数据的主键字段是否相同。如果增量数据与目标数据的主键字段不相同,则执行步骤230;如果增量数据与目标数据的主键字段相同,则执行步骤240。
在步骤S230中,判断增量数据状态为新增。为了判定增量数据相对于目标数据的变化状态,首先将增量数据与目标数据的主键字段进行比较。如果增量数据和目标数据的主键字段不相同,可判断增量数据状态为新增。
在步骤S240中,比较增量数据与目标数据的校验字段是否相同。如果增量数据与目标数据的校验字段不相同,则执行步骤S250;如果增量数据与目标数据的校验字段相同,则执行步骤S260。
在步骤S250中,判断增量数据状态为修改。如果增量数据和目标数据的校验字段不同,由计算校验字段的算法特点可知,增量数据和目标数据的至少一个非主键字段不同,因此可判断增量数据的状态为修改。
在步骤S260中,判断增量数据状态为不变。如果增量数据和目标数据的校验字段相同,由计算校验字段的算法特点可知,增量数据和目标数据的所有非主键字段均相同,因此可判断增量数据的状态为不变。
传统判断增量数据状态的方法,是对增量数据和目标数据的主键字段和所有非主键字段逐个进行比较。随着数据复杂度的提高,数据非主键字段的个数越来越多,比较工作量越来越重。
除此之外,由于数据种类越来越多,其中非主键字段的类型也越来越多,为了对非主键字段进行比较,需要针对每个不同的字段类型编写复杂的比较代码,产生大量的重复且复杂的工作。
本发明通过引入校验字段,针对任意形式的增量数据,都可通过比较主键字段和校验字段两步来实现对增量数据状态的判定。这样避免了人工针对不同的非主键字段反复编码的工作,极大的提升了判断效率。
在如上述实施例所述的判定增量数据变化状态的实施例中,当增量数据与目标数据的数据量均较大,且增量数据存在较多变化状态为不变时,可采用如图3所示实施例的方法来判定增量数据变化状态,该实施例所述方法包括步骤S310-S360。
在步骤S310中,比较增量数据与目标数据的主键字段是否相同。如果增量数据与目标数据的主键字段不同,则执行步骤S330,判断增量数据状态为不变。如果增量数据与目标数据的主键字段相同,则执行步骤S320,给包括主键字段相同的增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段;并继续执行步骤S340。
在步骤S340中,比较增量数据与目标数据的校验字段是否相同。如果增量数据与目标数据的校验字段不同,则执行步骤S350,判断增量数据状态为修改;如果增量数据与目标数据的校验字段相同,则执行步骤S360,判断增量数据状态为不变。
采用上述实施例所述方法,可减少计算和配置校验字段的运算量,提高判定效率。
在本发明的另一种实施例中,还提供了一种数据更新装置。图5是本发明数据更新装置的一个实施例的示意图,所述数据更新装置包括:判断数据状态的装置51和数据更新单元52。
所述判断数据状态的装置51包括:校验字段配置单元510、比较单元511。
校验字段配置单元510用于设计校验字段并将校验字段配置给增量数据和目标数据,例如可以执行图1实施例所述步骤S140中,或执行图2实施例所属步骤S210,或执行图3实施例所属步骤S320。
比较单元511用于将增量数据与目标数据进行比较,得到增量数据的变化状态,例如可以执行图1实施例所述步骤S140中,或执行图2实施例所属步骤S220-S260,或执行图3实施例所属步骤S310、S330-S360。
采用本发明判断数据状态的装置51进行增量数据状态判断,可以减少判断过程中所需要的计算资源。
进一步的,所述数据更新单元52,用于根据增量数据的变化状态更新目标数据,例如执行图1实施例所述步骤S150。
在一种实施例中,本发明所述数据更新装置可作为全量数据更新装置中的一个数据更新单元来完成全量数据的更新。如图6所示,提供了一种全量数据更新装置6。所述全量数据更新装置6包括分区标识单元61、分区数据筛选单元62、数据更新单元63和插回单元64。
分区标识单元61用于选取分区字段并确定分区标识,例如,可以执行图1实施例所述步骤S110和S120。
分区数据筛选单元62用于根据所述分区标识从全量数据中筛选得到分区数据作为目标数据,例如可以执行图1实施例所述步骤S130。
更新单元63用于判断增量数据状态,并更新目标数据,例如可以执行图1实施例所述步骤S140-S150,在一种实施例中,所述更新单元63与图5所示数据更新装置5的功能相同或相似。
插回单元64用于将更新后的目标数据插回到全量数据中,例如可以执行图1实施例所述步骤S160。
本发明通过提供增量数据状态的判定方法和装置,解决了当前数据状态判定方法需要反复编写非主键字段比较代码的问题,避免了重复工作,提升了效率。本发明还提供了从全量数据中抽取分区数据的方法和装置,在不降低合并准确性的前提下,减少了合并操作所需数据量,降低了运算资源开销。
至此,已经详细描述了根据本公开的实施例。为了避免使本公开的要点模糊,没有描述本领域所公知的一些细节。本领域技术人员根据本公开的教导,可以明白如何实施这里公开的技术方案及其具体细节。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是限制本公开的范围。并且本领域技术人员将理解,本公开的各实施例及其示例可以自由地组合。因此,本领域的技术人员应该理解,可以本公开的实施例进行多种修改和变更而不脱离本公开的范围和精神。因此,本公开的范围仅由所附权利要求来限定。
Claims (16)
1.一种判断数据状态的方法,包括:
给包括增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段,所述校验字段的值由相应数据的全部非主键字段确定,对于值不完全相同的非主键字段,所确定的校验字段的值也不同;
将增量数据与目标数据的主键字段进行比较,如果增量数据与目标数据的主键字段不同,则判断增量数据的状态为新增;
如果增量数据与目标数据的主键字段相同,则比较增量数据与目标数据的校验字段是否相同,
如果增量数据与目标数据的校验字段不同,则判断增量数据的状态为修改,
如果增量数据与目标数据的校验字段相同,则判断增量数据的状态为不变。
2.一种判断数据状态的方法,包括:
将增量数据与目标数据的主键字段进行比较,如果增量数据与目标数据的主键字段不同,则判断增量数据的状态为新增;
如果增量数据与目标数据的主键字段相同,则
给包括主键字段相同的增量数据和目标数据的所有数据中的每一条数据都配置一个校验字段,所述校验字段的值由相应数据的全部非主键字段确定,对于值不完全相同的非主键字段,所确定的校验字段的值也不同,
比较增量数据与目标数据的校验字段是否相同,
如果增量数据与目标数据的校验字段不同,则判断增量数据的状态为修改,
如果增量数据与目标数据的校验字段相同,则判断增量数据的状态为不变。
3.根据权利要求1或2所述的方法,其中,所述目标数据是全量数据的一部分或者是全量数据的整体。
4.根据权利要求1或2所述的方法,其中,校验字段的值由如下方法确定:
将所述每一条数据的每一条非主键字段的值分别作为HASHCODE算法的输入参数进行计算;
对每个非主键字段的计算结果进行汇总,得到汇总值;
将所述汇总值作为HASHCODE算法的输入参数再次进行计算;
将所述汇总值的计算结果作为相应的每一条数据的校验字段的值。
5.根据权利要求1或2所述的方法,其中,所述目标数据通过如下方式获得:
从增量数据的非主键字段中挑选分区字段;
根据所述分区字段确定对应的分区标识;
按照所述分区标识筛选全量数据,并将筛选出的数据作为目标数据。
6.根据权利要求5所述的方法,其特征在于,所述分区字段为时间字段。
7.根据权利要求6所述的方法,其特征在于,所述分区标识为所述时间字段对应的时间区间。
8.根据权利要求1或2所述的方法,其特征在于,所述增量数据来源于生产数据。
9.一种数据更新的方法,包括:
按照权利要求1-8任意一项所述的方法,判定增量数据的变化状态;
根据增量数据的变化状态更新目标数据。
10.根据权利要求9所述的方法,还包括:在所述目标数据是全量数据的一部分的情况下,将更新后的目标数据插回到全量数据中。
11.一种判断数据状态的装置,包括:用于执行权利要求1至8中任一项所述方法的单元。
12.一种数据更新装置,包括:
权利要求11所述的判断数据状态的装置,用于将校验字段配置给增量数据和目标数据,并且将增量数据与目标数据进行比较,得到增量数据的变化状态;和
数据更新单元,用于根据增量数据的变化状态更新目标数据。
13.根据权利要求12所述的数据更新装置,还包括:
分区标识单元,用于选取分区字段并确定分区标识;
分区数据筛选单元,用于根据所述分区标识从全量数据中筛选得到数据作为目标数据。
14.根据权利要求13所述的数据更新装置,还包括:
插回单元,用于将更新后的目标数据插回到全量数据中。
15.一种数据更新装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至10中任一项所述的方法。
16.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710748803.9A CN109446205B (zh) | 2017-08-28 | 2017-08-28 | 判断数据状态的装置和方法以及数据更新的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710748803.9A CN109446205B (zh) | 2017-08-28 | 2017-08-28 | 判断数据状态的装置和方法以及数据更新的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446205A true CN109446205A (zh) | 2019-03-08 |
CN109446205B CN109446205B (zh) | 2021-03-16 |
Family
ID=65529980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710748803.9A Active CN109446205B (zh) | 2017-08-28 | 2017-08-28 | 判断数据状态的装置和方法以及数据更新的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446205B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209891A (zh) * | 2019-06-19 | 2019-09-06 | 河南中原消费金融股份有限公司 | 一种拉链表生成方法、装置、设备及介质 |
CN110263050A (zh) * | 2019-05-06 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备及存储介质 |
CN110955671A (zh) * | 2019-11-21 | 2020-04-03 | 北京天元创新科技有限公司 | 一种数据更新处理方法及装置 |
CN111125257A (zh) * | 2019-12-25 | 2020-05-08 | 北大方正集团有限公司 | 词典更新方法、装置、设备和存储介质 |
CN112487025A (zh) * | 2020-12-18 | 2021-03-12 | 广州奇享科技有限公司 | 数据查询方法、装置、电子设备及存储介质 |
CN112765135A (zh) * | 2021-01-29 | 2021-05-07 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113821505A (zh) * | 2020-09-29 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 一种全量数据更新方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041059A1 (en) * | 2000-12-28 | 2003-02-27 | Dana Lepien | Aggregate score matching system for transaction records |
CN101373504A (zh) * | 2008-08-04 | 2009-02-25 | 北京大学 | 一种数字内容下载管理方法与系统 |
CN101719143A (zh) * | 2009-12-01 | 2010-06-02 | 北京中科创元科技有限公司 | 并行处理比对式增量数据抽取方法 |
CN102169491A (zh) * | 2011-03-25 | 2011-08-31 | 暨南大学 | 一种多数据集中重复记录动态检测方法 |
CN102195781A (zh) * | 2011-05-30 | 2011-09-21 | 武汉理工大学 | 一种基于电子记录关联签名的电子证据取证系统 |
CN102354316A (zh) * | 2011-09-22 | 2012-02-15 | 用友软件股份有限公司 | 数据更新装置和数据更新方法 |
CN103327026A (zh) * | 2013-06-28 | 2013-09-25 | 腾讯科技(深圳)有限公司 | 一种数据更新方法和更新系统 |
CN103500183A (zh) * | 2013-09-12 | 2014-01-08 | 国家计算机网络与信息安全管理中心 | 一种基于多个相关字段组合索引存储结构及建立、查询与维护方法 |
CN104142954A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 一种基于频度分区的数据表比对更新方法与装置 |
-
2017
- 2017-08-28 CN CN201710748803.9A patent/CN109446205B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041059A1 (en) * | 2000-12-28 | 2003-02-27 | Dana Lepien | Aggregate score matching system for transaction records |
CN101373504A (zh) * | 2008-08-04 | 2009-02-25 | 北京大学 | 一种数字内容下载管理方法与系统 |
CN101719143A (zh) * | 2009-12-01 | 2010-06-02 | 北京中科创元科技有限公司 | 并行处理比对式增量数据抽取方法 |
CN102169491A (zh) * | 2011-03-25 | 2011-08-31 | 暨南大学 | 一种多数据集中重复记录动态检测方法 |
CN102195781A (zh) * | 2011-05-30 | 2011-09-21 | 武汉理工大学 | 一种基于电子记录关联签名的电子证据取证系统 |
CN102354316A (zh) * | 2011-09-22 | 2012-02-15 | 用友软件股份有限公司 | 数据更新装置和数据更新方法 |
CN104142954A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 一种基于频度分区的数据表比对更新方法与装置 |
CN103327026A (zh) * | 2013-06-28 | 2013-09-25 | 腾讯科技(深圳)有限公司 | 一种数据更新方法和更新系统 |
CN103500183A (zh) * | 2013-09-12 | 2014-01-08 | 国家计算机网络与信息安全管理中心 | 一种基于多个相关字段组合索引存储结构及建立、查询与维护方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263050A (zh) * | 2019-05-06 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备及存储介质 |
CN110263050B (zh) * | 2019-05-06 | 2023-10-27 | 创新先进技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN110209891A (zh) * | 2019-06-19 | 2019-09-06 | 河南中原消费金融股份有限公司 | 一种拉链表生成方法、装置、设备及介质 |
CN110955671A (zh) * | 2019-11-21 | 2020-04-03 | 北京天元创新科技有限公司 | 一种数据更新处理方法及装置 |
CN111125257A (zh) * | 2019-12-25 | 2020-05-08 | 北大方正集团有限公司 | 词典更新方法、装置、设备和存储介质 |
CN111125257B (zh) * | 2019-12-25 | 2023-09-05 | 新方正控股发展有限责任公司 | 词典更新方法、装置、设备和存储介质 |
CN113821505A (zh) * | 2020-09-29 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 一种全量数据更新方法和装置 |
CN112487025A (zh) * | 2020-12-18 | 2021-03-12 | 广州奇享科技有限公司 | 数据查询方法、装置、电子设备及存储介质 |
CN112765135A (zh) * | 2021-01-29 | 2021-05-07 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112765135B (zh) * | 2021-01-29 | 2023-12-05 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109446205B (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446205A (zh) | 判断数据状态的装置和方法以及数据更新的装置和方法 | |
US11048871B2 (en) | Analyzing natural language expressions in a data visualization user interface | |
US10902045B2 (en) | Natural language interface for building data visualizations, including cascading edits to filter expressions | |
CN106104591B (zh) | 映射带键实体的属性 | |
KR20160058947A (ko) | 데이터에 적용되는 규칙 평가 | |
CN106203485A (zh) | 一种支持向量机的并行训练方法及装置 | |
Basgalupp et al. | Predicting software maintenance effort through evolutionary-based decision trees | |
US20080222189A1 (en) | Associating multidimensional data models | |
CN105205052A (zh) | 一种数据挖掘方法及装置 | |
CN106557307A (zh) | 业务数据的处理方法及处理系统 | |
CN114860727A (zh) | 拉链表更新方法及装置 | |
AU2019344461B2 (en) | Analyzing natural language expressions in a data visualization user interface | |
CN112052177A (zh) | 一种多值耦合信号的mc/dc测试用例集生成方法 | |
Djedović et al. | A rule based events correlation algorithm for process mining | |
CN109800147A (zh) | 一种测试案例生成方法及终端设备 | |
US7987203B2 (en) | Method of processing data for a system model | |
Mukherjee et al. | Data mining-based hierarchical transaction model for multi-level consistency management in large-scale replicated databases | |
Kumar et al. | Weighted Frequent Subgraph Mining Using Affinity Weighing in Distributed Environment | |
Xia et al. | Software Module Clustering Using the Hierarchical Clustering Combination Method | |
CN107577604A (zh) | 测试数据的生成方法、装置和计算机可读存储介质 | |
Bruwer | Petal-shaped Clustering for the Capacitated Vehicle Routing Problem | |
Fay et al. | Package ‘interval’ | |
El Bekri et al. | Cluster Rule Based Algorithm for Detecting Incorrect Data Records | |
CN110516117A (zh) | 图计算的类别型变量存储方法、装置、设备及存储介质 | |
Fernández et al. | Revealing the Importance of Setting Parameters in Declarative Discovery Algorithms: An Evolutionary-Based Methodology |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220127 Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Patentee after: Tianyiyun Technology Co.,Ltd. Address before: No.31, Financial Street, Xicheng District, Beijing, 100033 Patentee before: CHINA TELECOM Corp.,Ltd. |
|
TR01 | Transfer of patent right |