数据关系的处理方法及系统与流程

文档序号:18641958发布日期:2019-09-11 23:31阅读:325来源:国知局
本发明涉及计算机数据
技术领域
:,尤其涉及一种数据关系的处理方法及系统。
背景技术
::目前,数据地图是元数据(metadata)管理系统,系统可以清晰展示建模层、贴源层、应用层的数据库结构关系及相应备注,展示着血缘追溯、影响分析展标模型的依赖关系,这样可方便技术人员定位问题。相似模型可以找出重复模型,为优化建模提供参考。管理metadata信息的目的,一方面是为了让用户能够更高效的挖掘和使用数据,另一方面是为了让平台管理人员能更加有效的做好系统的维护管理工作。通过数据的血缘关系,建立起生产这些数据的任务之间的依赖关系,进而辅助调度系统的工作调度,或者用来判断一个失败或错误的任务可能对哪些下游数据造成影响。然而,业务系统通常涉及不同的数据库,而对于hive数据库来说,hive数据库目前不支持对表添加注释,无法让建模人员洞察整个技术体系的数据库结构信息,只能人工去查询表结构信息。数据建模任务出问题时,只能通过任务调度系统找到对应的脚本,逐一分析影响的建模任务。这样降低了管理效率。技术实现要素:本发明的实施方式提供一种数据关系的处理方法及系统。本发明实施方式的数据关系的处理方法,包括:获取脚本;判断所述脚本是否是hive脚本;在所述脚本是hive脚本的情况下,解析所述hive脚本以获得所述hive脚本的模型依赖关系。本发明实施方式的数据关系的处理方法,通过解析hive脚本来得到hive脚本的依赖关系,如此,可以实现元数据管理与查询,数据模型血缘关系和模型影响分析,帮助开发人员定位和查询问题及数据变更评估,提升了管理效率。在某些实施方式中,获取脚本,包括:查询所述脚本的所在路径;在所述脚本的所在路径不是本地路径的情况下,将所述脚本复制到本地。在某些实施方式中,查询所述脚本的所在路径,包括:通过任务调度器查询所述脚本的所在路径。在某些实施方式中,解析所述hive脚本以获得所述hive脚本的模型依赖关系,包括:解析出所述hive脚本的依赖表和输出表以获得所述模型依赖关系。在某些实施方式中,在解析所述hive脚本前,所述处理方法包括:清洗所述hive脚本。在某些实施方式中,清洗所述hive脚本,包括:过滤所述hive脚本中的注释语句和/或空格。在某些实施方式中,所述处理方法包括:将获取到的所述模型依赖关系导出到数据库。在某些实施方式中,所述处理方法包括:在所述脚本不是所述hive脚本的情况下,判断所述脚本是否是sqoop脚本;在所述脚本是所述sqoop脚本的情况下,解析所述sqoop脚本以获得sqoop脚本元数据;读取所述sqoop脚本元数据并将所述sqoop脚本元数据应用于应用层元数据。在某些实施方式中,所述处理方法包括:导出应用了所述sqoop脚本元数据的所述应用层元数据到数据库。本发明实施方式的数据关系的处理系统,包括获取模块、第一判断模块和第一解析模块,所述获取模块用于获取脚本,所述第一判断模块用于判断所述脚本是否是hive脚本,所述第一解析模块用于在所述脚本是所述hive脚本的情况下,解析所述hive脚本以获得所述hive脚本的模型依赖关系。本发明实施方式的数据关系的处理系统,通过解析hive脚本来得到hive脚本的依赖关系,如此,可以实现元数据管理与查询,数据模型血缘关系和模型影响分析,帮助开发人员定位和查询问题及数据变更评估,提升了管理效率。在某些实施方式中,所述获取模块用于查询所述脚本的所在路径,及用于在所述脚本的所在路径不是本地路径的情况下,将所述脚本复制到本地。在某些实施方式中,所述获取模块用于通过任务调度器查询所述脚本的所在路径。在某些实施方式中,所述第一解析模块用于解析出所述hive脚本的依赖表和输出表以获得所述模型依赖关系。在某些实施方式中,所述处理系统包括清洗模块,在解析所述hive脚本前,所述清洗模块用于清洗所述hive脚本。在某些实施方式中,所述处理系统包括第二判断模块、第二解析模块,所述第二判断模块用于在所述脚本不是所述hive脚本的情况下,判断所述脚本是否是sqoop脚本,所述第二解析模块用于在所述脚本是所述sqoop脚本的情况下,解析所述sqoop脚本以获得sqoop脚本元数据,及用于读取所述sqoop脚本元数据并将所述sqoop脚本元数据应用于应用层元数据。本发明实施方式的数据关系的处理系统包括处理器和存储器,所述存储器存储有可执行指令,所述处理器用于执行所述指令以实现上述任一实施方式所述的处理方法的步骤。本发明实施方式的数据关系的处理系统,通过解析hive脚本来得到hive脚本的依赖关系,如此,可以实现元数据管理与查询,数据模型血缘关系和模型影响分析,帮助开发人员定位和查询问题及数据变更评估,提升了管理效率。本发明的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得更加明显,或通过本发明的实践了解到。附图说明本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:图1是本发明实施方式的数据关系的处理方法的流程示意图;图2是本发明实施方式的数据关系的处理方法的另一流程示意图;图3是本发明实施方式的数据关系的处理方法的又一流程示意图;图4是本发明实施方式的数据关系的处理方法的再一流程示意图;图5是本发明实施方式的数据关系的处理方法的又一流程示意图;图6是本发明实施方式的数据关系的处理方法的再一流程示意图;图7是本发明实施方式的数据关系的处理系统的模块示意图;图8是本发明实施方式的数据关系的处理系统的另一模块示意图;图9是本发明实施方式的数据关系的处理系统的又一模块示意图;图10是本发明实施方式的数据关系的处理系统的再一模块示意图;图11是本发明实施方式的数据关系的处理系统的又一模块示意图。主要元件符号说明:处理系统100;200;获取单元10、第一判断模块20、清洗模块30、第一解析模块40、第一输出模块50、第二判断模块60、第二解析模块70、第二输出模块80、存储器90、处理器110。具体实施方式下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。请参阅图1,本发明实施方式的数据关系的处理方法包括:步骤s1:获取脚本;步骤s2:判断脚本是否是hive脚本;步骤s3:在脚本是hive脚本的情况下,解析hive脚本以获得hive脚本的模型依赖关系。本发明实施方式的数据关系的处理方法,通过解析hive脚本来得到hive脚本的依赖关系,如此,可以实现元数据管理与查询,数据模型血缘关系和模型影响分析,帮助开发人员定位和查询问题及数据变更评估,提升了管理效率。可以理解,脚本以文件的形式存储在文件系统中,例如hadoop系统、本地文件系统。脚本包括多种类型,如hive脚本,sqoop脚本。因此,在hadoop系统或本地文件系统中获取脚本(有效脚本,即当前处于使用状态的脚本)后,进一步对获取到的脚本进行类型判断、解析,获取脚本的模型依赖关系。脚本的类型有多种,例如,以脚本的后缀名或者脚本的文件名来判断脚本的类型。通过判断脚本后缀名是否为为.hql来判断是否是hive脚本。判断sqoop脚本文件名是否包括sqoop,来判断脚本是否是sqoop脚本。需要说明的是,hadoop系统是一个能对大量数据进行分布式处理的系统,可以理解为一个大数据处理的工具系统。hadoop系统以自身的处理优势以高效、可靠的方式对数据进行处理。hadoop系统中的数据可以进行多副本存储,即使其中一个磁盘的存储失败也不会带来数据丢失。hive工具(解析工具)是hadoop系统下的核心处理工具,hive的数据存放在hadoop系统中。请参阅图2,步骤s1包括:步骤s10:查询脚本的所在路径;步骤s12:判断脚本的所在路径是否是本地路径;步骤s14:在脚本的所在路径不是本地路径的情况下,将脚本复制到本地。具体的,步骤s10包括:通过任务调度器查询脚本的所在路径。通常地,脚本可能存储在本地或hadoop系统或其它地方。若脚本存储在hadoop系统中,处理方法并不能直接在hadoop系统中解析脚本。因此,通过任务调度器查询到脚本的所在路径后,再通过分布式hdfs文件系统将有效的脚本复制到本地文件夹,然后可以对本地文件夹中的脚本进行类型判断、解析、获取脚本的模型依赖关系等一系列操作。若脚本直接存储在本地文件夹,则可以直接对脚本进行类型判断、解析、获取脚本的模型依赖关系等一系列操作。可以理解,任务调度器中有多种脚本,例如hive脚本、sqoop脚本和已经停用的脚本,其中,hive脚本、sqoop脚本为有效脚本。若获取到停用的脚本,会导致数据关系处理系统的存储压力增加,继而导致处理速度下降。因此,可以通过脚本分析工具判断脚本是否有效脚本,然后再进一步通过任务调度器查询有效脚本的所在路径。也就是说,本发明实施方式所获取到的脚本是有效脚本。需要说明的是,脚本的所在路径即脚本的存储路径。通常地,处理方法所用到的解析工具存储在本地。将脚本复制到本地,可以是将脚本复制到解析工具所在的位置路径,也可以是本地的其他存储介质及其他,不限于解析工具所在的位置路径。请参阅图3,在某些实施方式中,在步骤s3前,处理方法还包括:步骤s20:清洗hive脚本。可以理解,在当前脚本是hive脚本时,通过清洗步骤对hive脚本进行清洗。后续解析经过清洗处理后的脚本,不会因为脚本中的格式问题而延缓处理速度。进一步地,步骤s20包括过滤hive脚本中的注释语句和/或空格。脚本通常包括程序指令,程序指令由一个一个的语句组合而成的。因此,脚本中有很多语句,语句可能存在一些不必要的语句特征,例如注释语句等。过滤hive脚本中的注释语句,可以对语句进行简单的格式化,避免延缓后续的解析处理速度。当然还可以过滤hive脚本中的空格,以及将语句中一些较为复杂的语句拆分为简单的语句格式,进一步对语句进行简单的格式化。在某些实施方式中,步骤s3包括:解析出hive脚本的依赖表和输出表以获得模型依赖关系。具体的,对存储在本地的hive脚本进行解析处理,通过解析处理获取hive脚本的依赖表和输出表。然后通过依赖表和输出表获得表结构依赖关系,也就是hive脚本的模型依赖关系。进一步地,可以根据分号拆分多个语句,通过hivelineageinfo.inputtablelist类解析出依赖表和输出表。具体地,解析hive脚本,根据分号将多个语句拆分成多个子语句,过滤掉createastable,创建lineageinfo对象lineageinfo,逐个调用lineageinfo.getlineageinfo(子语句),通过调用lineageinfo.getinputtablelist程序语言获取依赖表,通过调用lineageinfo.getoutputtablelist程序语言获取输出表。可以理解,每一个hive脚本都包含不同的数据表,每一个不同的数据表的数据可能来自其他的数据表。下面以一个具体的实施例进一步说明不同hive脚本包含的数据表之间的依赖关系。hive脚本包括a、b、c、d、e、f、g等多个不同的表,其中,a表的数据来自b、c、d、e表。那么,本发明实施方式的解析步骤需要解析出a表和b、c、d、e表之间的数据依赖关系。本发明实施例的数据处理方法中,输入一个hive脚本可得到一条结果集,例如输出a表,则得到输入b、c、d、e表。以此解析出一个输出对应的多个输入关系。具体的,获取到hive脚本,根据分号将hive语句拆分成多个语句,再逐个调用lineageinfo.getlineageinfo(子语句),通过调用lineageinfo.getinputtablelist程序语言得到b、c、d、e表,通过调用lineageinfo.getoutputtablelist程序语言得到a表。通过数据处理得到的b、c、d、e表就是依赖表,a表就是输出表。依赖表和输出表就是获取到的这个hive脚本数据的模型依赖关系。需要说明的是,在本实施例解析步骤解析出的hive脚本数据的模型依赖关系,仅以依赖表和输出表来举例说明。但是hive脚本的模型依赖关系可以有多种表述方式,例如:源表、子表、原始数据、目标数据等。请参阅图4,在某些实施方式中,处理方法包括步骤s4:将获取到的hive脚本的模型依赖关系导出到数据库。可以理解,将hive脚本的模型依赖关系存放数据库,方便管理和查询。当然,hive脚本的模型依赖关系也可以显示在数据关系的处理系统的界面。请参阅图5,处理方法还包括:步骤s5:判断脚本是否是sqoop脚本;步骤s6:在脚本是sqoop脚本的情况下,解析sqoop脚本以获得sqoop脚本元数据;步骤s7:读取sqoop脚本元数据并将sqoop脚本元数据应用于应用层元数据。具体的,在脚本为sqoop脚本的情况下,进行解析sqoop脚本,获取数据库连接接口以获取sqoop脚本元数据信息。解析sqoop脚本后,根据语法将sqoop脚本元数据拆分出数据库jdbcurl及用户名,以此读取到sqoop脚本元数据库的结构信息及备注,通过调用语句获取sqoop脚本的库结构信息及备注信息,即将sqoop脚本元数据应用于应用层元数据。在一个例子中,解析sqoop脚本以获得sqoop脚本元数据的具体过程如下:sqoopexprot语法拆分出数据库jdbcurl及用户名、密码;通过databasemetadata读取库结构信息及备注;创建数据库连接connectionjdbcconnection=getconnection(dbtype,jdbcurl,username,password);获取元数据信息databasemetadatadbmd=jdbcconnection.getmetadata();通过调用dbmd.gettables(null,null,tablename.touppercase(),newstring[]{"table"});获取表结构信息;通过调用dbmd.getcolumns方法获取列信息。请参阅图6,在某些实施方式中,处理方法包括步骤s8:导出应用了sqoop脚本元数据的应用层元数据到数据库。可以理解,将应用了sqoop脚本元数据的应用层元数据存放在数据库,方便管理和查询。当然,应用了sqoop脚本元数据的应用层元数据也可以显示在数据关系的处理系统的界面。请参阅图7,本发明实施方式的数据关系处理系统100包括获取模块10、第一判断模块20、第一解析模块40。第一输出模块50获取模块10用于获取脚本,第一判断模块20用于判断脚本是否是hive脚本,第一解析模块40用于解析hive脚本以获得hive脚本的模型依赖关系。也即是说,上述数据关系的处理方法的步骤s1可由获取模块10实现,步骤s2可由第一判断模块20实现,步骤s3可由第一解析模块30实现。本发明实施方式的数据关系的处理系统100,通过解析hive脚本来得到hive脚本的依赖关系,如此,可以实现元数据管理与查询,数据模型血缘关系和模型影响分析,帮助开发人员定位和查询问题及数据变更评估,提升了管理效率。需要说明的是,上述实施方式的数据关系的处理方法的解释说明和有益效果也适用于本实施方式的处理系统100,为避免冗余,在此不再详细展开。在某些实施方式中,获取模块10用于查询脚本的所在路径,及用于在脚本的所在路径不是本地路径的情况下,将脚本复制到本地。也即是说,上述数据关系的处理方法的步骤s10和步骤s14可由获取模块10实现。在某些实施方式中,获取模块10用于通过任务调度器查询脚本的所在路径。在某些实施方式中,第一解析模块40用于解析出hive脚本的依赖表和输出表以获得模型依赖关系。请参阅图8,在某些实施方式中,处理系统100包括清洗模块30。在解析hive脚本前,清洗模块30用于清洗hive脚本。也即是说,上述数据关系的处理方法的步骤s20可由清洗模块30实现。在某些实施方式中,清洗模块30用于过滤hive脚本中的注释语句。请参阅图8,在某些实施方式中,处理系统包括第一输出模块50,第一输出模块50用于将获取到的模型依赖关系导出到数据库。也即是说,上述数据关系的处理方法的步骤s4可由第一输出模块50实现。请参阅图9,在某些实施方式中,处理系统包括第二判断模块60和第二解析模块70,第二判断模块60用于在脚本不是hive脚本的情况下,判断脚本是否是sqoop脚本,第二解析模块70用于在脚本是sqoop脚本的情况下,解析sqoop脚本以获得sqoop脚本元数据,及用于读取sqoop脚本元数据并将sqoop脚本元数据应用于应用层元数据。也即是说,上述数据关系的处理方法的步骤s5可由第二判断模块60实现,步骤s6和s7可由第二解析模块70实现。请参阅图10,在某些实施方式中,处理系统包括第二输出模块80,第二输出模块80用于导出应用了sqoop脚本元数据的应用层元数据到数据库。也即是说,上述数据关系的处理方法的步骤s8可由第二输出模块80实现。请参阅图11,本发明实施方式的数据关系的处理系统200包括处理器110和存储器90。存储器90存储有可执行指令,处理器110用于执行指令以实现上述任一实施方式的处理方法的步骤。本发明实施方式的数据关系的处理系统200,通过解析hive脚本来得到hive脚本的依赖关系,如此,可以实现元数据管理与查询,数据模型血缘关系和模型影响分析,帮助开发人员定位和查询问题及数据变更评估,提升了管理效率。需要说明的是,上述实施方式的数据关系的处理方法的解释说明和有益效果也适用于本实施方式的处理系统,为避免冗余,在此不再详细展开。数据关系的处理系统100和200均可设置于计算机系统。在某些实施方式中,处理系统100、200也可包括数据库。特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,计算机程序包含用于执行语句的数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过产品能从网络上被下载和安装,和/或从可拆卸介质被安装。附图中的流程图和框图,图示了按照本公开种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。在本说明书的描述中,参考术语“一个实施方式”、“某些实施方式”、“示意性实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1