首页> 中国专利> 医疗数据ETL任务中的数据核查方法及装置

医疗数据ETL任务中的数据核查方法及装置

摘要

本申请实施例提供了一种医疗数据ETL任务中的数据核查方法及装置,包括:在配置医疗数据ETL任务的任务流程过程中,确定至少一个需要进行数据核查的目标数据抽取组件;对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志;执行医疗数据ETL任务的任务流程,在执行完每一目标数据抽取组件之后,基于该数据抽取组件对应的数据核查配置信息对该数据抽取组件进行数据核查得到核查结果。该方案在确定需要进行数据核查的数据抽取组件时,在配置任务流程的过程中对各数据抽取组件进行数据核查,节约了核查时间,提高了核查效率,考虑了各数据抽取组件的业务类型和所需处理的数据量,数据核查的适用性更强,且映射关系调整的难度更低。

著录项

  • 公开/公告号CN114328700B

    专利类型发明专利

  • 公开/公告日2022-07-05

    原文格式PDF

  • 申请/专利权人 上海柯林布瑞信息技术有限公司;

    申请/专利号CN202210254613.2

  • 发明设计人 秦晓宏;黄主斌;

    申请日2022-03-16

  • 分类号G06F16/25(2019.01);G06F16/21(2019.01);

  • 代理机构北京超凡宏宇专利代理事务所(特殊普通合伙) 11463;

  • 代理人何明伦

  • 地址 200233 上海市徐汇区宜山路700号B2栋1504室

  • 入库时间 2022-08-23 13:58:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-05

    授权

    发明专利权授予

  • 2022-04-12

    公开

    发明专利申请公布

说明书

技术领域

本申请涉及计算机技术领域,具体而言,本申请涉及一种医疗数据ETL任务中的数据核查方法及装置。

背景技术

医疗数据的ETL(Extract-Transform-Load,抽取-转换-加载)任务中,数据抽取任务是指通过预先配置的数据映射关系将医疗数据从源端抽取到目标端。由于原始医疗数据的质量不高,且业务口径较多导致数据的规范性无法得到保证,另外使用之后由后续业务层面再来反馈ETL任务的配置问题,耗时多反馈链路较长,因此通常在使用之前需要对ETL中数据抽取的数据的规范性进行核查,从而确定数据抽取过程中预先配置的数据映射关系是否满足医疗数据ETL任务的需要,然后对数据映射关系进行调整。

现有技术中核查方式通常是在所有数据抽取到目标端后,再对目标端的医疗数据进行核查。然而医疗数据的ETL任务涉及的抽取数据量非常大,抽取完所有任务需要的数据后再做核查耗费的时间非常长,严重影响了数据映射关系的确定效率。同时,医疗数据的ETL任务类型以及所抽取的数据量表现出较强的多样性,因此亟需提出一种适应不同医疗数据ETL任务场景下的高效数据核查方法。

发明内容

本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:

第一方面,本申请实施例提供了一种医疗数据ETL任务中的数据核查方法,包括:

在配置医疗数据ETL任务的任务流程过程中,对于每一数据抽取组件,若该数据抽取组件对应的数据量级别达到预设数据量级别和该数据抽取组件对应的业务类型为预设业务类型,则确定该数据抽取组件为目标数据抽取组件;

对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志,所述数据核查点标志用于指示该目标数据抽取组件对应的数据核查配置信息;

执行所述医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,将该目标数据抽取组件抽取到的数据存入预设临时表中,并基于所述数据核查点标志获取该目标数据抽取组件对应的数据核查配置信息,基于所述数据核查配置信息,对该目标数据抽取组件抽取的数据进行数据核查得到核查结果,若所述核查结果指示核查不通过,基于所述核查结果修改该目标数据抽取组件的映射关系。

在本申请的一种可选实施例中,该方法还包括:

在配置医疗数据ETL任务的任务流程过程中,基于ETL任务的业务需求,确定ETL任务中所包含的至少一对源端和目标端,并为每对源端和目标端配置对应的数据抽取组件。

