补充元数据描述的方法、装置、设备及存储介质与流程

文档序号:17641722发布日期:2019-05-11 00:43阅读:250来源:国知局
本发明涉及数据治理
技术领域
:,尤其涉及补充元数据描述的方法、装置、设备及存储介质。
背景技术
::元数据是用于描述数据的数据,元数据的字段描述信息是指描述元数据数据库中字段含义的信息,该信息能够辅助数据使用方更好地理解数据。在大数据平台中,有时会存在因各种原因没有创建元数据的字段描述信息的情况,这会导致第三方用数的时候无法有效理解数据,造成困扰。现有的补充元数据字段描述主要的方案,基本是由相关开发人员进行人工参与补充,具体包括两种方案:1)开发人员通过脚本修改源数据库中的元数据描述信息,然后通过元数据管理系统采集、处理后展示给用数据方。这种方案需要重新修改源数据库表结构,会增大开发过程风险,成本较高,效果较慢。2)基于元数据管理系统,在元数据管理系统中新增元数据管理模块,支持针对元数据层级的描述编辑与修改。这种方案不需要重新走开发流程,对现有的源系统数据库无影响,然而其整个过程仍是由人工参与介入整个描述补充,人工成本高且工作效率较低。技术实现要素:本发明的主要目的在于提出一种补充元数据描述的方法、装置、设备及存储介质,旨在实现在补充元数据描述的过程中,减少人工干预,降低人工成本,提高整体的工作效率。为实现上述目的,本发明提供一种补充元数据描述的方法,所述补充元数据描述的方法包括如下步骤:获取预先保存的来源于各源数据库的全量元数据;对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱;从所述全量元数据中获取待补充描述的目标字段,并确定所述目标字段所属的目标表;根据所述血缘图谱确定所述目标表的上游表;分析所述上游表中的元数据字段与所述目标字段的相似度,根据所述相似度对所述目标字段进行补充描述。优选地,所述获取预先保存的来源于各源数据库的全量元数据的步骤之前,还包括:从预设的源数据库中拉取元数据;将拉取到的所述元数据保存至预设的元数据资源库中。优选地,所述对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱的步骤包括:获取所述全量元数据的数据表类型,所述数据表类型包括大数据平台数据表和传统关系型数据表;调用预设的血缘钩子函数以获取不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系;调用预设的图数据库引擎,将获取到的所述不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系构建成血缘图谱。优选地,所述分析所述上游表中的元数据字段与所述目标字段的相似度的步骤包括:对所述上游表中的元数据字段进行去重处理;从去重处理后的所述元数据字段中剔除预设的无效字段,得到待分析的元数据字段集;根据预设算法,分别计算所述元数据字段集中的每个字段与所述目标字段的相似度。优选地,所述根据预设算法,分别计算所述元数据字段集中的每个字段与所述目标字段的相似度的步骤包括:根据编辑距离算法,分别计算所述元数据字段集中的每个字段转换成所述目标字段所需的最少编辑操作次数;根据所述最少编辑操作次数计算所述元数据字段集中的每个字段与所述目标字段的相似度。优选地,所述根据所述相似度对所述目标字段进行补充描述的步骤包括:从所述元数据字段集中确定与所述目标字段的相似度最高的字段;获取所述与所述目标字段的相似度最高的字段的字段描述信息,将所述与所述目标字段的相似度最高的字段的字段描述信息作为所述目标字段的补充描述。优选地,所述根据所述相似度对所述目标字段进行补充描述的步骤包括:按照所述相似度由高到低的顺序,将所述元数据字段集中的字段进行排列,得到所述目标字段的补充描述选择列表;当接收到用户基于所述补充描述选择列表触发的选择指令时,确定用户所选择的字段;获取用户所选择的字段的字段描述信息,将所述用户所选择的字段的字段描述信息作为所述目标字段的补充描述。此外,为实现上述目的,本发明还提供一种补充元数据描述的装置,所述补充元数据描述的装置包括:第一获取模块,用于获取预先保存的来源于各源数据库的全量元数据;构建模块,用于对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱;第二获取模块,用于从所述全量元数据中获取待补充描述的目标字段,并确定所述目标字段所属的目标表;确定模块,用于根据所述血缘图谱确定所述目标表的上游表;补充描述模块,用于分析所述上游表中的元数据字段与所述目标字段的相似度,根据所述相似度对所述目标字段进行补充描述。此外,为实现上述目的,本发明还提供一种补充元数据描述的设备,所述补充元数据描述的设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的补充元数据描述的程序,所述补充元数据描述的程序被所述处理器执行时实现如上所述的补充元数据描述的方法的步骤。此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有补充元数据描述的程序,所述补充元数据描述的程序被处理器执行时实现如上所述的补充元数据描述的方法的步骤。本发明获取预先保存的来源于各源数据库的全量元数据;对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱;从所述全量元数据中获取待补充描述的目标字段,并确定所述目标字段所属的目标表;根据所述血缘图谱确定所述目标表的上游表;分析所述上游表中的元数据字段与所述目标字段的相似度,根据所述相似度对所述目标字段进行补充描述。这种方式相比于现有技术,实现了根据不同数据表之间的血缘关系为目标字段自动补充元数据描述,从而减少了人工干预,降低了成本,提高了整体的工作效率。附图说明图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;图2为本发明补充元数据描述的方法第一实施例的流程示意图;图3为本发明实施例中元数据管理系统从源数据库中拉取元数据的示意图;图4为图2中步骤s20的细化步骤示意图;图5为本发明实施例中目标表和上游表之间的关系示意图;图6为对图5目标表table1中的目标字段cust_name进行相似度分析的分析结果示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。本发明实施例补充元数据描述的设备可以是pc机或服务器设备。如图1所示,该设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及补充元数据描述的程序。在图1所示的设备中,网络接口1004主要用于连接数据使用方,与数据使用方进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的补充元数据描述的程序,并执行下述补充元数据描述的方法各实施例中的操作。基于上述硬件结构,提出本发明补充元数据描述的方法各个实施例。参照图2,图2为本发明补充元数据描述的方法第一实施例的流程示意图,所述方法包括:步骤s10,获取预先保存的来源于各源数据库的全量元数据;本实施例补充元数据描述的方法应用于大数据平台上的元数据管理系统,该元数据管理系统搭载于上述补充元数据描述的设备上,其主要用于从源数据库采集元数据,并将采集到的元数据提供给元数据应用,供数据使用方使用。在元数据管理系统中,预先保存有来源于各源数据库的全量元数据。上述步骤s10之前,可以包括:从预设的源数据库中拉取元数据;将拉取到的所述元数据保存至预设的元数据资源库中,以便于后续在元数据资源库中获取预先保存的来源于各源数据库的全量元数据。参照图3,图3为本发明实施例中元数据管理系统从源数据库中拉取元数据的示意图。其中,元数据管理系统包括元数据采集模块和元数据资源库,源数据库包括大数据平台数据库(如hive、hbase等)和分布式传统关系型数据库(如mysql,oracle等)。元数据采集模块可以通过etl(extract-transform-load,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程)定期从大数据平台数据库和传统关系型数据库中拉取元数据,然后将拉取到的元数据保存至元数据资源库中。需要说明的是,从源数据库中拉取到的元数据包括但不限于用于描述源系统(指各源数据库对应的系统)的数据库集群信息、数据库信息、数据表信息以及字段信息的元数据。其中,源系统的数据库集群信息可以包括集群编码、集群类型、数据源类型、所在逻辑网络区域、所在物理网络区域、ip地址、网络端口等;源系统的数据库信息可以包括数据库id、数据库名、数据源类型、集群编码、库描述信息、开发负责人等;源系统的数据表信息可以包括表id、表名称、库id、库名称、表描述、开发负责人、修改时间等;源系统的字段信息可以包括字段id、字段名称、表名称、顺序号、数据类型、长度、是否可为空、是否索引、是否分区、字段描述等。在本实施例中,首先获取预先保存的来源于各源数据库的全量元数据,具体地,可以从上述元数据资源库中获取预先保存的来源于各源数据库的全量元数据。步骤s20,对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱;全量元数据包括若干不同的数据表,该步骤中,对全量元数据进行数据血缘分析,是指分析数据表之间的数据关系,包括表中数据的来源(上游血缘)和数据流向(下游血缘),最终,构建为全量元数据的不同数据表之间的血缘图谱。具体地,参照图4,图4为图2中步骤s20的细化步骤示意图。上述步骤s20可以进一步包括:步骤s21,获取所述全量元数据的数据表类型,所述数据表类型包括大数据平台数据表和传统关系型数据表;步骤s22,调用预设的血缘钩子函数以获取不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系;步骤s23,调用预设的图数据库引擎,将获取到的所述不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系构建成血缘图谱。具体实施时,首先获取全量元数据的数据表类型,该数据表类型可以包括来源于大数据平台数据库的大数据平台数据表和来源于传统关系型数据库的传统关系型数据表。然后,调用预设的血缘钩子函数(lineagehook)以获取不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系。目前实现数据流转加工主要通过hive(基于hadoop的一个数据仓库工具),spark(一种通用的大数据快速处理引擎)以及sqoop(一个用于在hadoop和关系数据库服务器之间传输数据的工具)三种方式,因此捕获血缘主要可以通过解析hivesql、sparksql和sqoop执行过程实现:a)hivelineagehook。hive的血缘钩子函数,通过异步捕获hive执行sql(structuredquerylanguage,结构化查询语言)语句,调用自主实现的hive执行行为分析api(applicationprogramminginterface,应用程序编程接口)得到sql的输入数据信息、输出数据信息、以及关联的任务信息;b)spark-sqllineagehook。spark的血缘钩子函数,通过异步获取spark-sql执行的sql语句,调用自主实现的sparksql执行行为分析api得到sql的输入数据信息、输出数据信息、以及关联的任务信息;c)sqooplineagehook。sqoop的血缘钩子函数,通过异步捕获sqoop的执行命令,分析sqoop执行命令的参数,得到执行命令的输入数据和输出数据相关信息、以及关联的任务的信息。hive和spark-sql对应的lineagehook用来捕获不同的大数据平台数据表之间的血缘关系,可选通过其中一个或者两个血缘钩子函数获取血缘关系,sqooplineagehook用来捕获大数据平台数据表与传统关系型数据表之间的血缘关系。在本实施例中,在通过上述各个血缘钩子函数获取到血缘关系之后,还可以通过大数据平台的定时调度系统定期触发大数据平台的数据计算组件(mapreduce)来加工每日获取的血缘数据,加工的数据最终存储在hive表中,其中,加工得到的每条血缘信息包含有:源表、目标表等信息,记录的格式可以为:srctable[源表],dsttable[目标表],extral_info[关联信息])。之后,由元数据管理系统调用预设的图数据库引擎,将获取到的不同的大数据平台数据表之间的血缘关系,以及大数据平台数据表与传统关系型数据表之间的血缘关系构建成血缘图谱。构建过程为:一条血缘信息的目标表,可以作为其他血缘信息的源表,从而形成一条完整的血缘关系链,不同的血缘关系链,形成完整的血缘关系图,即血缘图谱。步骤s30,从所述全量元数据中获取待补充描述的目标字段,并确定所述目标字段所属的目标表;该步骤中,从上述全量元数据中获取待补充描述的目标字段,具体地,元数据管理系统可以定期,或在接收到用户的抓取指令时,从预先保存的全量元数据中抓取未描述的字段,或描述为乱码的字段作为待补充描述的目标字段,然后,确定目标字段所属的数据表作为目标表。步骤s40,根据所述血缘图谱确定所述目标表的上游表;该步骤中,根据上述构建的血缘图谱确定目标表的上游表,即所有包含目标表的数据来源的数据表。由于数据表的上游血缘和此表中的字段元数据有较为密切的关系,一般来说数据含义不会因为数据转移发生变更,因此针对某些没有描述的字段元数据,可以利用其上游的血缘关系做字段元数据描述的推荐补充。步骤s50,分析所述上游表中的元数据字段与所述目标字段的相似度,根据所述相似度对所述目标字段进行补充描述。上游表中一般包括若干个元数据字段,该步骤中,分析上游表中的每个元数据字段与目标字段的相似度,然后根据相似度对目标字段进行补充描述。比如,可以获取上游表中与目标字段相似度最高的字段的字段信息,将该字段信息作为目标字段的补充描述,或者,获取上游表中与目标字段相似度大于或等于预设阈值的若干个字段的字段信息推荐给用户,由用户从这若干个字段信息中选取一个字段信息作为目标字段的补充描述,具体实施时可灵选择不同的补充描述方式。这种通过字段相似度对目标字段进行补充描述的方式,补充描述的准确率较高,且无需开发人员全程参与描述,只需做最后的确认即可,大大提高了整体的工作效率。本实施例获取预先保存的来源于各源数据库的全量元数据;对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱;从所述全量元数据中获取待补充描述的目标字段,并确定所述目标字段所属的目标表;根据所述血缘图谱确定所述目标表的上游表;分析所述上游表中的元数据字段与所述目标字段的相似度,根据所述相似度对所述目标字段进行补充描述。这种方式相比于现有技术,实现了根据不同数据表之间的血缘关系为目标字段自动补充元数据描述,从而减少了人工干预,降低了成本,提高了整体的工作效率。进一步地,基于本发明补充元数据描述的方法第一实施例,提出本发明补充元数据描述的方法第二实施例。在本实施例中,所述分析所述上游表中的元数据字段与所述目标字段的相似度的步骤可以包括:对所述上游表中的元数据字段进行去重处理;从去重处理后的所述元数据字段中剔除预设的无效字段,得到待分析的元数据字段集;根据预设算法,分别计算所述元数据字段集中的每个字段与所述目标字段的相似度。本实施例中,考虑到上游表中的元数据字段可能重复,比如一个字段可能同时存在于多个数据表中,为提高计算效率,可以先对上游表中的元数据字段进行去重处理。具体地,参照图5,图5为本发明实施例中目标表和上游表之间的关系示意图。其中table1为目标表,其中包含目标字段cust_name,table2-table6为table1的上游表,table4和table6中都包括id,因此可以去重仅保留一个id字段。然后,从去重处理后的元数据字段中剔除预设的无效字段,比如id、field、mark等常用却无实际业务含义的字段,最终得到一个待分析的元数据字段集。之后,根据预设算法,分别计算该元数据字段集中的每个字段与目标字段的相似度。在一实施方式中,所述根据预设算法,分别计算所述元数据字段集中的每个字段与所述目标字段的相似度的步骤可以包括:根据编辑距离算法,分别计算所述元数据字段集中的每个字段转换成所述目标字段所需的最少编辑操作次数;根据所述最少编辑操作次数计算所述元数据字段集中的每个字段与所述目标字段的相似度。具体地,相似性分析算法采用levenshteindistance(编辑距离)算法,该算法是指取两个字符串由一个转成另一个所需的最少编辑操作次数(编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符),编辑距离越小,两个字符串的相似度越大。本实施例中,可以根据编辑距离算法,分别计算元数据字段集中的每个字段转换成目标字段所需的最少编辑操作次数,然后根据最少编辑操作次数计算元数据字段集中的每个字段与目标字段的相似度。当然,具体实施时也可以采用其他算法计算元数据字段集中的每个字段与目标字段的相似度,本实施例对此不作限定。参照图6,图6为对图5目标表table1中的目标字段cust_name进行相似度分析的分析结果示意图。通过相似度分析,可以得到元数据字段集中的cust_name、custname、c_name、prod_name、prod_code和telephone与目标字段cust_name的相似度分别为1、0.89,0.67,0.56,0.22,0.11。在计算得到相似度之后,再根据相似度对目标字段进行补充描述。在一实施方式中,所述根据所述相似度对所述目标字段进行补充描述的步骤包括:从所述元数据字段集中确定与所述目标字段的相似度最高的字段;获取所述与所述目标字段的相似度最高的字段的字段描述信息,将所述与所述目标字段的相似度最高的字段的字段描述信息作为所述目标字段的补充描述。比如,在图6中可以取与目标字段cust_name的相似度最高的字段cust_name,并从对应的上游表中获取cust_name的字段描述信息,将该字段描述信息作为目标字段cust_name的补充描述。这种方式实现了补充描述信息的快速匹配。在另一实施方式中,所述根据所述相似度对所述目标字段进行补充描述的步骤包括:按照所述相似度由高到低的顺序,将所述元数据字段集中的字段进行排列,得到所述目标字段的补充描述选择列表;当接收到用户基于所述补充描述选择列表触发的选择指令时,确定用户所选择的字段;获取用户所选择的字段的字段描述信息,将所述用户所选择的字段的字段描述信息作为所述目标字段的补充描述。比如,图6中元数据字段集中的字段按照相似度由高到低的顺序排列,此时可将该补充描述选择列表展示给前端用户,由用户从中选择一个字段,然后,从对应的上游表中获取用户所选择的字段的字段描述信息,将该字段描述信息作为目标字段的补充描述。通过这种方式,实现了用户对补充描述信息的灵活选择,提高了对元数据进行补充描述的灵活性。本发明还提供一种补充元数据描述的装置。本发明实施例补充元数据描述的装置包括:第一获取模块,用于获取预先保存的来源于各源数据库的全量元数据;构建模块,用于对所述全量元数据进行数据血缘分析,以构建所述全量元数据的不同数据表之间的血缘图谱;第二获取模块,用于从所述全量元数据中获取待补充描述的目标字段,并确定所述目标字段所属的目标表;确定模块,用于根据所述血缘图谱确定所述目标表的上游表;补充描述模块,用于分析所述上游表中的元数据字段与所述目标字段的相似度,根据所述相似度对所述目标字段进行补充描述。进一步地,所述补充元数据描述的装置还包括:拉取模块,用于从预设的源数据库中拉取元数据;保存模块,用于将拉取到的所述元数据保存至预设的元数据资源库中。进一步地,所述构建模块包括:获取单元,用于获取所述全量元数据的数据表类型,所述数据表类型包括大数据平台数据表和传统关系型数据表;第一调用单元,用于调用预设的血缘钩子函数以获取不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系;第二调用单元,用于调用预设的图数据库引擎,将获取到的所述不同的大数据平台数据表之间的血缘关系,以及所述大数据平台数据表与所述传统关系型数据表之间的血缘关系构建成血缘图谱。进一步地,所述补充描述模块还用于:对所述上游表中的元数据字段进行去重处理;从去重处理后的所述元数据字段中剔除预设的无效字段,得到待分析的元数据字段集;根据预设算法,分别计算所述元数据字段集中的每个字段与所述目标字段的相似度。进一步地,所述补充描述模块还用于:根据编辑距离算法,分别计算所述元数据字段集中的每个字段转换成所述目标字段所需的最少编辑操作次数;根据所述最少编辑操作次数计算所述元数据字段集中的每个字段与所述目标字段的相似度。进一步地,所述补充描述模块还用于:从所述元数据字段集中确定与所述目标字段的相似度最高的字段;获取所述与所述目标字段的相似度最高的字段的字段描述信息,将所述与所述目标字段的相似度最高的字段的字段描述信息作为所述目标字段的补充描述。进一步地,所述补充描述模块还用于:按照所述相似度由高到低的顺序,将所述元数据字段集中的字段进行排列,得到所述目标字段的补充描述选择列表;当接收到用户基于所述补充描述选择列表触发的选择指令时,确定用户所选择的字段;获取用户所选择的字段的字段描述信息,将所述用户所选择的字段的字段描述信息作为所述目标字段的补充描述。上述各程序模块所执行的操作可参照本发明补充元数据描述的方法实施例,此处不再赘述。本发明还提供一种存储介质。本发明存储介质上存储有补充元数据描述的程序,所述补充元数据描述的程序被处理器执行时实现如上所述的补充元数据描述的方法的步骤。其中,在所述处理器上运行的补充元数据描述的程序被执行时所实现的方法可参照本发明补充元数据描述的方法各个实施例,此处不再赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1