数据抽取装置和方法

文档序号:6637939阅读:246来源:国知局
数据抽取装置和方法
【专利摘要】本发明提供了一种数据抽取装置,包括:开关状态载入单元,用于载入控制开关在本次抽取数据时的开关状态,并保存控制开关在上次抽取数据时的开关状态;数据抽取控制器,用于根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取类型;当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档指定的数据;数据抽取单元,用于根据计算得到的需要抽取、过滤和归档指定的数据,进行数据抽取。本发明还提供了一种数据抽取方法。通过本发明的技术方案,可以在现有的数据抽取方式基础上,充分利用单对象类型完成多对象类型的数据抽取,建立多对象类型参与的数据抽取的通用、统一抽取思路。
【专利说明】数据抽取装置和方法

【技术领域】
[0001] 本发明涉及数据处理【技术领域】,具体地,涉及一种数据抽取装置和一种数据抽取 方法。
[0002]

【背景技术】
[0003] 目前大数据随处可见,越来越多的企业开始规划数据仓库,通过数据挖掘和商业 分析工具来协助企业做出明智的业务经营决策。企业各个业务系统产生的数据通过ETL工 具向数据仓库提供高质量的数据。ETL包括数据的抽取,转换和加载3个环节,数据抽取面 向各种数据来源,比如异构数据库,文件等,如何从这些数据源正确稳定高效的抽取数据是 ETL设计过程中必须考虑的关键问题之一。目前流行的抽取方法均存在一定的局限性。
[0004] 1.全量抽取:每次将业务系统的所有数据全部通过ETL工具加载到数据仓库,抽 取简单,但当数据量越来越大时,这种方式存在性能瓶颈,导致不能实时更新数据。
[0005] 2.基于触发方式的推式增量抽取:数据抽取的性能较高,能实时更新数据,但要求 在业务数据库中建立触发器或程序编码推数据到数据仓库,需要对业务系统或业务数据库 进行调整,不但影响业务系统的稳定和业务数据的安全性,同时对业务系统有一定的性能 影响。
[0006] 3.基于时间戳的增量抽取:和类似触发器一样,性能也比较好,过程相对清楚简 单,但对业务系统强制要求有时间戳字段,同时,数据更新时修改时间戳字段,而且对于删 除的数据需要记录在库,不能彻底删除,在数据准确性上有一定的限制。
[0007] 4.全表比对增量抽取:通过全表比对来确定数据的增删改,性能较差。
[0008] 5.数据库日志对比:通过分析数据库自身的日志来判断变化的数据,受数据库类 型和版本的限制,不支持异构数据库。
[0009] 因此,需要一种新的数据抽取技术,可以在现有的数据抽取方式基础上,充分利用 单对象类型完成多对象类型的数据抽取,建立多对象类型参与的数据抽取的通用、统一抽 取思路。
[0010]


【发明内容】

