掌桥专利:专业的专利平台
掌桥专利
首页

数据文件质量检查方法及装置

文献发布时间:2023-06-19 19:37:02


数据文件质量检查方法及装置

技术领域

本发明涉及大数据技术领域,尤其涉及一种数据文件质量检查方法及装置。

背景技术

在金融行业内,每天交易系统都会产生大量交易数据,然后通过配置文件、csv、文本与数据仓库或数据分析系统进行信息交互。上游系统的数据质量直接影响着下游系统的批量执行及批量结果的正确性。为了确保下游系统不会加载到上游系统因各种原因产生的错误数据文件,而使后续批量均使用错误数据执行,在上游系统下发前对文件内容进行检查就成了必要的措施。因此就需要一种,部署简单,可扩展性强且效率有保证的数据文件质量检查方案。

发明内容

本发明实施例提出一种数据文件质量检查方法,用以进行高效率的数据文件质量检查,该方法包括:

获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;

将所述DSL转义为计算机逻辑语言;

构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;

在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。

本发明实施例提出一种数据文件质量检查装置,用以进行高效率的数据文件质量检查,该装置包括:

DSL获得模块,用于获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;

语义解析模块,用于将所述DSL转义为计算机逻辑语言;

规则引擎模块,用于构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;

质量检查模块,用于在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据文件质量检查方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据文件质量检查方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据文件质量检查方法。

在本发明实施例中,获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;将所述DSL转义为计算机逻辑语言;构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。在上述过程中,可以高效的检查数据文件质量,有效的将数据问题截留在源系统,防止错误数据透传下游的情况发生;安装部署简单,只需要部署JVM就可以使用上述方案;减少人工运维工作量,降低了企业的人力成本;根据业务人员习惯而定制化的DSL,让业务人员可以直接实现更复杂的数据校验逻辑,而不是通过将逻辑转述开发人员后,通过开发人员实现。大大降低了沟通的时间成本,同时降低了开发人员在将业务逻辑抽象成程序时由于理解偏差而发生错误的可能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中数据文件质量检查方法的流程图;

图2为本发明实施例中基于配置文件的质量检查流程图;

图3为本发明实施例中异常处理的流程图;

图4为本发明实施例中数据文件质量检查装置的示意图;

图5为本发明实施例中计算机设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。

首先对本发明涉及的术语进行解释。

Groovy:是一种基于JVM的敏捷开发语言,既可以用于面向对象的编程,也可以作为纯粹的脚本语言。其代码能够与java代码很好的结合,并结合了python、ruby的许多强大特性。

DSL:是Domain Specific Language的缩写,中文翻译是领域特定语言。与通用编程语言相对(例如java,c++,object-c),是为了解决某一类任务而专门设计的计算机语言。

规则引擎:是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则作出对应决策。

Apache Griffin:是一个应用于分布式数据系统中的开源数据质量解决方案。在Hadoop,Spark,Storm分布式系统中,提供了一整套统一的流程来定义和检测数据集的质量并及时报告问题。

Spring Batch:是一个轻量级的,完善的批处理框架。它只注重任务处理相关问题,如执行任务、事务、并发等,而不是提供调度功能。它是为了和调度程序一起完成任务而设计的。

发明人认为,目前使用的有数据库,Spring Batch,Apache Griffin等工具。Apache Griffin侧重大数据的质量检查,但使用它需要部署spark、elasticsearch等相关依赖,等对于数据量较小的场景就显得冗余,因为这些系统往往需要额外部署这些依赖。他更适合部署在数据总线统一检查所有源数据,而并不适合在数据源系统分别部署(除非他们会产生大量数据)。Spring Batch是用于大量文件处理的批处理框架,具体的数据校验逻辑和方法,需要单独编写。使用数据库的约束,系统可以用过设置主键及非空等约束,检查数据重复及非空约束很方便。但要实现规则引擎,使用存储过程会复杂而且执行效率会很低。

基于以上几个问题,本发明实施例提出本方法及装置,安装部署简单,旨在提出一种更新成本低以适应经常变化的业务规则且执行效率有保证的数据文件检查工具。由于本方法及装置是基于Groovy编写,持久化通过文件实现,其运转只依赖于JVM,安装部署非常简单。对于面对市场要求而经常变化的业务规则,则通过本方法及装置中的规则引擎,可以将业务校验规则从应用程序代码中分离出来,并使用预定义的DSL模块编写业务校验逻辑。当规则变化的时候,业务人员可自行进行调整,省去了调整核心代码以及与开发人员沟通描述的时间,降低了每次更新的成本,提高了更新速度。由于Groovy是基于JVM的,通过JIT编译器,在多次执行相同代码时会将字节码转换为本地机器码,极大提升程序运行效率,正适用于对大量数据反复执行固定规则校验的场景。

图1为本发明实施例中数据文件质量检查方法的流程图,包括:

步骤101,获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;

步骤102,将所述DSL转义为计算机逻辑语言;