在本申请的一种可选实施例中,为每对源端和目标端配置对应的数据抽取组件,包括:

基于每对源端和目标端中源端的数据结构和目标端的数据结构、以及业务需求,确定由源端数据到目标端数据的映射关系,并基于映射关系确定该对源端和目标端对应的数据抽取组件。

在本申请的一种可选实施例中,该方法还包括:

从目标数据抽取组件的映射关系所包含的目标端数据字段,确定出需要核查的目标端数据字段和对应的核查规则,并将需要核查的目标端数据字段和对应的核查规则作为数据核查配置信息按存储路径进行存储。

在本申请的一种可选实施例中,该方法还包括:

在基于所述核查结果修改该目标数据抽取组件的映射关系之后,重复执行所述医疗数据ETL任务的任务流程,对该目标数据抽取组件抽取的数据进行数据核查得到核查结果,若核查结果指示核查不通过,则基于核查结果修改该目标数据抽取组件的映射关系的步骤,直至所述核查结果指示核查通过。

第二方面,本申请实施例提供了一种医疗数据ETL任务中的数据核查装置,包括:

目标数据抽取组件确定模块,用于在配置医疗数据ETL任务的任务流程过程中,对于每一数据抽取组件,若该数据抽取组件对应的数据量级别达到预设数据量级别和该数据抽取组件对应的业务类型为预设业务类型,则确定该数据抽取组件为目标数据抽取组件;

数据核查点标志添加模块,用于对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志,所述数据核查点标志用于指示该目标数据抽取组件对应的数据核查配置信息;

数据核查模块,用于执行所述医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,将该目标数据抽取组件抽取到的数据存入预设临时表中,并基于所述数据核查点标志获取该目标数据抽取组件对应的数据核查配置信息,基于所述数据核查配置信息,对该目标数据抽取组件抽取的数据进行数据核查得到核查结果,若所述核查结果指示核查不通过,基于所述核查结果修改该目标数据抽取组件的映射关系。

在本申请的一种可选实施例中,该装置还包括数据抽取组件配置模块,用于:

在配置医疗数据ETL任务的任务流程过程中,基于ETL任务的业务需求,确定ETL任务中所包含的至少一对源端和目标端,并为每对源端和目标端配置对应的数据抽取组件。

在本申请的一种可选实施例中,数据抽取组件配置模块具体用于:

基于每对源端和目标端中源端的数据结构和目标端的数据结构、以及业务需求,确定由源端数据到目标端数据的映射关系,并基于映射关系确定该对源端和目标端对应的数据抽取组件。

在本申请的一种可选实施例中,该装置还包括数据核查配置信息获取模块,用于:

从目标数据抽取组件的映射关系所包含的目标端数据字段,确定出需要核查的目标端数据字段和对应的核查规则,并将需要核查的目标端数据字段和对应的核查规则作为数据核查配置信息按存储路径进行存储。

在本申请的一种可选实施例中,该装置还包括映射关系调整模块,用于:

在基于所述核查结果修改该目标数据抽取组件的映射关系之后,重复执行所述医疗数据ETL任务的任务流程,对该目标数据抽取组件抽取的数据进行数据核查得到核查结果,若核查结果指示核查不通过,则基于核查结果修改该目标数据抽取组件的映射关系的步骤,直至所述核查结果指示核查通过。

第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器;

存储器中存储有计算机程序;

处理器,用于执行计算机程序以实现第一方面实施例或第一方面任一可选实施例中所提供的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。

第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。

本申请提供的技术方案带来的有益效果是:

通过在配置医疗数据ETL任务的任务流程过程中,基于配置好的各数据抽取组件的业务类型和所要处理的数据量,确定出需要进行数据核查的目标数据抽取组件,并为目标数据抽取组件添加数据核查点标志,然后执行配置好的任务流程,并在执行到数据核查点标志时跳转至数据核查的步骤,并基于核查结果对目标数据抽取组件的映射关系进行调整,该方案在确定需要进行数据核查的数据抽取组件时,在配置任务流程的过程中对各数据抽取组件进行数据核查,节约了核查时间,提高了核查效率,考虑了各数据抽取组件的业务类型和所需处理的数据量,数据核查的适用性更强,且映射关系调整的难度更低。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种医疗数据ETL任务中的数据核查方法的流程示意图;

图2为本申请实施例的一个示例中确定目标数据抽取组件的流程示意图;

图3为本申请实施例的一个示例中的任务流程示意图;

图4为本申请实施例提供的一种医疗数据ETL任务中的数据核查装置的结构框图;

图5为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

针对上述问题,本申请实施例提供了一种医疗数据ETL任务中的数据核查方法及装置。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图1为本申请实施例提供的一种医疗数据ETL任务中的数据核查方法的流程示意图,包括:

步骤S101,在配置医疗数据ETL任务的任务流程过程中,基于各数据抽取组件的数据量级别和业务类型,确定至少一个需要进行数据核查的目标数据抽取组件。

其中,对于一个ETL任务,在确定了对应的业务需求后,即可开始根据该业务需求进行任务流程的配置,该任务流程可以包括:前置执行组件、数据抽取组件、后置任务组件以及可选的数据合并组件等依次执行的组件。具体来说,前置执行组件用于执行数据抽取任务之前需要提前做的一些功能设置或者清理工作,包括但不限于例如,设置系统环境变量参数,设置连接session(会话)级别参数,清理任务执行目录下的磁盘空间,也可以用于验证抽取数据中的相关环境和连接是否正常。数据抽取组件用于真正执行数据抽取的过程,根据任务映射配置,连接配置执行数据抽取逻辑,从源端读取数据后写入到目标端。后置任务组件用于在数据抽取到目标端后的一些后续工作,包括但不限于根据需要批量更新,处理日志文件,发送任务状态,汇集任务执行结果。数据合并组件为可选组件,用于根据使用情况,在数据表任务中,为了合并增量数据时使用,利用主键、分布列、分区列等方式将一部分数据与实际数据进行比对后进行数据合并的操作。对以上这些组件按业务需求进行配置,且以上这些组件在按列举顺序依次连接构成任务流程,执行该任务流程即刻实现对应的ETL任务的业务需求。

需要说明的是,在一个ETL任务的任务流程中可以包括一个或多个数据抽取组件,每个数据抽取组件可以根据其目标端数据结果确定出其所属的业务类型,每个数据抽取组件有其实现从源端数据到目标端数据的映射关系。一个任务流程是否能够实现ETL任务对应的业务需求,即抽取的数据是否准确,最关键环节在于数据抽取组件的映射关系配置,因此需要通过数据核查确定数据抽取组件的映射关系的准确性,换言之,需要对数据抽取组件的映射关系进行准确性核查。

具体地,现有技术中大多是在ETL任务的任务流程配置好之后,执行ETL任务的整个任务流程,再对执行完整个任务流程得到的数据进行数据核查,进而根据数据核查结果去调整任务流程中的各数据抽取组件。

但是,在医疗数据ETL任务中,由于ETL任务中业务口径多、数据规范性差、数据量大等特点,若采用现有技术中的数据核查方法,一方面执行整个任务流程耗费时间多,影响映射关系确定的效率,另一方面医疗数据ETL中不同数据抽取组件的业务类型差别大、数据量差别也大,若仅根据执行完整个任务流程后的获得的数据的核查结果进行映射关系调整,并且核查结果中质量问题是无法直接反映和定位出具体哪些问题组件所在的,从而可能无法确定是哪个数据抽取组件的映射关系需要调整,适用性差。

本申请实施例提供的方案,在配置ETL任务流程过程中进行数据核查,具体来说,首先在配置医疗数据ETL任务的任务流程过程中,确定需要对哪些数据抽取组件的映射关系进行核查,换言之,首先确定需要进行数据核查的目标数据抽取组件。

