CN113420097A - 一种数据分析方法、装置、存储介质及服务器 - Google Patents
一种数据分析方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN113420097A CN113420097A CN202110700299.1A CN202110700299A CN113420097A CN 113420097 A CN113420097 A CN 113420097A CN 202110700299 A CN202110700299 A CN 202110700299A CN 113420097 A CN113420097 A CN 113420097A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- dependent
- tasks
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
本申请实施例公开了一种数据分析方法、装置、存储介质及服务器。方法包括:获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系;获取每一依赖任务对应的任务文件的编译语法,确定解析每一任务文件的语法解析逻辑;对于每一依赖任务,基于其对应的语法解析逻辑对每一任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。通过针对于不同编译语法确定对应的语法解析逻辑,实现将编码方式和组织形式不同的不同应用进行统一分析。
Description
技术领域
本申请涉及计算机领域,具体涉及一种数据分析方法、装置、计算机可读存储介质及服务器。
背景技术
数据的产生、加工融合、流转流通,到提供应用,数据之间自然会形成一种关系,借鉴人类社会中类似的一种关系来表达数据之间的这种关系,称之为数据的血缘关系。
现有技术中,不同应用对应的编码方式和组织形式不同,因此,每一应用都会有其对应的方式得到每一应用的相应任务对应的数据表之间的数据流向关系。
在对现有技术的研究和实践过程中,本申请的发明人发现,现有技术中,不同应用对应的编码方式和组织形式不同,无法对不同编码方式和组织形式的应用进行分析。
发明内容
本申请实施例提供一种数据分析方法及装置,可以对多个应用进行统一分析。
为解决上述技术问题,本申请实施例提供以下技术方案:
一种数据分析方法,包括:
获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;
获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;
基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;
基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
一种数据分析装置,包括:
第一获取模块,用于获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;
第一确定模块,用于获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;
第二获取模块,用于基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;
第二确定模块,用于基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
在一些实施例中,所述第二获取模块,包括:
第一确定子模块,用于从多个依赖任务中确定出编译语法属于第一语法集合的第一任务,以及编译语法属于第二语法集合的第二任务;
第二确定子模块,用于对所述第一任务的任务文件进行语法解析,生成第一抽象语法树,并基于所述第一抽象语法树,从数据表集合中确定出与所述第一任务对应的数据读取表以及数据写入表,所述数据表集合包括每一依赖任务对应的数据读取表以及数据写入表;
第一提取子模块,用于从所述第二任务的任务文件中提取出指定类型语句,对所述指定类型语句进行语法解析,生成第二抽象语法树,并基于所述第二抽象语法树,从数据表集合中确定出与所述第二任务对应的数据读取表以及数据写入表。
在一些实施例中,所述第二确定子模块,包括:
第一确定单元,用于基于所述第一抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
第二确定单元,用于将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与所述第一任务对应的数据读取表以及数据写入表;
所述第一提取子模块,包括:
第三确定单元,用于基于所述第二抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
第四确定单元,用于将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与第二任务对应的数据读取表以及数据写入表。
在一些实施例中,所述第一获取模块,包括:
第二提取子模块,用于提取所述目标应用的任务配置文件中含有指定符号的语句;
第一筛选子模块,用于基于预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句;
解析子模块,用于解析所述任务描述语句,确定所述目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
在一些实施例中,所述第一获取模块,还包括:
第二筛选子模块,用于基于预设任务配置描述关键字集合,从每一应用对应的多个文件中筛选出任务配置文件,所述任务配置文件用于记录应用包含的所有任务,以及任务之间的依赖关系。
在一些实施例中,所述装置还包括:
标记模块,用于当检测到多个依赖任务中存在被调度的目标任务时,标记所述目标任务的执行状态为待执行状态;
第一更新模块,用于当所述目标任务被执行时,将所述目标任务的执行状态更新为执行中状态;
第二更新模块,用于当所述目标任务被执行完毕时,将所述目标任务的执行状态更新为执行完毕状态。
在一些实施例中,所述装置还包括:
第一记录模块,用于记录所述目标任务的执行起始时间点;
第二记录模块,用于记录所述目标任务的执行结束时间点;
第三确定模块,用于根据所述执行起始时间点以及所述执行结束时间点,确定所述目标任务的执行时长。
在一些实施例中,所述目标应用的数量为至少两个,所述第一获取模块,包括:
第四确定模块,用于确定每一目标应用包括的多个依赖任务是否与其他目标应用包括的多个依赖任务之间存在依赖关系;
第五确定模块,用于若一目标应用存在至少一个依赖任务与其他目标应用包括的依赖任务之间存在依赖关系,则将存在依赖关系的目标应用确定为依赖应用;
第六确定模块,用于确定依赖应用之间的数据流向关系。
在一些实施例中,所述装置还包括:
显示模块,用于显示所述依赖应用之间的数据流向关系以及多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述数据分析方法中的步骤。
一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述数据分析方法中的步骤。
本申请实施例通过获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。以此,通过针对于不同编译语法确定对应的语法解析逻辑,进而实现对不同编码方式和组织形式的应用进行分析。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的数据分析方法的场景示意图。
图1b为本申请实施例提供的数据分析方法的流程示意图。
图2为本申请实施例提供的数据分析方法的另一流程示意图。
图3为本申请实施例提供的数据分析装置的结构示意图;
图4为本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一数据分析方法、装置及计算机可读存储介质。
请参阅图1a,图1a为本申请实施例所提供的数据分析系统的系统示意图,该系统可以包括至少一个客户端1000,至少一个服务器2000,至少一个数据库3000,以及网络4000。每一应用对应有至少一服务器2000,且客户端1000可以为手机、电脑或个人数字助理等终端设备,客户端1000中可以通过网络4000连接到服务器2000,或者多台服务器2000上。其中,网络4000可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的客户端1000之间也可以使用自身的蓝牙网络或者热点网络连接到服务器2000等。另外,该系统可以包括数据库3000,数据库3000可用于存储用户的用户信息或者用户在游戏中的装备信息、人物信息等。
本申请实施例提供了一种数据分析方法,该方法可以由服务器执行。如图1a所示,该服务器2000获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。基于此,通过针对于不同编译语法确定对应的语法解析逻辑,进而实现对不同编码方式和组织形式的应用进行分析。
需要说明的是,图1a所示的数据分析系统的场景示意图仅仅是一个示例,本申请实施例描述的数据分析系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着数据分析系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本实施例中,将从数据分析装置的角度进行描述,该数据分析装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的计算机设备中。
请参阅图1b,图1b为本申请实施例提供的数据分析方法的流程示意图。该数据分析方法包括:
在步骤101中,获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
其中,目标应用为指定需要进行数据分析的应用,其可以为功能应用、游戏应用等。其中,目标应用中包括有多个依赖任务,依赖任务为依赖于其他任务或被其他任务依赖的任务。
具体的,触发某一任务的执行开始需要依赖于其他任务的执行结束。例如,A任务用于计算游戏应用中每种职业的价值表(Life Time Value,LTV),B任务用于计算游戏应用中每种职业的累计充值表。可以看出,为了使得A任务可以计算每种职业的价值表,则需要事先通过B任务计算出每种职业的累计充值表,才可以执行A任务,这种任务间的关系即为依赖关系,即A任务的执行需要依赖于B任务。依赖关系即为A任务依赖于B任务。
在一些实施方式中,所述获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系的步骤,包括:
(1)提取所述目标应用的任务配置文件中含有指定符号的语句;
(2)基于预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句;
(3)解析所述任务描述语句,确定所述目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
其中,针对于不同的应用,均会为其设置一对应的任务配置文件,任务配置文件中描述了应用包括的多个任务所需的任务配置以及任务之间的关联关系。为了提取出依赖任务之间的关联关系,需要通过确定指定符号的方式提取出用于包含有描述任务之间关联的语句。此外,虽然提取出包含有描述任务之间关联的语句,但可能还存在一些与描述任务之间关联不相关的语句。故通过事先设定的预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句;进而解析所述任务描述语句,确定所述目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
例如,任务配置文件的语句为:
通过确定指定符号的方式>>提取出用于包含有描述任务之间关联的语句的为:
game_task_pre>>game_task_post
print'>>>>>>>>>>>>>',game,game_status,begin_dt,end_dt;
预设语句关键字集合中包括有“print”,则从含有指定符号的语句中筛选出任务描述语句中不存在“print”的语句,则筛选后剩余语句为:
game_task_pre>>game_task_post;
解析所述任务描述语句,确定所述应用包括的依赖任务为game_task_pre以及game_task_post,上游任务是game_task_pre,下游任务是game_task_post,依赖关系是game_task_post依赖game_task_pre的完成。
其中,在确定出依赖任务之间的依赖关系后,可将依赖任务与依赖任务之间的关联关系写入数据库中。
例如,生成数据库插入语句:insert into tablexxx(upstream,downstream)values(‘game_task_pre’,’game_task_post’);
在一些实施方式中,在所述提取所述应用的任务配置文件中含有指定符号的语句的步骤之前,还包括:
基于预设任务配置描述关键字集合,从每一应用对应的多个文件中筛选出任务配置文件,所述任务配置文件用于记录应用包含的所有任务,以及任务之间的依赖关系。
其中,应用对应的文件有多个,从多个文件中筛选出任务配置文件的方式为:事先设定任务配置描述关键字集合,该集合中存储有关于任务配置文件的命名关键字集合,通过该集合,从多个任务中筛选出任务配置文件。
例如,比如文件夹下面有task_1.py,task_2.py,run.sh三个文件,需要过滤出task_开头的文件,经过任务配置描述关键字集合的筛选之后剩下task_1.py,task_2.py这两个文件。
在一些实施方式中,在所述获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系的步骤之后,还包括:
(1)当检测到多个依赖任务中存在被调度的目标任务时,标记所述目标任务的执行状态为待执行状态;
(2)当所述目标任务被执行时,将所述目标任务的执行状态更新为执行中状态;
(3)当所述目标任务被执行完毕时,将所述目标任务的执行状态更新为执行完毕状态。
其中,由于记录了依赖任务与依赖任务之间的依赖关系,因此当依赖任务中存在被调度的目标任务时,则说明该目标任务处于待执行状态,则可对该目标任务进行状态标记,标记为待执行状态;当所述目标任务被执行时,将所述目标任务的执行状态更新为执行中状态;当所述目标任务被执行完毕时,将所述目标任务的执行状态更新为执行完毕状态。从而可以监控到每个任务实例的执行状态。
在一些实施方式中,在所述将所述目标任务的执行状态更新为执行中状态的步骤之前,还包括:
记录所述目标任务的执行起始时间点;
在所述将所述目标任务的执行状态更新为执行完毕状态的步骤之后,还包括:
(1)记录所述目标任务的执行结束时间点;
(2)根据所述执行起始时间点以及所述执行结束时间点,确定所述目标任务的执行时长。
其中,为了更精确的记录每个依赖任务在执行过程中的执行时长,从而确定任务执行时是否存在异常情况,可设定基于执行状态标记与时长之间的关联关系。在目标任务的执行状态更新为执行中状态之前,记录目标任务的执行起始时间点;以及在目标任务的执行状态更新为执行完毕状态之后,记录目标任务的执行结束时间点。从而通过执行起始时间点以及执行结束时间点,确定出目标任务处于执行状态的执行时长,进而确定目标任务在执行时是否存在执行时长过长的情况,也即异常情况。
在一些实施方式中,所述目标应用的数量为至少两个,所述获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系的步骤,包括:
(1)确定每一目标应用包括的多个依赖任务是否与其他目标应用包括的多个依赖任务之间存在依赖关系;
(2)若一目标应用存在至少一个依赖任务与其他目标应用包括的依赖任务之间存在依赖关系,则将存在依赖关系的目标应用确定为依赖应用。
其中,多个应用包括的任务之间也可能会存在依赖关系,因此在目标应用的数量为至少两个时,可确定每一目标应用包括的依赖任务是否与其他目标应用的依赖任务之间存在依赖关系;当存在依赖关系时,则将存在依赖关系的目标应用确定为依赖应用。
例如,假设存在目标应用A1和目标应用A2,目标应用A1包括依赖任务T1、T2和T3,目标应用A2包括依赖任务T4和T5,若依赖任务T1和依赖任务T4之间存在依赖关系,则可确定目标应用A1和目标应用A2为依赖应用;或者,若依赖任务T1和依赖任务T4之间存在依赖关系,且依赖任务T2和依赖任务T5之间存在依赖关系,则可确定目标应用A1和目标应用A2为依赖应用。
在步骤102中,获取每一依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑。
其中,不同游戏的计算任务实现方式不同,但是每一个游戏下的计算任务目录结构是相同的,所以需要以游戏为粒度进行定制化的语法解析。每一任务会在指定路径下存在一对应的任务文件,任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的指定数据写入表。为对不同应用进行统一分析,需要针对于不同的编译语法设定不同的语法解析逻辑,从而实现解析不同编译语法编译出的任务文件。
在步骤103中,基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表。
其中,针对于每一任务文件及其对应的语法解析逻辑,对每一任务文件间解析,从而确定出每一依赖任务对应的数据读取表以及数据写入表。
具体的,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表。
在一些实施方式中,所述对于每一依赖任务,基于其对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表的步骤,包括:
(1)从多个依赖任务中确定出编译语法属于第一语法集合的第一任务,以及编译语法属于第二语法集合的第二任务;
(2)对第一任务的任务文件进行语法解析,生成第一抽象语法树,并基于所述第一抽象语法树,从数据表集合中确定出与第一任务对应的数据读取表以及数据写入表,该数据表集合包括每一依赖任务对应的数据读取表以及数据写入表;
(3)从第二任务的任务文件中提取出指定类型语句,对所述指定类型语句进行语法解析,生成第二抽象语法树,并基于所述第二抽象语法树,从数据表集合中确定出与第二任务对应的数据读取表以及数据写入表。
其中,数据表集合中包括有每一依赖任务对应的数据读取表以及数据写入表,该数据表集合为应用程序的开发人员所指定,其指定了任务在运行时需要从哪张数据读取表读取数据以及任务运行完成后需要写入哪张数据写入表。为了确定出每个依赖任务对应的数据读取表以及数据写入表,需要对每个任务文件进行语法解析。虽然不同编译语法编译出的任务文件的文件类型以及编译架构不同,但确定依赖任务对应的数据读取表以及数据写入表仅需从任务文件中提取出关于SQL语句的部分进而确定。因此,针对于不同编译语法编译出的任务文件,存在两种语法解析逻辑。
具体的,针对于采用第一语法集合中的语法编译的任务文件为SQL文件的,可直接对SQL文件进行语法解析生成抽象语法树,进而根据抽象语法树确定每个依赖任务对应的数据读取表以及数据写入表。针对于采用第二语法集合中的语法编译的任务文件为shell文件或者python文件等,可从文件中提取出SQL语句,并对SQL语句进行语法解析生成抽象语法树,进而根据抽象语法树确定每个依赖任务对应的数据读取表以及数据写入表。
在一些实施方式中,所述基于所述第一抽象语法树,从数据表集合中确定出与第一任务对应的数据读取表以及数据写入表的步骤,包括:
(1)基于所述第一抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
(2)将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与第一任务对应的数据读取表以及数据写入表;
所述基于所述第二抽象语法树,从数据表集合中确定出与第二任务对应的数据读取表以及数据写入表的步骤,包括:
(3)基于所述第二抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
(4)将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与第二任务对应的数据读取表以及数据写入表。
其中,抽象语法树中可能存在针对于依赖任务的多个数据表流向关系,而为了确定出任务对应的数据读取表以及数据写入表,可通过目标类型的数据表流向关系从多个数据表流向关系进行确定。该目标类型的数据流向关系即为从ods层数据源表流向dwd数据明细层的数据流向关系。
例如,比如任务etl_1有SQL文件,可以理出数据流向有两条:agree_join_station_all->agree_join_station_all(中间表->中间表);agree_join_station->agree_join_station_all(数据源表->中间表);agree_join_station_all是一个dwd表,agree_join_station是ods层数据源表,所以只保留agree_join_station->agree_join_station_all这个数据流向关系。
具体的,可生成一数据库插入语句,将每个任务文件中关于依赖任务的数据流向关系存储至数据库中。
例如,生成数据库插入语句:insert into task_table_map(task_id,source,target)values(‘etl1,’,‘game_task_pre’,‘game_task_post’)。
在步骤104中,基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
其中,在确定出依赖任务的依赖关系以及每一依赖任务对应的数据读取表以及数据写入表后,可以确定出多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
例如,A任务依赖于B任务,且A任务对应的数据读取表为a表,数据写入表为b表,B任务对应的数据读取表为c表,数据写入表为a表,因此可以确定出A任务以及B任务的数据读取表以及数据写入表之间的数据流向关系为:c表->a表->b表。从而梳理出数据流向关系。
在一些实施方式中,所述基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系的步骤之后,还包括:
确定依赖应用之间的数据流向关系。
其中,针对于应用之间存在依赖关系的,可在确定出每一应用包括的多个依赖任务的数据读取表以及数据写入表的数据流向关系后,在确定出依赖应用之间的数据流向关系。
在一些实施方式中,在所述确定依赖应用之间的数据流向关系的步骤之后,还包括:
显示所述依赖应用之间的数据流向关系以及多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
其中,为了便于开发人员查看分析数据质量,可将依赖应用之间的数据流向关系以及多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系进行可视化显示。
由上述可知,本申请实施例通过获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定其对应的依赖任务执行时,需要从指定的数据读取表中获取的数据,以及指定其对应的依赖任务在任务执行完成后,需要存储其对应的依赖任务在任务执行完成后得到的数据的指定数据写入表;对于每一依赖任务,基于其对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。以此,通过针对于不同编译语法确定对应的语法解析逻辑,进而实现将编码方式和组织形式不同的不同应用进行统一分析。
结合上述实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图2,图2为本申请实施例提供的数据分析方法的另一流程示意图。该方法流程可以包括:
在步骤201中,服务器基于预设任务配置描述关键字集合,从每一应用对应的多个文件中筛选出任务配置文件。
其中,应用对应的文件有多个,从多个文件中筛选出任务配置文件的方式为:事先设定任务配置描述关键字集合,该集合中存储有关于任务配置文件的命名关键字集合,通过该集合,从多个任务中筛选出任务配置文件。
例如,比如文件夹下面有task_1.py,task_2.py,run.sh三个文件,需要过滤出task_开头的文件,经过任务配置描述关键字集合的筛选之后剩下task_1.py,task_2.py这两个文件。
在步骤202中,服务器提取目标应用的任务配置文件中含有指定符号的语句。
其中,针对于不同的应用,均会为其设置一对应的任务配置文件,任务配置文件中描述了应用包括的多个任务所需的任务配置以及任务之间的关联关系。为了提取出依赖任务之间的关联关系,需要通过确定指定符号的方式提取出用于包含有描述任务之间关联的语句。
例如,任务配置文件的语句为:
通过确定指定符号的方式>>提取出用于包含有描述任务之间关联的语句的为:
game_task_pre>>game_task_post
print'>>>>>>>>>>>>>',game,game_status,begin_dt,end_dt;
在步骤203中,服务器基于预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句。
其中,虽然提取出包含有描述任务之间关联的语句,但可能还存在一些与描述任务之间关联不相关的语句。故通过事先设定的预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句。
例如,预设语句关键字集合中包括有“print”,则从含有指定符号的语句中筛选出任务描述语句中不存在“print”的语句,则筛选后剩余语句为:
game_task_pre>>game_task_post;
在步骤204中,服务器解析任务描述语句,确定目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
其中,解析所述任务描述语句,确定所述目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
例如,解析所述任务描述语句,确定所述应用包括的依赖任务为game_task_pre以及game_task_post,上游任务是game_task_pre,下游任务是game_task_post,依赖关系是game_task_post依赖game_task_pre的完成。
其中,在确定出依赖任务之间的依赖关系后,可将依赖任务与依赖任务之间的关联关系写入数据库中。
例如,生成数据库插入语句:insert into tablexxx(upstream,downstream)values(‘game_task_pre’,’game_task_post’);
在步骤205中,当检测到多个依赖任务中存在被调度的目标任务时,服务器标记目标任务的执行状态为待执行状态。
其中,由于记录了依赖任务与依赖任务之间的依赖关系,因此当依赖任务中存在被调度的目标任务时,则说明该目标任务处于待执行状态,则可对该目标任务进行状态标记,标记为待执行状态;
在步骤206中,当所述目标任务被执行时,服务器记录目标任务的执行起始时间点将目标任务的执行状态更新为执行中状态。
其中,当所述目标任务被执行时,将所述目标任务的执行状态更新为执行中状态。为了更精确的记录每个依赖任务在执行过程中的执行时长,从而确定任务执行时是否存在异常情况,可设定基于执行状态标记与时长之间的关联关系。在目标任务的执行状态更新为执行中状态之前,记录目标任务的执行起始时间。
在步骤207中,当所述目标任务被执行完毕时,服务器记录目标任务的执行结束时间点,将目标任务的执行状态更新为执行完毕状态。
其中,当所述目标任务被执行完毕时,将所述目标任务的执行状态更新为执行完毕状态。从而可以监控到每个任务实例的执行状态。
具体的,在目标任务的执行状态更新为执行完毕状态之后,记录目标任务的执行结束时间点。
在步骤208中,服务器根据执行起始时间点以及执行结束时间点,确定目标任务的执行时长。
其中,通过执行起始时间点以及执行结束时间点,确定出目标任务处于执行状态的执行时长,进而确定目标任务在执行时是否存在执行时长过长的情况,也即异常情况。
在步骤209中,服务器获取每一依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑。
其中,不同游戏的计算任务实现方式不同,但是每一个游戏下的计算任务目录结构是相同的,所以需要以游戏为粒度进行定制化的语法解析。每一任务会在指定路径下存在一对应的任务文件,任务文件用于指定其对应的依赖任务执行时,需要从指定的数据读取表中获取的数据,以及指定其对应的依赖任务在任务执行完成后,需要存储其对应的依赖任务在任务执行完成后得到的数据的指定数据写入表。为对不同应用进行统一分析,需要针对于不同的编译语法设定不同的语法解析逻辑,从而实现解析不同编译语法编译出的任务文件。
在步骤210中,服务器从多个依赖任务中确定出编译语法属于第一语法集合的第一任务,以及编译语法属于第二语法集合的第二任务。
其中,针对于每一任务文件及其对应的语法解析逻辑,对每一任务文件间解析,从而确定出每一依赖任务对应的数据读取表以及数据写入表。对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表。
其中,为了确定出每个依赖任务对应的数据读取表以及数据写入表,需要对每个任务文件进行语法解析。虽然不同编译语法编译出的任务文件的文件类型以及编译架构不同,但确定依赖任务对应的数据读取表以及数据写入表仅需从任务文件中提取出关于SQL语句的部分进而确定。因此,针对于不同编译语法编译出的任务文件,存在两种语法解析逻辑。
在步骤211中,服务器对第一任务的任务文件进行语法解析,生成第一抽象语法树。
其中,针对于任务文件为SQL文件的,可直接对SQL文件进行语法解析生成抽象语法树,进而根据抽象语法树确定每个依赖任务对应的数据读取表以及数据写入表。
在步骤212中,服务器基于第一抽象语法树,确定至少一个类型的数据表流向关系,至少一个类型的数据表流向关系包括目标类型的数据表流向关系。
其中,抽象语法树中可能存在针对于依赖任务的多个数据表流向关系,而为了确定出任务对应的数据读取表以及数据写入表,可通过目标类型的数据表流向关系从多个数据表流向关系进行确定。该目标类型的数据流向关系即为从ods层数据源表流向dwd数据明细层的数据流向关系。
例如,比如任务etl_1有SQL文件,可以理出数据流向有两条:agree_join_station_all->agree_join_station_all(中间表->中间表);agree_join_station->agree_join_station_all(数据源表->中间表);agree_join_station_all是一个dwd表,agree_join_station是ods层数据源表。
在步骤213中,服务器将数据表集合中与目标类型的数据表流向关系匹配的数据表确定为与第一任务对应的数据读取表以及数据写入表。
例如,保留与目标类型的数据表流向关系匹配的数据表,agree_join_station->agree_join_station_all这个数据流向关系
具体的,可生成一数据库插入语句,将每个任务文件中关于依赖任务的数据流向关系存储至数据库中。
例如,生成数据库插入语句:insert into task_table_map(task_id,source,target)values(‘etl1,’,‘game_task_pre’,‘game_task_post’)。
在步骤214中,服务器从第二任务的任务文件中提取出指定类型语句,对指定类型语句进行语法解析,生成第二抽象语法树。
其中,针对于任务文件为shell文件或者python文件等,可从文件中提取出SQL语句,并对SQL语句进行语法解析生成抽象语法树。
在步骤215中,服务器基于第二抽象语法树,确定至少一个类型的数据表流向关系,至少一个类型的数据表流向关系包括目标类型的数据表流向关系。
在步骤216中,服务器将数据表集合中与目标类型的数据表流向关系匹配的数据表确定为与第二任务对应的数据读取表以及数据写入表。
其中,步骤215以及步骤216同步骤212及步骤213。
在步骤217中,服务器基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
其中,在确定出依赖任务的依赖关系以及每一依赖任务对应的数据读取表以及数据写入表后,可以确定出多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
例如,A任务依赖于B任务,且A任务对应的数据读取表为a表,数据写入表为b表,B任务对应的数据读取表为c表,数据写入表为a表,因此可以确定出A任务以及B任务的数据读取表以及数据写入表之间的数据流向关系为:c表->a表->b表。从而梳理出数据流向关系。
由上述可知,本申请实施例通过获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定其对应的依赖任务执行时,需要从指定的数据读取表中获取的数据,以及指定其对应的依赖任务在任务执行完成后,需要存储其对应的依赖任务在任务执行完成后得到的数据的指定数据写入表;对于每一依赖任务,基于其对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。以此,通过针对于不同编译语法确定对应的语法解析逻辑,进而实现对不同编码方式和组织形式的应用进行分析。
为便于更好的实施本申请实施例提供的数据分析方法,本申请实施例还提供一种基于上述数据分析方法的装置。其中名词的含义与上述数据分析方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3,图3为本申请实施例提供的数据分析装置的结构示意图。其中该数据分析装置可以包括第一获取模块301、第一确定模块302、第二获取模块303以及第二确定模块304等。
第一获取模块301,用于获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;
第一确定模块302,用于获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;
第二获取模块303,用于基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;
第二确定模块304,用于基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
在一些实施方式中,所述第二获取模块303,包括:
第一确定子模块,用于从多个依赖任务中确定出编译语法属于第一语法集合的第一任务,以及编译语法属于第二语法集合的第二任务;
第二确定子模块,用于对所述第一任务的任务文件进行语法解析,生成第一抽象语法树,并基于所述第一抽象语法树,从数据表集合中确定出与所述第一任务对应的数据读取表以及数据写入表,所述数据表集合包括每一依赖任务对应的数据读取表以及数据写入表;
第一提取子模块,用于从所述第二任务的任务文件中提取出指定类型语句,对所述指定类型语句进行语法解析,生成第二抽象语法树,并基于所述第二抽象语法树,从数据表集合中确定出与所述第二任务对应的数据读取表以及数据写入表。
在一些实施方式中,所述第二确定子模块,包括:
第一确定单元,用于基于所述第一抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
第二确定单元,用于将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与所述第一任务对应的数据读取表以及数据写入表;
所述第一提取子模块,包括:
第三确定单元,用于基于所述第二抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
第四确定单元,用于将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与第二任务对应的数据读取表以及数据写入表。
在一些实施方式中,所述第一获取模块301,包括:
第二提取子模块,用于提取所述目标应用的任务配置文件中含有指定符号的语句;
第一筛选子模块,用于基于预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句;
解析子模块,用于解析所述任务描述语句,确定所述目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
在一些实施方式中,所述第一获取模块301,还包括:
第二筛选子模块,用于基于预设任务配置描述关键字集合,从每一应用对应的多个文件中筛选出任务配置文件,所述任务配置文件用于记录应用包含的所有任务,以及任务之间的依赖关系。
在一些实施方式中,所述装置还包括:
标记模块,用于当检测到多个依赖任务中存在被调度的目标任务时,标记所述目标任务的执行状态为待执行状态;
第一更新模块,用于当所述目标任务被执行时,将所述目标任务的执行状态更新为执行中状态;
第二更新模块,用于当所述目标任务被执行完毕时,将所述目标任务的执行状态更新为执行完毕状态。
在一些实施方式中,所述装置还包括:
第一记录模块,用于记录所述目标任务的执行起始时间点;
第二记录模块,用于记录所述目标任务的执行结束时间点;
第三确定模块,用于根据所述执行起始时间点以及所述执行结束时间点,确定所述目标任务的执行时长。
在一些实施方式中,所述目标应用的数量为至少两个,所述第一获取模块301,包括:
第四确定模块,用于确定每一目标应用包括的多个依赖任务是否与其他目标应用包括的多个依赖任务之间存在依赖关系;
第五确定模块,用于若一目标应用存在至少一个依赖任务与其他目标应用包括的依赖任务之间存在依赖关系,则将存在依赖关系的目标应用确定为依赖应用;
第六确定模块,用于确定依赖应用之间的数据流向关系。
在一些实施方式中,所述装置还包括:
显示模块,用于显示所述依赖应用之间的数据流向关系以及多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
由上述可知,本申请实施例通过第一获取模块301获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;第一确定模块302获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表中获取的数据,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;第二获取模块303基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;第二确定模块304基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。以此,通过针对于不同编译语法确定对应的语法解析逻辑,进而实现对不同编码方式和组织形式的应用进行分析。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
相应的,本申请实施例还提供一种服务器,如图4所示,图4为本申请实施例提供的服务器的结构示意图。该服务器2000包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是服务器2000的控制中心,利用各种接口和线路连接整个服务器2000的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器2000的各种功能和处理数据,从而对服务器2000进行整体监控。
在本申请实施例中,服务器2000中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,服务器2000还包括:输入单元403以及电源404。其中,处理器401分别与输入单元403以及电源404电性连接。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
输入单元403可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源404用于给服务器2000的各个部件供电。可选的,电源404可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图4中未示出,服务器2000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的服务器可以获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。以此,通过针对于不同编译语法确定对应的语法解析逻辑,进而实现对不同编码方式和组织形式的应用进行分析。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据分析方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表中获取的数据,以及指定用于存储依赖任务在任务执行完成后得到的数据的指定数据写入表;基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种数据分析方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据分析方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据分析方法、装置、计算机可读存储介质及服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上该,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种数据分析方法,其特征在于,包括:
获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;
获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;
基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;
基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
2.根据权利要求1所述的数据分析方法,其特征在于,所述对于每一依赖任务,基于其对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表的步骤,包括:
从多个依赖任务中确定出编译语法属于第一语法集合的第一任务,以及编译语法属于第二语法集合的第二任务;
对所述第一任务的任务文件进行语法解析,生成第一抽象语法树,并基于所述第一抽象语法树,从数据表集合中确定出与所述第一任务对应的数据读取表以及数据写入表,所述数据表集合包括每一依赖任务对应的数据读取表以及数据写入表;
从所述第二任务的任务文件中提取出指定类型语句,对所述指定类型语句进行语法解析,生成第二抽象语法树,并基于所述第二抽象语法树,从数据表集合中确定出与所述第二任务对应的数据读取表以及数据写入表。
3.根据权利要求2所述的数据分析方法,其特征在于,所述基于所述第一抽象语法树,从数据表集合中确定出与第一任务对应的数据读取表以及数据写入表的步骤,包括:
基于所述第一抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与所述第一任务对应的数据读取表以及数据写入表;
所述基于所述第二抽象语法树,从数据表集合中确定出与第二任务对应的数据读取表以及数据写入表的步骤,包括:
基于所述第二抽象语法树,确定至少一个类型的数据表流向关系,所述至少一个类型的数据表流向关系包括目标类型的数据表流向关系;
将数据表集合中与所述目标类型的数据表流向关系匹配的数据表确定为与第二任务对应的数据读取表以及数据写入表。
4.根据权利要求1所述的数据分析方法,其特征在于,所述获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系的步骤,包括:
提取所述目标应用的任务配置文件中含有指定符号的语句;
基于预设语句关键字集合,从含有指定符号的语句中筛选出任务描述语句;
解析所述任务描述语句,确定所述目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系。
5.根据权利要求4所述的数据分析方法,其特征在于,在所述提取所述应用的任务配置文件中含有指定符号的语句的步骤之前,还包括:
基于预设任务配置描述关键字集合,从每一应用对应的多个文件中筛选出任务配置文件,所述任务配置文件用于记录应用包含的所有任务,以及任务之间的依赖关系。
6.根据权利要求1所述的数据分析方法,其特征在于,在所述获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系的步骤之后,还包括:
当检测到多个依赖任务中存在被调度的目标任务时,标记所述目标任务的执行状态为待执行状态;
当所述目标任务被执行时,将所述目标任务的执行状态更新为执行中状态;
当所述目标任务被执行完毕时,将所述目标任务的执行状态更新为执行完毕状态。
7.根据权利要求6所述的数据分析方法,其特征在于,在所述将所述目标任务的执行状态更新为执行中状态的步骤之前,还包括:
记录所述目标任务的执行起始时间点;
在所述将所述目标任务的执行状态更新为执行完毕状态的步骤之后,还包括:
记录所述目标任务的执行结束时间点;
根据所述执行起始时间点以及所述执行结束时间点,确定所述目标任务的执行时长。
8.根据权利要求1所述的数据分析方法,其特征在于,所述目标应用的数量为至少两个,所述获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系的步骤,包括:
确定每一目标应用包括的多个依赖任务是否与其他目标应用包括的多个依赖任务之间存在依赖关系;
若一目标应用存在至少一个依赖任务与其他目标应用包括的依赖任务之间存在依赖关系,则将存在依赖关系的目标应用确定为依赖应用;
所述基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系的步骤之后,还包括:
确定依赖应用之间的数据流向关系。
9.根据权利要求8所述的数据分析方法,其特征在于,在所述确定依赖应用之间的数据流向关系的步骤之后,还包括:
显示所述依赖应用之间的数据流向关系以及多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
10.一种数据分析装置,其特征在于,包括:
第一获取模块,用于获取目标应用包括的多个依赖任务,以及多个依赖任务之间的依赖关系,所述依赖任务为依赖于其他任务或被其他任务依赖的任务;
第一确定模块,用于获取每一所述依赖任务对应的任务文件的编译语法,基于预设的多种编译语法与语法解析逻辑的对应关系,确定解析每一任务文件的语法解析逻辑,所述任务文件用于指定用于获取执行依赖任务时需要的数据的数据读取表,以及指定用于存储依赖任务在任务执行完成后得到的数据的数据写入表;
第二获取模块,用于基于每一依赖任务对应的语法解析逻辑对每一依赖任务的任务文件进行语法解析,基于解析结果获取每一依赖任务对应的数据读取表以及数据写入表,对于依赖于其他任务的依赖任务,其对应的数据读取表为其依赖的任务对应的数据写入表;
第二确定模块,用于基于依赖任务之间的依赖关系,以及每一依赖任务对应的数据读取表以及数据写入表,确定多个依赖任务对应的数据读取表以及数据写入表之间的数据流向关系。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的数据分析方法中的步骤。
12.一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任一项所述数据分析方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110700299.1A CN113420097B (zh) | 2021-06-23 | 2021-06-23 | 一种数据分析方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110700299.1A CN113420097B (zh) | 2021-06-23 | 2021-06-23 | 一种数据分析方法、装置、存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113420097A true CN113420097A (zh) | 2021-09-21 |
CN113420097B CN113420097B (zh) | 2023-05-30 |
Family
ID=77717582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110700299.1A Active CN113420097B (zh) | 2021-06-23 | 2021-06-23 | 一种数据分析方法、装置、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113420097B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584627A (zh) * | 2022-05-09 | 2022-06-03 | 广州天越通信技术发展有限公司 | 一种具有网络监控功能的中台调度系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8624898B1 (en) * | 2009-03-09 | 2014-01-07 | Pixar | Typed dependency graphs |
CN110019384A (zh) * | 2017-08-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种血缘数据的获取方法、提供血缘数据的方法及装置 |
CN110471652A (zh) * | 2019-08-01 | 2019-11-19 | 北京柠檬微趣科技股份有限公司 | 任务编排方法、编排器、设备及可读存储介质 |
CN111125444A (zh) * | 2019-12-10 | 2020-05-08 | 中国平安财产保险股份有限公司 | 大数据任务调度管理方法、装置、设备及存储介质 |
CN112035508A (zh) * | 2020-08-27 | 2020-12-04 | 深圳天源迪科信息技术股份有限公司 | 基于sql在线元数据解析的方法及系统、设备 |
CN112835587A (zh) * | 2021-02-03 | 2021-05-25 | 宁波均联智行科技股份有限公司 | 一种编译集成方法及装置 |
-
2021
- 2021-06-23 CN CN202110700299.1A patent/CN113420097B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8624898B1 (en) * | 2009-03-09 | 2014-01-07 | Pixar | Typed dependency graphs |
CN110019384A (zh) * | 2017-08-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种血缘数据的获取方法、提供血缘数据的方法及装置 |
CN110471652A (zh) * | 2019-08-01 | 2019-11-19 | 北京柠檬微趣科技股份有限公司 | 任务编排方法、编排器、设备及可读存储介质 |
CN111125444A (zh) * | 2019-12-10 | 2020-05-08 | 中国平安财产保险股份有限公司 | 大数据任务调度管理方法、装置、设备及存储介质 |
CN112035508A (zh) * | 2020-08-27 | 2020-12-04 | 深圳天源迪科信息技术股份有限公司 | 基于sql在线元数据解析的方法及系统、设备 |
CN112835587A (zh) * | 2021-02-03 | 2021-05-25 | 宁波均联智行科技股份有限公司 | 一种编译集成方法及装置 |
Non-Patent Citations (1)
Title |
---|
叶天琦等: "数据血缘可视化分析平台研究与应用", 信息技术与标准化 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584627A (zh) * | 2022-05-09 | 2022-06-03 | 广州天越通信技术发展有限公司 | 一种具有网络监控功能的中台调度系统及方法 |
CN114584627B (zh) * | 2022-05-09 | 2022-09-06 | 广州天越通信技术发展有限公司 | 一种具有网络监控功能的中台调度系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113420097B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107622080B (zh) | 一种数据处理方法及设备 | |
JP2020119544A (ja) | 知識グラフにおけるデータモデルを取得する方法、装置、機器及び媒体 | |
CN113986241A (zh) | 一种基于知识图谱的业务规则的配置方法以及装置 | |
CN111813803B (zh) | 语句块执行计划的生成方法、装置、设备和存储介质 | |
CN107766036B (zh) | 一种模块的构建方法、构建装置及终端设备 | |
CN110473543B (zh) | 一种语音识别方法、装置 | |
CN112199951A (zh) | 一种事件信息生成的方法及装置 | |
CN115661302A (zh) | 一种视频编辑方法、装置、设备及存储介质 | |
CN113420097A (zh) | 一种数据分析方法、装置、存储介质及服务器 | |
CN107633080B (zh) | 一种用户任务处理方法及装置 | |
CN110069455B (zh) | 一种文件合并方法及装置 | |
CN113434631A (zh) | 基于事件的情感分析方法、装置、计算机设备及存储介质 | |
CN112560463A (zh) | 文本多标注方法、装置、设备及存储介质 | |
WO2023236257A1 (zh) | 文档搜索平台、搜索方法、装置、电子设备及存储介质 | |
CN109766089B (zh) | 基于动图的代码生成方法、装置、电子设备及存储介质 | |
CN111142871A (zh) | 一种前端页面开发系统、方法、设备、介质 | |
CN108681490B (zh) | 针对rpc信息的向量处理方法、装置以及设备 | |
CN114185958B (zh) | 血缘关系生成方法、装置、计算机设备和存储介质 | |
CN110209880A (zh) | 视频内容检索方法、视频内容检索装置及存储介质 | |
CN111488737B (zh) | 文本识别方法、装置及设备 | |
CN110704742B (zh) | 一种特征提取方法及装置 | |
CN115774797A (zh) | 视频内容检索方法、装置、设备和计算机可读存储介质 | |
CN113704422A (zh) | 一种文本推荐方法、装置、计算机设备和存储介质 | |
CN109145084B (zh) | 数据处理方法、数据处理装置和服务器 | |
CN117289905B (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 |