步骤103,构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;

步骤104,在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。

,在一实施例中,所述DSL采用groovy编写。

图2为本发明实施例中基于配置文件的质量检查流程图,在一实施例中,所述方法还包括:

步骤201,接收业务人员输入的数据文件接口规则的配置文件;

步骤202,在接收多个待检查数据文件时,读取所述配置文件,按照所述配置文件中的数据文件接口规则,进行校验,获得多个待检查数据文件的第一质量检查结果;

步骤104,包括:对于第一质量检查结果为通过的待检查数据文件,调用所述规则引擎,获得质量检查结果。

通过上述实施例,通过读取配置文件,来决定需要校验的数据文件。在系统批量生成待检查数据文件后,通过执行上述步骤,根据校验规则对文件进行检查,并生成相关日志。根据配置文件的设置,可以阻止不符合数据文件接口规则的数据文件下发(例如字段超长,非空栏位为空,主键重复,文件为空,数据异常波动等情况)。也可以对不符合数据文件接口规则的数据文件进行处理后下发(例如全字段重复时去重,或单独去除异常数据行)。

配置文件可以为Excel,其中定义了数据长度,主键等上下游系统约定好的数据文件接口格式。而校验规则的DSL用于高级校验,例如数据异常波动等。

图3为本发明实施例中异常处理的流程图,在一实施例中,所述方法还包括:

步骤301,筛选所述质量检查结果中发现的错误数据;

步骤302,读取用户预先设定的处理方式;

步骤303,按照所述处理方式对所述发现的错误数据进行处理。

综上所述,在本发明实施例中提出的方法中,获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;将所述DSL转义为计算机逻辑语言;构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。在上述过程中,可以高效的检查数据文件质量,有效的将数据问题截留在源系统,防止错误数据透传下游的情况发生;安装部署简单,只需要部署JVM就可以使用上述方案;减少人工运维工作量,降低了企业的人力成本;根据业务人员习惯而定制化的DSL,让业务人员可以直接实现更复杂的数据校验逻辑,而不是通过将逻辑转述开发人员后,通过开发人员实现。大大降低了沟通的时间成本,同时降低了开发人员在将业务逻辑抽象成程序时由于理解偏差而发生错误的可能。

本发明实施例还提出一种数据文件质量检查装置,其原理与数据文件质量检查方法类似,这里不再赘述。

图4为本发明实施例中数据文件质量检查装置的示意图,包括:

DSL获得模块401,用于获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;

语义解析模块402,用于将所述DSL转义为计算机逻辑语言;

规则引擎模块403,用于构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;

质量检查模块404,用于在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。

在一实施例中,所述装置还包括配置文件接收模块405,用于:

接收业务人员输入的数据文件接口规则的配置文件;

质量检查模块还用于:

在接收多个待检查数据文件时,读取所述配置文件,按照所述配置文件中的数据文件接口规则,进行校验,获得多个待检查数据文件的第一质量检查结果;

对于第一质量检查结果为通过的待检查数据文件,调用所述规则引擎,获得质量检查结果。

在一实施例中,所述装置还包括异常处理模块406,用于:

筛选所述质量检查结果中发现的错误数据;

读取用户预先设定的处理方式;

按照所述处理方式对所述发现的错误数据进行处理。

在一实施例中,所述DSL采用groovy编写。

综上所述,在本发明实施例中提出的装置中,DSL获得模块,用于获得业务人员根据交易业务术语编写的校验规则的DSL,所述校验规则用于质量检查;语义解析模块,用于将所述DSL转义为计算机逻辑语言;规则引擎模块,用于构建规则引擎,所述规则引擎用于将计算机逻辑语言转换为能够执行的校验规则;质量检查模块,用于在接收多个待检查数据文件时,调用所述规则引擎,获得多个待检查数据文件的质量检查结果。可以高效的检查数据文件质量,有效的将数据问题截留在源系统,防止错误数据透传下游的情况发生;安装部署简单,只需要部署JVM就可以使用上述方案;减少人工运维工作量,降低了企业的人力成本;根据业务人员习惯而定制化的DSL,让业务人员可以直接实现更复杂的数据校验逻辑,而不是通过将逻辑转述开发人员后,通过开发人员实现。大大降低了沟通的时间成本,同时降低了开发人员在将业务逻辑抽象成程序时由于理解偏差而发生错误的可能。

本发明实施例还提供一种计算机设备,图5为本发明实施例中计算机设备的示意图,所述计算机设备500包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现上述数据文件质量检查方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据文件质量检查方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据文件质量检查方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序业务系统。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序业务系统的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序业务系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种内存优化的数据文件格式转化方法、装置及存储介质
  • 一种性能数据文件管理方法及相关装置
  • 大数据文件读取方法、装置、计算机设备及存储介质
  • 质量检查装置、质量检查方法及程序
  • 表面质量检查装置及表面质量检查方法
技术分类

06120115969224