基于血缘解析的自动依赖推荐制造技术

技术编号:38052954 阅读:11 留言:0更新日期:2023-06-30 11:18
本申请的实施例能够支持自动解析多种类型的SQL任务,将解析及关联结果实时同步至图数据库。本申请的一些实施例还能通过多个属性及权重通过图数据库计算获取匹配度最高的TOP N个任务,为用户推荐最合适的依赖任务。为用户推荐最合适的依赖任务。为用户推荐最合适的依赖任务。

【技术实现步骤摘要】
基于血缘解析的自动依赖推荐


[0001]本申请涉及大数据技术,特别地涉及基于血缘解析来自动推荐任务依赖的方法。

技术介绍

[0002]互联网时代,尤其是社交网络、电子商务和移动通信把人类社会带入了一个以“PB”为单位的结构和非结构信息的大数据时代。学术界和工业界提出了多种大数据处理工具(或称计算平台),例如分布式计算框架Hadoop、数据仓库工具Hive、基于内存计算的分布式系统Spark、大规模图数据计算平台Giraph等。借助于多种多样计算平台,数据开发人员每天会提交各种类型的任务来加工、分析数据。各种任务之间相互依赖,随时平台的不断使用,作业也不断增加,任务类型多种多样,因此造成查找任务(当前任务)的依赖越来越麻烦,因此迫切需要一种能够智能推荐依赖(即当前任务所依赖的任务))给到用户以进行选择的方法。

技术实现思路

[0003]本申请的实施例提供了一种为当前任务计算依赖的方法,包括:
[0004]在任务运行后对该任务进行血缘解析;
[0005]将所述血缘解析的结果与所述任务相关联地存入数据库;
[0006]以所述当前任务的属性作为输入,对所述数据库中的数据进行分析,以计算出与所述当前任务具有匹配关系的至少一个任务。
[0007]本申请的实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述指令被执行时可实施如上所述的方法。
[0008]本申请的实施例能够支持自动解析多种类型的SQL任务,将解析及关联结果实时同步至图数据库。本申请的一些实施例还能通过多个属性及权重通过图数据库计算获取匹配度最高的TOP N个任务,为用户推荐最合适的依赖任务。
附图说明
[0009]图1是本申请的实施例可以实施于其中的系统的示意图。
[0010]图2是本申请的实施例的自动依赖推荐的过程的流程图。
具体实施方式
[0011]现在将参照若干示例性实施例来说明本专利技术的内容。应当理解,说明这些实施例仅是为了使得本领域普通技术人员能够更好地理解并且因此实现本专利技术的内容,而不是暗示对本专利技术的范围进行任何限制。
[0012]如本文中所使用的,术语“包括”及其变体应当解读为意味着“包括但不限于”的开放式术语。术语“基于”应当解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”应当解读为“至少一个实施例”。术语“另一个实施例”应当解读为“至少一个其他实施例”。
[0013]图1示出了本申请的实施例可实施于其中的示例性系统。所述系统能够对大数据平台上的不同类型的任务(HIVE、SPARK SQL等)自动进行数据血缘解析(即SQL解析),解析可以使用插件化的方式。数据血缘解析的结果能够准确解析相关表、字段的输入输出关系。将解析结果同任务进行关联(例如将任务与相关表和字段建立关联关系)。还可以持久化解析结果及关联关系并保存至图数据库中。用户选择依赖时,系统能够自动根据持久化的数据以及用户自定义权重因子获取匹配度最高的TOP N个任务作为推荐依赖任务呈现给用户。
[0014]本申请的实施例在图1所示的系统中的运行的流程还可以由图2所体现。
[0015]在本申请的实施例中,可以通过设计统一的插件协议(例如使用Java SPI技术),以快速地开发不同类型的血缘解析插件并适配不同版本、不同厂商的计算平台。还可以使用插件池技术,通过插件匹配算法从插件池中获取对应的血缘解析插件。示例性的插件协议的基本规格如下:
[0016]{
[0017]"vendor":"${vendor name}",
[0018]"vendorVersion":"${vendor version}",
[0019]"engine":"${engine name}",
[0020]"engineVersion":"${engine version}",
[0021]"commandGroup":"lineage",
[0022]"command":"parse",
[0023]"commandContent":"{\"sqlText\":\"insert overwrite table demo_user select user_id,name from user_info where ds='bizDate'\",\"databases\":\"demo\",\"connectParam\":\"${connect info}\"}"
[0024]}
[0025]在本申请的实施例中,用户可以在手工执行或者周期执行的任务运行成功后,自动向执行代理下发血缘解析请求。执行代理根据请求自动获取(例如从插件池中获取)对应任务类型的插件进行数据血缘的解析。针对具体计算平台的具体的血缘解析操作或算法可以具体地设计,且现有的各计算平台都存在已知的操作和算法可以应用在本申请的实施例中。血缘解析的结果可以按照输入、输出等格式保存到图数据库中。一个示例性的解析结果如下所示:
[0026]{"result":[{"sqlText":"insert overwrite table demo_user select user_id,name from user_info where ds='bizDate'","columnLineageList":{"vertices":[{"id":0,"vertexId":"demo.demo_user.user_id"},{"id":1,"vertexId":"demo.demo_user.name"},{"id":2,"vertexId":"demo.user_info.user_id"},{"id":3,"vertexId":"demo.user_info.name"}],"edges":[{"sources":[2],"targets":[0],"edgeType":"PROJECTION"},{"sources":[3],"targets":[1],"edgeType":"PROJECTION"}]},"tableLineageList":{"inputList":[{"database":"demo","table":"user_info"}],"outputList":[{"database":"demo","table":"demo_dwd_complaint_detail_d","writeType":"INSERT_OVERWRITE"}]}}]}
[0027]在本申请的实施例中,可以将解析结果与任务进行关联。还可以补充项目、业务流
程、库名、创建人等与任务属性与上述关联关系一起存入数据库中。在一些优选实施例中,使用图数据库来保存关联关系以及相关的任务属性。对于关联关系,在一些实施例中,SQL任务的解析结果拥有同一批次ID,故关联关系为解析结果批次ID与任务ID进行关联。
[0028]在图2所示的示例性流程中,SQL解析结果以及该结果与作业本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种为当前任务计算依赖的方法,包括:在任务运行后对该任务进行血缘解析;将所述血缘解析的结果与所述任务相关联地存入数据库;以所述当前任务的属性作为输入,对所述数据库中的数据进行分析,以计算出与所述当前任务具有匹配关系的至少一个任务。2.如权利要求1所述的方法,其中所述血缘解析操作是通过符合特定的插件协议的插件而执行的,所述插件协议能够适配不同版本、不同厂商的计算平台。3.如权利要求1所述的方法,其中所述数据库是图数据库,并且所述分析操作使用了逻辑回归算法。4.如权利要求3所述的方法,其中,在将所述血缘解析的结果存入所述图数据库之前先存入关系型数据库,然后通过增量数据订阅机制将相关数据存入所述图数据库。5.如权利要求1所述的方法,其中所述关联是基于所述解析结果的批次ID和所述任务的ID。6.如权利要求1所述的方法,其中,在将所述血缘解析的结果与所述任务相关...

【专利技术属性】
技术研发人员:张森森甘云锋江敏高雁冰刘俊明
申请(专利权)人:杭州数澜科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1