[0011] 本发明正是基于上述问题,提出了一种新的数据抽取技术,可以在现有的数据抽 取方式基础上,充分利用单对象类型完成多对象类型的数据抽取,建立多对象类型参与的 数据抽取的通用、统一抽取思路。
[0012] 有鉴于此,本发明提出了一种数据抽取装置,包括:开关状态载入单元,用于载入 控制开关在本次抽取数据时的开关状态,并保存控制开关在上次抽取数据时的开关状态; 数据抽取控制器,用于根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还 是增量抽取类型;当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归 档指定的数据;数据抽取单元,用于根据计算得到的需要抽取、过滤和归档指定的数据,进 行数据抽取。在该技术方案中,可以在进行数据抽取时根据数据开关信息和业务日期来进 行增量抽取,有效规避了目前抽取方式的局限,而且数据仓库和业务数据库独立运行,利于 企业控制业务系统的稳定和业务数据的安全性。
[0013] 在上述技术方案中,优选地,所述开关状态载入单元,具体包括:状态载入模块,用 于载入控制开关在本次抽取数据时的开关状态;状态保存模块,用于基于载入的控制开关 在本次抽取数据时的开关状态,调取并保存控制开关在上次抽取数据时的开关状态。在该 技术方案中,即使在业务系统存在物理删除的情况下也能进行增量抽取,满足了增量抽取 的数据完备性高,对源业务系统性能等影响小。
[0014] 在上述技术方案中,优选地,所述数据抽取控制器,具体包括:抽取类型判断模块, 用于根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取类型; 数据计算模块,用于当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与 归档指定的数据。在该技术方案中,可以根据基于业务系统中的数据开关作为数据增量抽 取的依据,当开关在打开、最新关闭或被重新打开后又被关闭的三种情况下对对应的数据 做重新抽取,筛选与归档。
[0015] 在上述技术方案中,优选地,所述数据抽取单元,具体包括:初始化全量抽取模块, 用于根据计算得到的需要抽取、过滤和归档指定的数据,进行数据的初始化全量抽取;日常 增量抽取模块,用于根据初始化全量抽取的数据,进行数据的日常增量抽取。在该技术方案 中,主要通过比较业务系统的数据开关状态,来实现对应业务数据的增量抽取。
[0016] 在上述技术方案中,优选地,所述初始化全量抽取模块进行数据的初始化全量抽 取的操作,进一步包括:⑴装载开关的当前状态到上次抽取状态;⑵按全量方式控制数据 抽取;⑶全量抽取业务数据,做数据仓库的初始化操作;和/或,所述日常增量抽取模块进 行数据的日常增量抽取的操作,进一步包括:⑴装载本次开关状态到本次抽取状态位;⑵ 通过本次与上次抽取的状态计算出需要增量数据抽取的时间点;⑶根据计算得到的数据抽 取时间,增量抽取、过滤装载数据;⑷将当前开关状态数据转存到上次抽取状态位置,方便 下次抽取时使用。在该技术方案中,增量抽取的数据量小,从而抽取性能高等特性。
[0017] 根据本发明的又一个方面,还提出了一种数据抽取方法,包括:步骤202 :载入控 制开关在本次抽取数据时的开关状态,并保存控制开关在上次抽取数据时的开关状态;步 骤204 :根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取类 型;当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档指定的数 据;步骤206 :根据计算得到的需要抽取、过滤和归档指定的数据,进行数据抽取。在该技术 方案中,可以在进行数据抽取时根据数据开关信息和业务日期来进行增量抽取,有效规避 了目前抽取方式的局限,而且数据仓库和业务数据库独立运行,利于企业控制业务系统的 稳定和业务数据的安全性。
[0018] 在上述技术方案中,优选地,所述步骤202,具体包括:步骤302 :载入控制开关在 本次抽取数据时的开关状态;步骤304 :基于载入的控制开关在本次抽取数据时的开关状 态,调取并保存控制开关在上次抽取数据时的开关状态。在该技术方案中,即使在业务系统 存在物理删除的情况下也能进行增量抽取,满足了增量抽取的数据完备性高,对源业务系 统性能等影响小。
[0019] 在上述技术方案中,优选地,所述步骤204,具体包括:步骤402:根据载入的开关 状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取类型;步骤404 :当本次抽取 数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档指定的数据。在该技术方案 中,可以根据基于业务系统中的数据开关作为数据增量抽取的依据,当开关在打开、最新关 闭或被重新打开后又被关闭的三种情况下对对应的数据做重新抽取,筛选与归档。
[0020] 在上述技术方案中,优选地,所述步骤206,具体包括:步骤502:根据计算得到的 需要抽取、过滤和归档指定的数据,进行数据的初始化全量抽取;步骤504 :根据初始化全 量抽取的数据,进行数据的日常增量抽取。在该技术方案中,主要通过比较业务系统的数据 开关状态,来实现对应业务数据的增量抽取。
[0021] 在上述技术方案中,优选地,所述步骤502进行数据的初始化全量抽取的操作,进 一步包括:⑴装载开关的当前状态到上次抽取状态;⑵按全量方式控制数据抽取;⑶全量 抽取业务数据,做数据仓库的初始化操作;和/或,所述步骤504进行数据的日常增量抽取 的操作,进一步包括:⑴装载本次开关状态到本次抽取状态位;⑵通过本次与上次抽取的 状态计算出需要增量数据抽取的时间点;⑶根据计算得到的数据抽取时间,增量抽取、过滤 装载数据;⑷将当前开关状态数据转存到上次抽取状态位置,方便下次抽取时使用。在该技 术方案中,增量抽取的数据量小,从而抽取性能高等特性。
[0022] 通过以上技术方案,可以在现有的数据抽取方式基础上,充分利用单对象类型完 成多对象类型的数据抽取,建立多对象类型参与的数据抽取的通用、统一抽取思路。
[0023]