具体来说,在配置医疗数据ETL任务的任务流程的各数据抽取组件的过程中,可以确定出各数据抽取组件的业务类型,例如业务类型可以为抽取人员信息数据、药品信息数据或处方信息数据等。在配置好各数据抽取组件后,可以对各数据组件分别进行预览以确定各数据抽取组件的数据量,进而确定其对应的数据量级别。其中,所谓对数据抽取组件进行预览,可以理解为执行该数据抽取组件,并通过编写相应的数据量查询语句,查询得到对应的数据量,并预先将不同数据量大小划分为不同的级别,进而得到对应的数据量级别。

步骤S102,对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志,数据核查点标志用于指示该目标数据抽取组件对应的数据核查配置信息。

具体地,在确定了目标数据抽取组件后,在配置任务流程过程中,通过在该目标数据抽取组件之后添加数据核查点标志,用于在执行至该数据核查点标志跳转至执行数据核查的步骤,另外数据核查点标志还用于指示用于数据核查的数据核查配置信息的存储路径,即用于指示该目标数据抽取组件对应的数据核查配置信息。

步骤S103,执行医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,基于该目标数据抽取组件对应的数据核查配置信息,对该数据抽取组件抽取的数据进行数据核查得到核查结果。

具体地,在配置完成上述医疗数据ETL任务的任务流程后,则可以执行该任务流程,并在执行到目标数据抽取组件时,通过添加的数据核查点标志跳转至数据核查操作,并根据核查结果对该目标数据抽取组件的映射关系进行调整。可以理解的是,本申请实施例的方案中数据核查也在任务流程的配置过程中,即在任务流程配置过程中,通过目标数据抽取组件的核查结果不断调整目标数据抽取组件的映射关系,直至所有目标数据抽取组件的映射关系都被调整准确为止。若一个任务流程中包含有多个先后设置的目标数据抽取组件,那么会按顺序依次单独核查每个目标数据抽取组件,且得到核查结果后只需要针对核查对象(即对应的目标数据抽取组件)的映射关系进行调整,使得映射关系的调整针对性更强,调整过程更简单。

本申请提供的方案,通过在配置医疗数据ETL任务的任务流程过程中,基于配置好的各数据抽取组件的业务类型和所要处理的数据量,确定出需要进行数据核查的目标数据抽取组件,并为目标数据抽取组件添加数据核查点标志,然后执行配置好的任务流程,并在执行到数据核查点标志时跳转至数据核查的步骤,并基于核查结果对目标数据抽取组件的映射关系进行调整。该方案在配置任务流程的过程中对各数据抽取组件进行数据核查,节约了核查时间,提高了核查效率,同时,在确定需要进行数据核查的目标数据抽取组件时,考虑了各数据抽取组件的业务类型和所需处理的数据量,数据核查的适用性更强,且每次核查操作仅针对一个目标数据抽取组件,使得映射关系的调整针对性更强,调整过程更简单。

在本申请的一种可选实施例中,在确定至少一个需要进行数据核查的目标数据抽取组件之前,该方法还包括:

在配置医疗数据ETL任务的任务流程过程中,基于ETL任务的业务需求,确定ETL任务中所包含的至少一对源端和目标端,并为每对源端和目标端配置对应的数据抽取组件。

其中,根据ETL任务的业务需求,在一个ETL任务的任务流程中可以配置多个数据抽取组件,且每个数据抽取组件对应于一对源端和数据端,每个数据抽取组件的功能是从源端获取数据,并按照其映射关系将获取到的数据进行转换后存储至目标端。

具体地,对ETL任务的业务需求进行分析,确定出其中所包含的一对或多对源端和目标端,可以理解的是,对业务需求进行分析所采用的方法不同,可能产生的源端和目标端的对数和具体形式也会不同,本申请实施例不做限定。

