CN111797157B - 一种数据处理方法、系统及电子设备和存储介质 - Google Patents

一种数据处理方法、系统及电子设备和存储介质 Download PDF

Info

Publication number
CN111797157B
CN111797157B CN202010706692.7A CN202010706692A CN111797157B CN 111797157 B CN111797157 B CN 111797157B CN 202010706692 A CN202010706692 A CN 202010706692A CN 111797157 B CN111797157 B CN 111797157B
Authority
CN
China
Prior art keywords
type
dependency
dependency relationship
data
script
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.)
Active
Application number
CN202010706692.7A
Other languages
English (en)
Other versions
CN111797157A (zh
Inventor
师印
蔡洁洁
易锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengcaiyun Co ltd
Original Assignee
Zhengcaiyun Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengcaiyun Co ltd filed Critical Zhengcaiyun Co ltd
Priority to CN202010706692.7A priority Critical patent/CN111797157B/zh
Publication of CN111797157A publication Critical patent/CN111797157A/zh
Application granted granted Critical
Publication of CN111797157B publication Critical patent/CN111797157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning

Abstract

本申请公开了一种数据处理方法、系统及电子设备和存储介质,该方法包括:获取针对ETL作业定义的第一类SQL脚本;对所有第一类SQL脚本进行自动解析,得到作业之间的第一类依赖关系;利用第一自动检测脚本检测第一类依赖关系中是否存在依赖错误,自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;若第一类依赖关系中不存在依赖错误,则发布ETL作业上线,并根据第一类依赖关系生成各作业对应的作业产出表之间的数据血缘关系。由上可知,本申请中用户可以预先并行开发定义作业的SQL脚本,在获取到脚本之后将对其进行自动解析,分析作业之间的第一类依赖关系,并自动检测是否存在依赖错误,在提高工作效率的同时降低了出错概率。

Description

一种数据处理方法、系统及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据处理方法、系统及一种电子设备和一种计算机可读存储介质。
背景技术
ETL,即Extract-Transform-Load,用于描述将数据从来源端经过萃取、转置、加载至目的端的过程。在数据仓库系统中,最初的源端是公司业务系统的业务数据库,目的端是大数据仓库。在实践中ETL 过程还会在大数据仓库系统内部进行多次,用来做数据清洗和数仓分层。执行某个ETL的计算过程叫做ETL作业,所有的ETL作业需要定时按照作业依赖关系进行调度,这整个过程称为ETL作业调度。
在传统的数据开发系统中,在开发有多层依赖的ETL作业任务时需要按照依赖顺序逐次开发,并且需要人工手动指定依赖关系。在修改了ETL脚本时,还需要再次调整依赖关系。上述数据作业开发方式中,按照顺序开发ETL作业需要耗费较多的工作时间,同时人工配置依赖关系时可能会存在失误,有些错误只有在运行时才能发现,而缺失依赖可能导致作业运行没有按照依赖顺序进行,从而引发不易察觉的数据错误。
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种数据处理方法、系统及一种电子设备和一种计算机可读存储介质,在提高工作效率的同时显著降低了出错概率。
为实现上述目的,本申请提供了一种数据处理方法,包括:
获取针对ETL作业定义的第一类SQL脚本;
对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;
利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;
若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系。
可选的,所述利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误之后,还包括:
若所述第一类依赖关系中存在依赖错误,则返回告警提示信息,所述告警提示信息包括错误出现位置、错误类型和错误描述信息。
可选的,还包括:
获取针对数据接口定义的第二类SQL脚本;
利用第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL 脚本进行自动解析,检测各个数据接口所依赖的所述ETL作业和所述作业产出表是否存在;
如果是,则将所述数据接口发布至联调环境进行联调测试,并在测试通过后发布所述数据接口上线。
可选的,所述利用第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL脚本进行自动解析,检测各个数据接口所依赖的所述 ETL作业和所述作业产出表是否存在,包括:
利用所述第二自动检测脚本对所述第一类SQL脚本和所述第二类 SQL脚本进行语法分析,确定作业与数据接口之间的第二类依赖关系;
根据所述第二类依赖关系执行所述ETL作业,得到各层输出的实际数据产出表;
基于所述实际数据产出表和所述第一类SQL脚本定义的ETL作业,校验所述数据接口所依赖的所述ETL作业和所述作业产出表是否存在。
可选的,所述利用所述第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL脚本进行语法分析,确定作业与数据接口之间的第二类依赖关系之后,还包括:
通过预设视图对所述第一类依赖关系、所述第二类依赖关系和所述数据血缘关系进行显示。
可选的,所述根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系示意图之后,还包括:
根据所述第一类依赖关系、作业与数据接口之间的第二类依赖关系以及所述数据血缘关系,定时检测系统中是否存在无依赖的空跑作业;
将检测到的所述空跑作业返回至用户终端,以接收所述用户终端下发的选择指令,根据所述选择指令确定是否对所述空跑作业进行下线处理。
可选的,所述根据所述选择指令确定是否对所述空跑作业进行下线处理之后,还包括:
若检测到任一所述ETL作业下线后,对所述第一类依赖关系、所述第二类依赖关系以及所述数据血缘关系示意图进行自动更新。
为实现上述目的,本申请提供了一种数据处理系统,包括:
脚本获取模块,用于获取针对ETL作业定义的第一类SQL脚本;
脚本解析模块,用于对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;
错误检测模块,用于利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;
作业发布模块,用于若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述 ETL作业对应的作业产出表之间的数据血缘关系。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种数据处理方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种数据处理方法的步骤。
通过以上方案可知,本申请提供的一种数据处理方法,包括:获取针对ETL作业定义的第一类SQL脚本;对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系。由上可知,本申请中用户可以预先并行开发定义ETL 作业的SQL脚本,在获取到SQL脚本之后将对其进行自动解析,分析作业之间的第一类依赖关系,并自动检测是否存在依赖错误,在提高工作效率的同时显著降低了出错概率,且可以自动生成作业产出表之间的数据血缘关系,能为后续的分析过程提供数据支持。
本申请还公开了一种数据处理系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种数据处理方法的流程图;
图2为本申请实施例公开的一种具体的ETL作业的示意图;
图3为本申请实施例公开的数据处理方法的一种具体实施方式的流程图;
图4为本申请实施例公开的一种具体的数据接口的示意图;
图5、图6为本申请实施例公开的一种具体的作业依赖与作业接口依赖关系图以及作业产出表之间的数据血缘关系图;
图7为本申请实施例公开的一种具体的ETL作业的开发流程示意图;
图8为本申请实施例公开的一种具体的数据接口的开发流程示意图;
图9为本申请实施例公开的一种数据处理系统的结构图;
图10为本申请实施例公开的一种电子设备的结构图;
图11为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统的数据开发系统中,在开发有多层依赖的ETL作业任务时需要按照依赖顺序逐次开发,并且需要人工手动指定依赖关系。在修改了ETL脚本时,还需要再次调整依赖关系。上述数据作业开发方式中,按照顺序开发ETL作业需要耗费较多的工作时间,同时人工配置依赖关系时可能会存在失误,有些错误只有在运行时才能发现,而缺失依赖可能导致作业运行没有按照依赖顺序进行,从而引发不易察觉的数据错误。
因此,本申请实施例公开了一种数据处理方法,在提高工作效率的同时显著降低了出错概率。
参见图1所示,本申请实施例公开的一种数据处理方法包括:
S101:获取针对ETL作业定义的第一类SQL脚本;
本申请实施例中,首先获取用户针对ETL作业定义的第一类SQL 脚本。具体地,本申请实施例将ETL作业定义为两部分内容,如图2 所示,ETL作业包括一段SQL脚本和一个作业产出表。ETL作业在运行时会把这段SQL传入Spark应用执行模板,把SQL查询的结果集覆盖到作业产出表定义的表中。用户可以定义作业产出表名称和表结构,并发编写作业的SQL脚本。
其中,SQL(Structured Query Language,结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
S102:对所有所述第一类SQL脚本进行自动解析,得到所述ETL 作业之间的第一类依赖关系;
在本步骤中,可以获取用户定义的所有第一类SQL脚本,通过对第一类SQL脚本进行语法分析等解析过程,确定ETL作业之间的依赖关系。
S103:利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;
需要指出的是,当确定出作业之间的第一类依赖关系之后,可以利用第一自动检测脚本对上述第一类依赖关系进行检测,以确定其中是否存在依赖错误,例如作业循环依赖、缺失依赖等错误。其中,上述第一自动检测脚本具体为用户预先编写的用于检测依赖关系是否符合预设依赖规则的脚本,预设依赖规则指定了正确的作业依赖关系。
S104:若所述第一类依赖关系中不存在依赖错误,则发布所述ETL 作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系。
可以理解的是,若对上述第一类依赖关系进行检测后,得到第一类依赖关系中不存在依赖错误,即可允许作业上线发布运行。另外,若对上述第一类依赖关系进行检测后得到第一类依赖关系中存在依赖错误,则可以返回告警提示信息,告警提示信息中可以包括但不限于错误出现位置、错误类型和错误描述信息,以便用户根据告警提示信息修改SQL脚本。
作为一种优选的实施方式,考虑到传统技术中需要利用人工配置依赖关系,无法产出准确全面的数据血缘关系图,本申请实施例将在作业上线后,可以进一步根据上述作业之间的第一类依赖关系生成各个作业产出表之间的数据血缘关系,还可将数据血缘关系示意图显示在可视化界面中。
进一步地,本申请实施例在检测到任一ETL作业下线后,可以根据系统中更新后的ETL作业对第一类依赖关系以及数据血缘关系进行自动更新。
通过以上方案可知,本申请提供的一种数据处理方法,包括:获取针对ETL作业定义的第一类SQL脚本;对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系。由上可知,本申请中用户可以预先并行开发定义ETL 作业的SQL脚本,在获取到SQL脚本之后将对其进行自动解析,分析作业之间的第一类依赖关系,并自动检测是否存在依赖错误,在提高工作效率的同时显著降低了出错概率,且可以自动生成作业产出表之间的数据血缘关系,能为后续的分析过程提供数据支持。
在传统数据开发系统中开发数据接口时,一般需要等待数据开发人员数据开发完毕,数据表产出,才能进行接口开发和调试,以保证依赖的表和字段都是按照约定的。也即,数据接口开发必须等待依赖的ETL作业开发完成并运行后才可以开发调试,不能按照预定并行开发。由此,本申请实施例在上述数据处理方法的基础上,进一步提供了接口开发过程。参见图3所示,具体的:
S201:获取针对数据接口定义的第二类SQL脚本;
本申请实施例中,如图4所示,将系统的数据接口定义为一段SQL 脚本,在数据接口执行时会将这段SQL脚本传入数据库执行SQL模板接口,接口可返回执行SQL的结果集。在具体实施中,用户无需等待所有ETL作业开发完成并运行后才开始开发调试接口,可以按照约定并行开发接口,即编写SQL脚本。其中,上述SQL脚本主要可以指DQL (Data QueryLanguage,数据查询语言)脚本。数据接口具体是指基于SQL查询的HTTP协议接口,可以通过编写程序,调用接口特定SQL 到Presto等SQL执行引擎上执行获取数据实现。
S202:利用第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL脚本进行自动解析,检测各个数据接口所依赖的所述ETL作业和所述作业产出表是否存在;
在获取到用户针对数据接口定义的第二类SQL脚本之后,可以利用第二自动检测脚本对第一类SQL脚本和第二类SQL脚本进行自动解析,以判断各个数据接口所依赖的ETL作业和作业产出表是否存在,即检测数据接口依赖的作业和产出表是否开发完成。
具体地,上述利用第二自动检测脚本对第一类SQL脚本和第二类 SQL脚本进行自动解析,检测各个数据接口所依赖的ETL作业和作业产出表是否存在的过程可以包括:利用第二自动检测脚本对第一类 SQL脚本和第二类SQL脚本进行语法分析,确定作业与数据接口之间的第二类依赖关系;根据第二类依赖关系执行ETL作业,得到各层输出的实际数据产出表;基于实际数据产出表和第一类SQL脚本定义的 ETL作业,校验数据接口所依赖的ETL作业和作业产出表是否存在。也即,第二自动检测脚本可以为用户预先编写的用于对脚本进行语法分析,并进一步确定依赖关系,根据依赖关系检测所需的作业和产出表是否存在的脚本。
S203:如果是,则将所述数据接口发布至联调环境进行联调测试,并在测试通过后发布所述数据接口上线。
可以理解的是,若检测到各个数据接口所依赖的ETL作业和作业产出表均存在,即均已开发完成,此时可以允许将数据接口发布至联调环境进行联调测试,在测试通过后即可将数据发布上线。
在一种具体的实施方式中,本申请实施例在确定作业与数据接口之间的第二类依赖关系之后,还可以进一步通过预设视图对第一类依赖关系、第二类依赖关系和数据血缘关系进行显示。根据上述第一类依赖关系、第二类依赖关系和数据血缘关系,可以方便后续进行空跑作业的检测、数据资产的分析,还可在某个作业运行异常时准确评估影响范围。参见图5、图6所示,其分别示出了一种具体的作业依赖与作业接口依赖关系图以及作业产出表之间的数据血缘关系图。由于作业产出表与ETL作业为一一对应的关系,因此数据表之间的数据血缘关系与上述依赖关系是一致的。
由于传统数据开发系统中无法对无依赖作业,即空跑作业进行自动检测,在系统运行一段时间后可能会有大量的无用作业空跑,消耗了不必要的系统资源。作为一种优选的实施方式,本申请实施例可以根据第一类依赖关系、作业与数据接口之间的第二类依赖关系以及数据血缘关系,定时检测系统中是否存在无依赖的空跑作业;将检测到的空跑作业返回至用户终端,以接收所述用户终端下发的选择指令,根据选择指令确定是否对空跑作业进行下线处理。通过上述过程,可以自动检测无用的空跑作业,并在用户确认后及时对作业进行下线处理,提高了集群的资源利用效率。
进一步地,在对空跑作业进行下线处理之后,本申请实施例还可以对第一类依赖关系、第二类依赖关系以及数据血缘关系示意图进行自动更新。
下面通过一种具体的示例对本申请实施例提供的数据处理方法进行说明。参见图7所示,本申请实施例中ETL作业的开发流程可以具体包括:首先定义ETL作业的作业产出表名称和表结构,并编写作业 SQL脚本。系统根据定义的脚本,自动检测作业依赖关系,并在不存在依赖错误时可发布作业上线,并计算数据血缘关系。在后续系统运行过程中,ETL作业将定时调度运行,当检测到任一ETL作业下线后,将自动更新数据血缘关系。
参见图8所示,本申请实施例中数据接口的开发流程可以具体包括:首先编写数据接口的SQL脚本,在编写时可以先不考虑依赖的表和作业。当编写完成后,系统可根据脚本自动检测数据接口所依赖的表和作业是否存在,若均存在,则可发布接口到联调环境进行联调测试,在测试通过后即可发布数据接口上线,并计算数据接口依赖关系。在后续系统运行过程中,若检测到任一数据接口下线,则自动更新数据接口依赖关系。
本申请实施例中,对数据开发系统中的ETL作业和数据接口进行了抽象,分离了变化的部分即SQL脚本和不变的执行逻辑,实现作业和数据接口的模板化、配置化。同时基于SQL语法分析技术,对作业和数据接口的整个生命周期做了依赖和关系自动管理。通过自动动态地分析作业SQL脚本和数据接口的SQL脚本,得到依赖关系和数据血缘关系,并自动检测是否存在依赖错误,开发人员可以并行开发脚本,既提高了工作效率又减少了出错的概率,并且这些检测在作业和数据接口上线前就可以完成。
另外,本申请实施例可以准确全面地生成作业和数据接口之间的依赖关系图,并显示对应的关系图,在系统运行过程中能够自动更新,可以保证在作业和数据接口的全生命周期内自动动态维护依赖关系,以便根据依赖关系进行空跑任务检测、数据资产分析以及评估问题作业影响范围等。
进一步地,通过具体的实施场景对本申请实施例提供的方案与传统方案进行对比。假设目前需要开发A个数据接口,依赖B张数仓表,即依赖B个ETL作业,假设n个人开发作业,m个人开发接口。按照传统的开发方案,m+n个开发人员需要先整理表需求,然后按照表的依赖关系顺序开发,开发完成作业并且配置好依赖关系后,再开发数据接口。假设平均开发一个作业或者接口需要的人力是P,那么m个人开发A个数据接口,n个人开发B个ETL作业,需要的时间成本为:A×P ÷m+B×P÷n天,耗费的人力成本为:(A+B)×P。假设A=10, B=20,m=1,n=2,P=0.5,则需要花费10天,人力15。而本实施例提供的方案中,m+n个开发人员只需要完成数据需求梳理,约定好表结构,然后n个人进行作业开发,m个人进行接口开发,作业间依赖和接口与作业的依赖系统自动根据开发人员编写的SQL脚本分析得出。在作业和接口上线、修改、下线时会自动检测依赖是否缺失,节省原本的沟通成本和依赖配置时间,作业和数据接口可以并行开发。假设使用原系统平均开发一个作业或者接口需要的人力是P,本实施例节省了上述沟通、配置和等待过程,只需要75%*P,即本实施例m个人开发A个数据接口,n个人开发B个ETL作业需要的开发时间为:max{A ×75%×P÷m,B×75%×P÷n},人力成本为:(A+B)×75%P。假设A=10,B=20,m=1,n=2,P=0.5,则所需人力成本为11.25,相较传统方案人力成本降低25%,开发时间为3.75天,开发周期缩短62.5%。
下面对本申请实施例提供的一种数据处理系统进行介绍,下文描述的一种数据处理系统与上文描述的一种数据处理方法可以相互参照。
参见图9所示,本申请实施例提供的一种数据处理系统包括:
脚本获取模块301,用于获取针对ETL作业定义的第一类SQL脚本;
脚本解析模块302,用于对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;
错误检测模块303,用于利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;
作业发布模块304,用于若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系。
关于上述模块301至304的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
本申请还提供了一种电子设备,参见图10所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的数据处理方法的步骤。
在上述实施例的基础上,作为优选实施方式,参见图11所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口 300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图11仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图11示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的数据处理方法的步骤。
本申请中用户可以预先并行开发定义ETL作业的SQL脚本,在获取到SQL脚本之后将对其进行自动解析,分析作业之间的第一类依赖关系,并自动检测是否存在依赖错误,在提高工作效率的同时显著降低了出错概率,且可以自动生成作业产出表之间的数据血缘关系,能为后续的分析过程提供数据支持。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种数据处理方法,其特征在于,包括:
获取针对ETL作业定义的第一类SQL脚本;
对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;
利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;
若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系;
获取针对数据接口定义的第二类SQL脚本;
利用第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL脚本进行语法分析,确定作业与数据接口之间的第二类依赖关系;
根据所述第二类依赖关系执行所述ETL作业,得到各层输出的实际数据产出表;
基于所述实际数据产出表和所述第一类SQL脚本定义的ETL作业,校验所述数据接口所依赖的所述ETL作业和所述作业产出表是否存在;
如果是,则将所述数据接口发布至联调环境进行联调测试,并在测试通过后发布所述数据接口上线。
2.根据权利要求1所述的数据处理方法,其特征在于,所述利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误之后,还包括:
若所述第一类依赖关系中存在依赖错误,则返回告警提示信息,所述告警提示信息包括错误出现位置、错误类型和错误描述信息。
3.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL脚本进行语法分析,确定作业与数据接口之间的第二类依赖关系之后,还包括:
通过预设视图对所述第一类依赖关系、所述第二类依赖关系和所述数据血缘关系进行显示。
4.根据权利要求1至3任一项所述的数据处理方法,其特征在于,所述根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系示意图之后,还包括:
根据所述第一类依赖关系、作业与数据接口之间的第二类依赖关系以及所述数据血缘关系,定时检测系统中是否存在无依赖的空跑作业;
将检测到的所述空跑作业返回至用户终端,以接收所述用户终端下发的选择指令,根据所述选择指令确定是否对所述空跑作业进行下线处理。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据所述选择指令确定是否对所述空跑作业进行下线处理之后,还包括:
若检测到任一所述ETL作业下线后,对所述第一类依赖关系、所述第二类依赖关系以及所述数据血缘关系示意图进行自动更新。
6.一种数据处理系统,其特征在于,包括:
脚本获取模块,用于获取针对ETL作业定义的第一类SQL脚本;
脚本解析模块,用于对所有所述第一类SQL脚本进行自动解析,得到所述ETL作业之间的第一类依赖关系;
错误检测模块,用于利用第一自动检测脚本检测所述第一类依赖关系中是否存在依赖错误,所述自动检测脚本用于检测依赖关系是否符合基于预设依赖规则;
作业发布模块,用于若所述第一类依赖关系中不存在依赖错误,则发布所述ETL作业上线,并根据所述第一类依赖关系生成各所述ETL作业对应的作业产出表之间的数据血缘关系;获取针对数据接口定义的第二类SQL脚本;利用第二自动检测脚本对所述第一类SQL脚本和所述第二类SQL脚本进行语法分析,确定作业与数据接口之间的第二类依赖关系;根据所述第二类依赖关系执行所述ETL作业,得到各层输出的实际数据产出表;基于所述实际数据产出表和所述第一类SQL脚本定义的ETL作业,校验所述数据接口所依赖的所述ETL作业和所述作业产出表是否存在;如果是,则将所述数据接口发布至联调环境进行联调测试,并在测试通过后发布所述数据接口上线。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述数据处理方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据处理方法的步骤。
CN202010706692.7A 2020-07-21 2020-07-21 一种数据处理方法、系统及电子设备和存储介质 Active CN111797157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010706692.7A CN111797157B (zh) 2020-07-21 2020-07-21 一种数据处理方法、系统及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010706692.7A CN111797157B (zh) 2020-07-21 2020-07-21 一种数据处理方法、系统及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111797157A CN111797157A (zh) 2020-10-20
CN111797157B true CN111797157B (zh) 2024-03-22

Family

ID=72827122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010706692.7A Active CN111797157B (zh) 2020-07-21 2020-07-21 一种数据处理方法、系统及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111797157B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506957A (zh) * 2020-12-18 2021-03-16 杭州数梦工场科技有限公司 工作流依赖关系的确定方法及装置
CN113722198A (zh) * 2021-09-02 2021-11-30 中国建设银行股份有限公司 脚本作业提交控制方法及装置、存储介质及电子设备
CN113821497B (zh) * 2021-11-24 2022-02-18 深圳市佑荣信息科技有限公司 基于sql自动化解析检测的数据维护方法
CN117421252A (zh) * 2023-12-18 2024-01-19 荣耀终端有限公司 代码检测方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050064766A (ko) * 2003-12-24 2005-06-29 (주) 비티엘글로벌 단일 또는 복수 데이터베이스간의 자료의 추출, 변환, 적재 시스템 및 그 방법
CN105589874A (zh) * 2014-10-22 2016-05-18 阿里巴巴集团控股有限公司 Etl任务依赖关系的检测方法、装置及etl工具
CN108415998A (zh) * 2018-02-24 2018-08-17 平安科技(深圳)有限公司 应用依赖关系更新方法、终端、设备及存储介质
CN110795455A (zh) * 2019-09-06 2020-02-14 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050064766A (ko) * 2003-12-24 2005-06-29 (주) 비티엘글로벌 단일 또는 복수 데이터베이스간의 자료의 추출, 변환, 적재 시스템 및 그 방법
CN105589874A (zh) * 2014-10-22 2016-05-18 阿里巴巴集团控股有限公司 Etl任务依赖关系的检测方法、装置及etl工具
CN108415998A (zh) * 2018-02-24 2018-08-17 平安科技(深圳)有限公司 应用依赖关系更新方法、终端、设备及存储介质
CN110795455A (zh) * 2019-09-06 2020-02-14 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN111797157A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
CN111797157B (zh) 一种数据处理方法、系统及电子设备和存储介质
US11379348B2 (en) System and method for performing automated API tests
CN109902105B (zh) 用于微服务架构的数据查询系统、方法、设备及存储介质
US10318595B2 (en) Analytics based on pipes programming model
CN111026779B (zh) 一种基于Flink SQL的数据处理方法、装置、存储介质
CN104407973A (zh) 一种自动化单元测试的实现方法及装置
US11003574B2 (en) Optimized testing system
US20130014082A1 (en) Method of configuring business logic supporting multi-tenancy
CN111177113A (zh) 数据迁移方法、装置、计算机设备和存储介质
CN107391528B (zh) 前端组件依赖信息搜索方法及设备
Marceau et al. The design and implementation of a dataflow language for scriptable debugging
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
CN114416849A (zh) 数据处理方法、装置、电子设备及存储介质
US11119899B2 (en) Determining potential test actions
CN105573763A (zh) 一种支持rtos的嵌入式系统建模方法
TW201324347A (zh) 功能模組命令管理系統及方法
US20200356885A1 (en) Service management in a dbms
CN110990227B (zh) 一种数值水池应用特征性能采集和监控系统及其运行方法
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
US10061681B2 (en) System for discovering bugs using interval algebra query language
CN107818501B (zh) 精算方法和装置
CN115237706A (zh) 埋点数据处理方法、装置、电子设备及存储介质
CN113051171A (zh) 接口测试方法、装置、设备及存储介质
US20200285647A1 (en) Asynchronous data enrichment for an append-only data store
CN111290749B (zh) 一种数据处理方法、智能终端及存储介质

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