【专利附图】

【附图说明】
[0024] 图1示出了根据本发明的实施例的数据抽取装置的框图; 图2示出了根据本发明的实施例的数据抽取方法的流程图; 图3示出了根据本发明的实施例的开关状态载入单元的流程图; 图4示出了根据本发明的实施例的数据抽取控制器的流程图; 图5示出了根据本发明的实施例的数据抽取单元的流程图; 图6示出了根据本发明的实施例的根据数据开关做增量数据抽取的原理图; 图7出了根据本发明的实施例的全量抽取的逻辑的流程图; 图8出了根据本发明的实施例的日常增量抽取的流程图。
[0025]

【具体实施方式】
[0026] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施 例及实施例中的特征可以相互组合。
[0027] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开 的具体实施例的限制。
[0028] 图1示出了根据本发明的实施例的数据抽取装置的框图。
[0029] 如图1所示,根据本发明的实施例的数据抽取装置100,包括:开关状态载入单元 102,用于载入控制开关在本次抽取数据时的开关状态,并保存控制开关在上次抽取数据时 的开关状态;数据抽取控制器104,用于根据载入的开关状态,判断本次抽取数据的类型是 全量抽取类型还是增量抽取类型;当本次抽取数据的类型是增量抽取类型时,分别计算需 要抽取、筛选与归档指定的数据;数据抽取单元106,用于根据计算得到的需要抽取、过滤 和归档指定的数据,进行数据抽取。在该技术方案中,可以在进行数据抽取时根据数据开关 信息和业务日期来进行增量抽取,有效规避了目前抽取方式的局限,而且数据仓库和业务 数据库独立运行,利于企业控制业务系统的稳定和业务数据的安全性。
[0030] 在上述技术方案中,优选地,开关状态载入单元102,具体包括:状态载入模块 1022,用于载入控制开关在本次抽取数据时的开关状态;状态保存模块1024,用于基于载 入的控制开关在本次抽取数据时的开关状态,调取并保存控制开关在上次抽取数据时的开 关状态。在该技术方案中,即使在业务系统存在物理删除的情况下也能进行增量抽取,满足 了增量抽取的数据完备性高,对源业务系统性能等影响小。
[0031] 在上述技术方案中,优选地,数据抽取控制器104,具体包括:抽取类型判断模块 1042,用于根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取 类型;数据计算模块1044,用于当本次抽取数据的类型是增量抽取类型时,分别计算需要 抽取、筛选与归档指定的数据。在该技术方案中,可以根据基于业务系统中的数据开关作为 数据增量抽取的依据,当开关在打开、最新关闭或被重新打开后又被关闭的三种情况下对 对应的数据做重新抽取,筛选与归档。
[0032] 在上述技术方案中,优选地,数据抽取单元106,具体包括:初始化全量抽取模块 1062,用于根据计算得到的需要抽取、过滤和归档指定的数据,进行数据的初始化全量抽 取;日常增量抽取模块1066,用于根据初始化全量抽取的数据,进行数据的日常增量抽取。 在该技术方案中,主要通过比较业务系统的数据开关状态,来实现对应业务数据的增量抽 取。
[0033] 在上述技术方案中,优选地,初始化全量抽取模块1062进行数据的初始化全量抽 取的操作,进一步包括:⑴装载开关的当前状态到上次抽取状态;⑵按全量方式控制数据 抽取;⑶全量抽取业务数据,做数据仓库的初始化操作;和/或,日常增量抽取模块1064进 行数据的日常增量抽取的操作,进一步包括:⑴装载本次开关状态到本次抽取状态位;⑵ 通过本次与上次抽取的状态计算出需要增量数据抽取的时间点;⑶根据计算得到的数据抽 取时间,增量抽取、过滤装载数据;⑷将当前开关状态数据转存到上次抽取状态位置,方便 下次抽取时使用。在该技术方案中,增量抽取的数据量小,从而抽取性能高等特性。
[0034] 图2示出了根据本发明的实施例的数据抽取方法的流程图。
[0035] 如图2所示,根据本发明的实施例的数据抽取方法,包括:步骤202 :载入控制开关 在本次抽取数据时的开关状态,并保存控制开关在上次抽取数据时的开关状态;步骤204 : 根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取类型;当本 次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档指定的数据;步骤 206 :根据计算得到的需要抽取、过滤和归档指定的数据,进行数据抽取。在该技术方案中, 可以在进行数据抽取时根据数据开关信息和业务日期来进行增量抽取,有效规避了目前抽 取方式的局限,而且数据仓库和业务数据库独立运行,利于企业控制业务系统的稳定和业 务数据的安全性。
[0036] 在上述技术方案中,优选地,如图3所示,步骤202,具体包括:步骤302 :载入控制 开关在本次抽取数据时的开关状态;步骤304 :基于载入的控制开关在本次抽取数据时的 开关状态,调取并保存控制开关在上次抽取数据时的开关状态。在该技术方案中,即使在业 务系统存在物理删除的情况下也能进行增量抽取,满足了增量抽取的数据完备性高,对源 业务系统性能等影响小。
[0037] 在上述技术方案中,优选地,如图4所示,步骤204,具体包括:步骤402:根据载入 的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量抽取类型;步骤404 :当本 次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档指定的数据。在该技 术方案中,可以根据基于业务系统中的数据开关作为数据增量抽取的依据,当开关在打开、 最新关闭或被重新打开后又被关闭的三种情况下对对应的数据做重新抽取,筛选与归档。
[0038] 在上述技术方案中,优选地,如图5所示,步骤206,具体包括:步骤502:根据计算 得到的需要抽取、过滤和归档指定的数据,进行数据的初始化全量抽取;步骤504 :根据初 始化全量抽取的数据,进行数据的日常增量抽取。在该技术方案中,主要通过比较业务系统 的数据开关状态,来实现对应业务数据的增量抽取。
[0039] 在上述技术方案中,优选地,步骤502进行数据的初始化全量抽取的操作,进一步 包括:⑴装载开关的当前状态到上次抽取状态;⑵按全量方式控制数据抽取;⑶全量抽取 业务数据,做数据仓库的初始化操作;和/或,步骤504进行数据的日常增量抽取的操作,进 一步包括:⑴装载本次开关状态到本次抽取状态位;⑵通过本次与上次抽取的状态计算出 需要增量数据抽取的时间点;(3)根据计算得到的数据抽取时间,增量抽取、过滤装载数据; ⑷将当前开关状态数据转存到上次抽取状态位置,方便下次抽取时使用。在该技术方案中, 增量抽取的数据量小,从而抽取性能高等特性。
[0040] 本发明的技术方案,提供了一种基于数据开关的数据抽取方法与装置。企业在实 际工作中,经常需要对业务数据进行加载清洗和转换,但随着数据量越来越大,每次对数据 进行全量抽取变得越来越困难,而根据时间戳、触发器、全表比对等进行增量抽取又存在很 多局限性。但考虑到实际业务中,企业内部为了保证业务数据的稳定性,通常会设置数据开 关。因此,本发明的技术方案在进行数据抽取时根据数据开关信息和业务日期来进行增量 抽取,有效规避了目前抽取方式的局限,而且数据仓库和业务数据库独立运行,利于企业控 制业务系统的稳定和业务数据的安全性。
[0041] 随着大数据时代的来临,对数据抽取、过滤与变换的需求也越来越复杂,对于数据 抽取的方法的要求也越来越苛刻。而数据抽取的方法呈现出在某些情况下表现的非常的优 越,而在另一些情况下又表现的不尽如人意,甚至完全不适用。
[0042] 本发明的技术方案,主要适用于以下情况: 1、业务系统存在数据开关,并且记录每一个开关的操作版本;2、数据开关在关闭后可 以允许再次打开,也可以允许无法打开,但最终应趋于关闭;3、数据开关被关闭的对应数据 将无法修改,如果要修改必须重新打开数据开关。本发明的技术方案,主要通过比较业务系 统的数据开关状态,来实现对应业务数据的增量抽取。
[0043]为了有效地解决现有技术存在的问题,在此设计出了一种根据数据开关做增量数 据抽取的装置,该装置有以下三个部分组成,参见图6 : 开关状态载入单元:其主要作用是为了载入控制开关在本次抽取数据时的状态,并保 存上次抽取的开关状态,以便于数据抽取控制器分别判断需要重新抽取、筛选与归档的那 部分数据。
[0044]数据抽取控制器:其需要根据开关状态载入单元载入的开关状态判断出做全量抽 取还是增量抽取,做增量抽取的时候,分别计算出需要抽取、筛选与归档的那部分数据。 [0045]数据抽取单元:根据数据抽取控制器抽取、过滤与归档指定的数据。该数据抽取单 元的数据抽取一共分为两个部分,即初始化全量抽取和日常增量抽取。其中全量抽取的逻 辑比较简单,可分为两步:具体步骤参见图7。
[0046] 日常增量抽取步骤参见图8。注:该方法在第2步中的比对原则如下: (1)本次开关打开,数据需要重新对应抽取和归档; ⑵本次开关关闭,当上次开关是打开的,需要重新抽取对应数据并归档; ⑶本次开关关闭,上次也关闭,但中间曾经打开过,需要重新抽取对应数据并归档。
[0047]下面我们来看一个存货核算的具体例子。存货核算模块需要按每一个会计月和成 本域的组合做月结帐操作,一旦月结以后对应成本域与会计月组合的单据等一些信息就无 法修改,而月结这个操作又由于可能会出现错误而被允许重新打开修改,而打开修改也是 有规律的,即月结会按照会计月的顺序进行月结,即如果要结后一个月,前一个月必须已经 是结账的,而如果要反结账上一个月,后面的月份需要先做反结账操作。在存货核算模块 中,数据量非常的大,全量抽取非常消耗资源与时间,但由于数据量大,有一些业务系统对 一些数据库业务表直接进行了物理删除操作,使得通过时间戳的方式进行数据增量抽取变 的不可能。
[0048]下面我们就使用本发明来进行数据的增量抽取、过滤和归档。首先确定作为数据 开关的月结数据表主要字段的表结构如下:

【权利要求】
1. 一种数据抽取装置,其特征在于,包括: 开关状态载入单元,用于载入控制开关在本次抽取数据时的开关状态,并保存控制开 关在上次抽取数据时的开关状态; 数据抽取控制器,用于根据载入的开关状态,判断本次抽取数据的类型是全量抽取类 型还是增量抽取类型;当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选 与归档指定的数据; 数据抽取单元,用于根据计算得到的需要抽取、过滤和归档指定的数据,进行数据抽 取。
2. 根据权利要求1所述的数据抽取装置,其特征在于,所述开关状态载入单元,具体包 括: 状态载入模块,用于载入控制开关在本次抽取数据时的开关状态; 状态保存模块,用于基于载入的控制开关在本次抽取数据时的开关状态,调取并保存 控制开关在上次抽取数据时的开关状态。
3. 根据权利要求1或2所述的数据抽取装置,其特征在于,所述数据抽取控制器,具体 包括: 抽取类型判断模块,用于根据载入的开关状态,判断本次抽取数据的类型是全量抽取 类型还是增量抽取类型; 数据计算模块,用于当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛 选与归档指定的数据。
4. 根据权利要求1或2所述的数据抽取装置,其特征在于,所述数据抽取单元,具体包 括: 初始化全量抽取模块,用于根据计算得到的需要抽取、过滤和归档指定的数据,进行数 据的初始化全量抽取; 日常增量抽取模块,用于根据初始化全量抽取的数据,进行数据的日常增量抽取。
5. 根据权利要求4所述的数据抽取装置,其特征在于,所述初始化全量抽取模块进行 数据的初始化全量抽取的操作,进一步包括: ⑴装载开关的当前状态到上次抽取状态; ⑵按全量方式控制数据抽取; ⑶全量抽取业务数据,做数据仓库的初始化操作; 和/或, 所述日常增量抽取模块进行数据的日常增量抽取的操作,进一步包括: ⑴装载本次开关状态到本次抽取状态位; ⑵通过本次与上次抽取的状态计算出需要增量数据抽取的时间点; ⑶根据计算得到的数据抽取时间,增量抽取、过滤装载数据; ⑷将当前开关状态数据转存到上次抽取状态位置,方便下次抽取时使用。
6. -种数据抽取方法,其特征在于,包括: 步骤202 :载入控制开关在本次抽取数据时的开关状态,并保存控制开关在上次抽取 数据时的开关状态; 步骤204 :根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量 抽取类型;当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档指定 的数据; 步骤206 :根据计算得到的需要抽取、过滤和归档指定的数据,进行数据抽取。
7. 根据权利要求6所述的数据抽取方法,其特征在于,所述步骤202,具体包括: 步骤302 :载入控制开关在本次抽取数据时的开关状态; 步骤304 :基于载入的控制开关在本次抽取数据时的开关状态,调取并保存控制开关 在上次抽取数据时的开关状态。
8. 根据权利要求6或7所述的数据抽取方法,其特征在于,所述步骤204,具体包括: 步骤402 :根据载入的开关状态,判断本次抽取数据的类型是全量抽取类型还是增量 抽取类型; 步骤404:当本次抽取数据的类型是增量抽取类型时,分别计算需要抽取、筛选与归档 指定的数据。
9. 根据权利要求6或7所述的数据抽取方法,其特征在于,所述步骤206,具体包括: 步骤502 :根据计算得到的需要抽取、过滤和归档指定的数据,进行数据的初始化全量 抽取; 步骤504 :根据初始化全量抽取的数据,进行数据的日常增量抽取。
10. 根据权利要求9所述的数据抽取方法,其特征在于,所述步骤502进行数据的初始 化全量抽取的操作,进一步包括: ⑴装载开关的当前状态到上次抽取状态; ⑵按全量方式控制数据抽取; ⑶全量抽取业务数据,做数据仓库的初始化操作; 和/或, 所述步骤504进行数据的日常增量抽取的操作,进一步包括: ⑴装载本次开关状态到本次抽取状态位; ⑵通过本次与上次抽取的状态计算出需要增量数据抽取的时间点; ⑶根据计算得到的数据抽取时间,增量抽取、过滤装载数据; ⑷将当前开关状态数据转存到上次抽取状态位置,方便下次抽取时使用。
【文档编号】G06F17/30GK104361133SQ201410750223
【公开日】2015年2月18日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】姜亚健, 胡沛兰 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1