进一步地,为每对源端和目标端配置对应的数据抽取组件,包括:

基于每对源端和目标端中源端的数据结构和目标端的数据结构、以及业务需求,确定由源端数据到目标端数据的映射关系,并基于映射关系确定该对源端和目标端对应的数据抽取组件。

具体地,分析医疗数据ETL任务的业务需求,确定出每个数据抽取组件的业务需求,即确定出该数据抽取组件需要从对应的源端抽取哪些数据字段,然后转换成满足该业务需求的数据字段存储至对应的目标端。在确定出上述内容后,即可根据源端的数据结构以及目标端的数据结构确定出对应的映射关系,进而根据该映射关系配置对应的数据抽取组件。

需要说明的是,可以根据配置经验设置数据抽取组件模板库,即为不同的源端和目标端、以及业务需求,配置对应的数据抽取组件,形成数据抽取组件模板库。当确定了源端和目标端、以及业务需求后,即可从该模板库中查找并调用相应的数据抽取组件。

另外,在对目标数据抽取组件进行核查并对其映射关系进行调整后,得到准确的映射关系,进而对该目标数据抽取组件进行更新。那么,可以利用更新后的数据抽取组件替换数据抽取组件模板库中对应的数据抽取组件,以保证数据抽取组件模板库中数据抽取组件的正确性。

在本申请的一种可选实施例中,基于各数据抽取组件的数据量级别和业务类型,确定至少一个需要进行数据核查的目标数据抽取组件,包括:

对于每一数据抽取组件,若该数据抽取组件对应的数据量级别达到预设数据量级别、和/或该数据抽取组件对应的业务类型为预设业务类型,则确定该数据抽取组件为目标数据抽取组件。

具体地,如图2所示,判断该数据抽取组件的数据量级别是否达到预设数据量级别,判断该数据抽取组件的业务类型是否为预设业务类型,只要以上判断有一个或两个结果为“是”,则将该数据抽取组件确定为目标数据抽取组件。其中,预设数据量级别和预设业务类型都可以根据实际需求进行设定,在此可不做限定。

需要说明的是,数据抽取组件所要处理的数据量较大时,其对应的数据量级别就较高,为了避免数据抽取过程中大批量数据错误,需要对其进行数据核查,即将该数据抽取组件确定为目标数据抽取组件。同时,预设数据量级别可以根据实际需求进行设定,在此可不做限定。根据数据抽取组件的目标端数据字段类型确定对应的业务类型,在医疗数据ETL任务中,部分业务类型对应的数据重要性更高,需要对其进行重点关注,因此为了避免其产生错误,需要对对应的数据抽取组件的映射关系进行核查,即将该数据抽取组件确定为目标数据抽取组件。

在本申请的一种可选实施例中,在确定至少一个需要进行数据核查的目标数据抽取组件的同时,该方法还包括:

从目标数据抽取组件的映射关系所包含的目标端数据字段,确定出需要核查的目标端数据字段和对应的核查规则,并将需要核查的目标端数据字段和对应的核查规则作为数据核查配置信息按存储路径进行存储。

具体地,对目标数据抽取组件进行数据核查之前,需要确定目标数据抽取组件所要采用的数据核查配置信息,具体来说,需要确定对哪些目标端数据字段进行核查,并确定采用何种核查规则进行核查。可以根据该目标数据抽取组件的业务类型,确定对应的目标端数据字段,将这些目标端数据字段作为需要核查的目标端数据字段。举例来说,若目标数据抽取组件为业务类型1,则对目标端数据字段中的A字段进行核查,若目标数据抽取组件为业务类型2,则对目标端数据字段中的A字段、B字段和C字段都进行核查。其中,核查规则可以包括一致性规则、完整性规则以及关联性规则等,可以根据字段类型和需求进行设定。

然后,在确定了目标数据抽取组件的数据核查配置信息后,将其按照预先设定的存储路径进行存储,以供后续任务流程执行至该目标数据抽取组件对应的数据核查点标志时调用该数据核查配置信息。

需要说明的是,配置目标数据抽取组件的数据核查配置信息时,可以直接为其配置对应的已存在的数据核查服务(通过数据核查点标志来指示),该数据核查服务能够提供基于数据核查配置信息的数据核查服务,后续任务流程执行至该目标数据抽取组件对应的数据核查点标志时直接调用该数据核查服务完成数据核查。

在本申请的一种可选实施例中,执行医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,基于该目标数据抽取组件对应的数据核查配置信息,对该数据抽取组件抽取的数据进行数据核查得到核查结果,包括:

在执行至每一目标数据抽取组件时,将该目标数据抽取组件抽取到的数据存入预设临时表中,并从数据核查点标志所指示的存储路径获取该目标数据抽取组件对应的数据核查配置信息;

对于每一目标数据抽取组件,基于该目标数据抽取组件对应的数据核查配置信息,对预设临时表中的数据进行数据核查得到核查结果。

具体地,执行任务流程过程中,在执行完一个目标数据抽取组件之后,就需要根据对应的数据核查点标志跳转至执行数据核查流程。这时,首先需要将该目标数据抽取组件抽取的数据存储至预设临时表中,这部分数据即为具体的核查对象,同时从数据核查点标志所指示的存储路径获取该目标数据抽取组件对应的数据核查配置信息。根据数据核查配置信息确定要核查的目标端数据字段和对应的核查规则,利用核查规则对对应的目标端数据字段进行核查,得出核查结果。可以理解的是,若数据核查配置信息确定要核查多个目标端数据字段,那么只要有一个目标端数据字段核查不通过,对应的核查结果则为核查不通过,只有所有目标端数据字段核查都通过,对应的核查结果才为核查通过。

需要说明的是,若目标数据抽取组件的核查结果为核查不通过,则需要调整映射关系后再次进行数据核查,在再次进行数据核查之前,需要通过前置组件将预设临时表中的数据清空。

在本申请的一种可选实施例中,在得到核查结果后,该方法还包括:

若核查结果指示核查不通过,则基于核查结果修改目标数据抽取组件的映射关系,并再次执行ETL任务的任务流程,获取对应的核查结果;

重复执行若核查结果指示核查不通过,则基于核查结果修改目标数据抽取组件的映射关系,并再次执行ETL任务的任务流程的步骤,直至核查结果指示核查通过。

具体地,对于一个数据抽取组件,在获取到其对应的核查结果后,确认核查是否通过,若通过,则继续执行后续组件。若不通过,则说明该数据抽取组件的映射关系可能需要调整,因此可以对核查结果进行分析,例如,核查过程对多个目标端数据字段进行了核查,根据核查结果确定是这几个目标数据字段中的哪一个或哪几个目标端数据字段核查不通过,然后基于这些核查不通过的目标端数据字段,去调整映射关系对应部分。调整之后,再次执行并进行数据核查,重复执行映射关系调整以及数据核查的步骤直至核查全部通过,再继续执行后续组件。

可以理解的是,如果一个医疗数据ETL任务的流程中包含有多个数据抽取组件,很显然这些数据抽取组件是按顺序前后串行的,那么在利用本申请的方案进行数据核查时,需要先对在前的数据抽取组件进行数据核查和调整直至核查通过,才能进行下一个数据抽取组件的数据核查和调整。这种方式可以保证每次数据核查的核查结果只针对一个目标数据抽取组件,若核查结果不通过,则所需要调整的映射关系即为该目标数据抽取组件的映射关系,使得映射关系调整针对性更强,调整过程更简单。

下面通过一个示例来对本申请的方案进行进一步说明,假设一个医疗数据ETL任务的业务需求为:从一个医院的实时生产库或镜像库中抽取患者的基本信息,具体来说,从oracle数据库进行读取然后写入到Greenplum数据库,然后在Greenplum数据库进行数据操作和更新后将部分数据进行抽取到数据仓库或数据集市中,如表1所示。

对以上业务需求进行分析可知,该医疗数据ETL任务中可以包含有两对源端和目标端,分别是oracle数据库和Greenplum数据库,以及Greenplum数据库和数据仓库(或数据集市)。因此在配置该医疗数据ETL任务的任务流程过程中,对应于两对源端和目标端,需要配置两个数据抽取组件,且各数据抽取组件的业务类型和数据量级别如表1所示。

表1

同时,根据前文描述的方式可知,由于第一数据抽取组件的数据量级别为5级达到了预设数据量级别(预设数据量级别为4级),而第二数据抽取组件的业务类型为业务类型X(预设业务类型包括业务类型X),则将这两个数据抽取组件都确定为目标数据抽取组件,即分别为两个目标数据抽取组件分别配置对应的数据核查点标志。

为每一个目标数据抽取组件设置对应的数据核查点标志,并确定对应的数据核查配置信息,包括需要核查的目标端字段、以及对应的核查规则,如表2所示。

表2

具体地,如图3所示,该医疗数据ETL任务的任务流程包括依次连接的前置组件、第一数据抽取组件、第一核查点(对应于第一数据抽取组件的数据核查标志)、后置组件、合并组件、第二数据抽取组件、第二核查点(对应于第二数据抽取组件的数据核查标志)。

其中,前置组件用于连接到目标端数据源的临时表并清空,并判断执行机器磁盘空间,内存空间大小是否需要足够。第一数据抽取组件对应于源端oracle数据库和目标端Greenplum数据库。第一数据核查点用于跳转至对第一数据抽取组件进行数据核查。后置组件用于更新Greenplum数据库中间表中字段empid和visitnumber的数据。合并组件用于合并Greenplum数据库中的中间表和使用表。第二数据抽取组件对应于源端Greenplum数据库和目标端数据仓库(或数据集市)。第二数据核查点用于跳转至对第二数据抽取组件进行数据核查。

然后,执行该医疗数据ETL任务的上述任务流程,并在执行到第一核查点时,基于核查结果对第一数据抽取组件进行调整直至核查通过,再继续执行后续组件,并在执行至第二核查点时,基于核查结果对第二数据抽取组件进行调整直至核查通过,则得到了核查通过的任务流程,可投入使用。

图4为本申请实施例提供的一种医疗数据ETL任务中的数据核查装置的结构框图,如图4所示,该装置400可以包括:目标数据抽取组件确定模块401、数据核查点标志添加模块402以及数据核查模块403,其中:

目标数据抽取组件确定模块401用于在配置医疗数据ETL任务的任务流程过程中,基于各数据抽取组件的数据量级别和业务类型,确定至少一个需要进行数据核查的目标数据抽取组件;

数据核查点标志添加模块402用于对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志,数据核查点标志用于指示该目标数据抽取组件对应的数据核查配置信息;

数据核查模块403用于执行医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,基于该目标数据抽取组件对应的数据核查配置信息,对该数据抽取组件抽取的数据进行数据核查得到核查结果。

本申请提供的方案,通过在配置医疗数据ETL任务的任务流程过程中,基于配置好的各数据抽取组件的业务类型和所要处理的数据量,确定出需要进行数据核查的目标数据抽取组件,并为目标数据抽取组件添加数据核查点标志,然后执行配置好的任务流程,并在执行到数据核查点标志时跳转至数据核查的步骤,并基于核查结果对目标数据抽取组件的映射关系进行调整。该方案在配置任务流程的过程中对各数据抽取组件进行数据核查,节约了核查时间,提高了核查效率,同时,在确定需要进行数据核查的目标数据抽取组件时,考虑了各数据抽取组件的业务类型和所需处理的数据量,数据核查的适用性更强,且每次核查操作仅针对一个目标数据抽取组件,使得映射关系的调整针对性更强,调整过程更简单。

在本申请的一种可选实施例中,该装置还包括数据抽取组件配置模块,用于:

在确定至少一个需要进行数据核查的目标数据抽取组件之前,在配置医疗数据ETL任务的任务流程过程中,基于ETL任务的业务需求,确定ETL任务中所包含的至少一对源端和目标端,并为每对源端和目标端配置对应的数据抽取组件。

在本申请的一种可选实施例中,数据抽取组件配置模块具体用于:

基于每对源端和目标端中源端的数据结构和目标端的数据结构、以及业务需求,确定由源端数据到目标端数据的映射关系,并基于映射关系确定该对源端和目标端对应的数据抽取组件。

在本申请的一种可选实施例中,目标数据抽取组件确定模块具体用于:

对于每一数据抽取组件,若该数据抽取组件对应的数据量级别达到预设数据量级别、和/或该数据抽取组件对应的业务类型为预设业务类型,则确定该数据抽取组件为目标数据抽取组件。

在本申请的一种可选实施例中,该装置还包括数据核查配置信息获取模块,用于:

在确定至少一个需要进行数据核查的目标数据抽取组件的同时,从目标数据抽取组件的映射关系所包含的目标端数据字段,确定出需要核查的目标端数据字段和对应的核查规则,并将需要核查的目标端数据字段和对应的核查规则作为数据核查配置信息按存储路径进行存储。

在本申请的一种可选实施例中,数据核查模块具体用于:

在执行至每一目标数据抽取组件时,将该目标数据抽取组件抽取到的数据存入预设临时表中,并基于数据核查点标志获取该目标数据抽取组件对应的数据核查配置信息;

对于每一目标数据抽取组件,基于该目标数据抽取组件对应的数据核查配置信息,对预设临时表中的数据进行数据核查得到核查结果。

在本申请的一种可选实施例中,该装置还包括映射关系调整模块,用于:

在得到核查结果后,若核查结果指示核查不通过,则基于核查结果修改目标数据抽取组件的映射关系,并再次执行ETL任务的任务流程,获取对应的核查结果;

重复执行若核查结果指示核查不通过,则基于核查结果修改目标数据抽取组件的映射关系,并再次执行ETL任务的任务流程的步骤,直至核查结果指示核查通过。

下面参考图5,其示出了适于用来实现本申请实施例的电子设备(例如执行图1所示方法的终端设备或服务器)500的结构示意图。本申请实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴设备等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

电子设备包括:存储器以及处理器,存储器用于存储执行上述各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。其中,这里的处理器可以称为下文所述的处理装置501,存储器可以包括下文中的只读存储器(ROM)502、随机访问存储器(RAM)503以及存储装置508中的至少一项,具体如下所示:

如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。

通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本申请实施例的方法中限定的上述功能。

需要说明的是,本申请上述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:

在配置医疗数据ETL任务的任务流程过程中,基于各数据抽取组件的数据量级别和业务类型,确定至少一个需要进行数据核查的目标数据抽取组件;对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志,数据核查点标志用于指示该目标数据抽取组件对应的数据核查配置信息;执行医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,基于该目标数据抽取组件对应的数据核查配置信息,对该数据抽取组件抽取的数据进行数据核查得到核查结果。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一程序切换模块还可以被描述为“切换第一程序的模块”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机可读介质被电子设备执行时实现的具体方法,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:

在配置医疗数据ETL任务的任务流程过程中,基于各数据抽取组件的数据量级别和业务类型,确定至少一个需要进行数据核查的目标数据抽取组件;对于每一目标数据抽取组件,在该目标数据抽取组件之后添加数据核查点标志,数据核查点标志用于指示该目标数据抽取组件对应的数据核查配置信息;执行医疗数据ETL任务的任务流程,在执行至每一目标数据抽取组件时,基于该目标数据抽取组件对应的数据核查配置信息,对该数据抽取组件抽取的数据进行数据核查得到核查结果。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号