CN112685433B - 元数据更新方法、装置、电子设备及计算机可读存储介质 - Google Patents
元数据更新方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112685433B CN112685433B CN202110016523.5A CN202110016523A CN112685433B CN 112685433 B CN112685433 B CN 112685433B CN 202110016523 A CN202110016523 A CN 202110016523A CN 112685433 B CN112685433 B CN 112685433B
- Authority
- CN
- China
- Prior art keywords
- metadata
- updating
- instruction
- data
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004458 analytical method Methods 0.000 claims abstract description 107
- 230000004044 response Effects 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 claims description 63
- 238000001514 detection method Methods 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 5
- 238000007405 data analysis Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 241000282813 Aepyceros melampus Species 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000008280 blood Substances 0.000 description 3
- 210000004369 blood Anatomy 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的实施方式提供了一种元数据更新方法、元数据更新装置、电子设备以及计算机可读存储介质,涉及计算机技术领域。该方法包括:当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件;通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果;若解析结果为用于表征指令语义的兼容对象,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。可见,实施本申请实施例可以通过元数据所对应的版本选取与其对应的解析文件,解决现有技术中存在的多版本数据源容易采集失败的问题以及数据更新不及时的问题。
Description
技术领域
本申请的实施方式涉及计算机技术领域,更具体地,本申请的实施方式涉及元数据更新方法、元数据更新装置、电子设备以及计算机可读存储介质。
背景技术
目前,对于大数据的实时采集,通常需要登记采集目标,进而部署采集客户端进行采集,然后统一收集并根据收集结果更新数据索引,以提供数据查询。但是,需要采集的数据源可能对应于多种版本,而多种版本的数据源通常语法不兼容。因此,通过上述统一的采集方式采集多版本的数据源容易采集失败,进而,则容易导致数据更新不及时。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此,不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
基于上述问题,发明人进行了相应的思考,做出了有针对性的改进,提供了元数据更新方法、元数据更新装置、电子设备以及计算机可读存储介质,可以通过元数据所对应的版本选取与其对应的解析文件,进而可以通过相对应的解析文件实现对于元数据的收集,以更新数据索引,解决现有技术中存在的多版本数据源容易采集失败的问题以及数据更新不及时的问题。
根据本申请实施例的第一方面,公开了一种元数据更新方法,包括:
当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源;
从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件;
通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果;
若解析结果为用于表征指令语义的兼容对象,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。
在一个实施例中,基于前述方案,兼容对象还用于表征更新指令对应的指令语言,响应于更新指令根据指令语义对主数据索引中的元数据进行更新之前,上述方法还包括:
若指令语言为数据库定义语言,则执行的响应于更新指令根据指令语义对主数据索引中的元数据进行更新;
若指令语言为数据库操作语言,则忽略更新指令。
在一个实施例中,基于前述方案,响应于更新指令根据指令语义对主数据索引中的元数据进行更新,包括:
若更新指令用于表示删除目标二级字段,则删除主数据索引中的目标二级字段;
若更新指令用于表示创建目标二级字段,则在主数据索引中创建目标二级字段;
若更新指令用于表示更新目标字段,则更新主数据索引中的目标字段。
在一个实施例中,基于前述方案,在接收到元数据更新消息之后,上述方法还包括:
将元数据更新消息存储于预设存储空间中;
在解析结果为兼容对象时,判定解析结果用于表示解析成功并删除预设存储空间中的元数据更新消息。
在一个实施例中,基于前述方案,若解析结果用于表示解析失败,上述方法还包括:
获取预设存储空间中包含元数据更新消息的消息集合;
根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;
将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
在一个实施例中,基于前述方案,根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引之前,上述方法还包括:
采集各类计算机资源的当前占用率;
若当前占用率均满足预设条件,从预设映射关系中查询与消息集合中各消息匹配的数据编码;
从备份索引中确定对应于数据编码的待更新元数据;
其中,预设映射关系用于表征待更新元数据与消息集合中各消息之间的映射关系。
在一个实施例中,基于前述方案,若当前占用率不满足预设条件,上述方法还包括:
按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止;或者,
按照预设检测频率检测当前占用率是否满足预设条件,直到检测次数达到上限值且最后一次检测结果用于表示当前占用率不满足预设条件为止,输出用于提示用户排查设备的告警信息。
在一个实施例中,基于前述方案,元数据包括技术元数据和业务元数据;技术元数据至少包括一级字段、隶属一级字段的二级字段以及隶属二级字段的三级字段。
在一个实施例中,基于前述方案,在接收到元数据更新消息之前,上述方法还包括:
获取技术源数据并根据技术源数据中数据的引擎信息提取一级字段;其中,一级字段的数量与引擎信息的种类一致;
根据数据的版本信息提取二级字段;其中,二级字段的数量与版本信息的种类一致;
根据数据中的字段和类型提取三级字段;
根据一级字段、二级字段以及三级字段构建技术元数据。
在一个实施例中,基于前述方案,上述方法还包括:
根据标签解析规则将业务元数据解析为标签化数据结构;
生成与标签化数据结构对应的映射关系编码;
将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据;其中,主数据索引包括映射关系编码。
根据本申请实施例的第二方面,公开了一种元数据更新装置,包括:信息读取单元、解析文件选取单元、数据解析单元以及数据索引更新单元,其中:
信息读取单元,用于当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源;
解析文件选取单元,用于从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件;
数据解析单元,用于通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果;
数据索引更新单元,用于在解析结果为用于表征指令语义的兼容对象时,响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。
在一个实施例中,基于前述方案,兼容对象还用于表征更新指令对应的指令语言,数据索引更新单元,具体用于在响应于更新指令根据指令语义对主数据索引中的元数据进行更新之前,若指令语言为数据库定义语言,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;
上述装置还包括:
指令处理单元,用于在指令语言为数据库操作语言时,忽略更新指令。
在一个实施例中,基于前述方案,数据索引更新单元响应于更新指令根据指令语义对主数据索引中的元数据进行更新,包括:
若更新指令用于表示删除目标二级字段,则删除主数据索引中的目标二级字段;
若更新指令用于表示创建目标二级字段,则在主数据索引中创建目标二级字段;
若更新指令用于表示更新目标字段,则更新主数据索引中的目标字段。
在一个实施例中,基于前述方案,在接收到元数据更新消息之后,上述装置还包括:
消息存储单元,用于将元数据更新消息存储于预设存储空间中;
消息删除单元,用于在解析结果为兼容对象时,判定解析结果用于表示解析成功并删除预设存储空间中的元数据更新消息。
在一个实施例中,基于前述方案,若解析结果用于表示解析失败,上述装置还包括:
消息获取单元,用于获取预设存储空间中包含元数据更新消息的消息集合;
数据索引更新单元,还用于根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;
主数据索引替换单元,用于将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
在一个实施例中,基于前述方案,上述装置还包括:
参数采集单元,用于数据索引更新单元根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引之前,采集各类计算机资源的当前占用率;
编码查询单元,用于在当前占用率均满足预设条件时,从预设映射关系中查询与消息集合中各消息匹配的数据编码;
数据确定单元,用于从备份索引中确定对应于数据编码的待更新元数据;
其中,预设映射关系用于表征待更新元数据与消息集合中各消息之间的映射关系。
在一个实施例中,基于前述方案,若当前占用率不满足预设条件,上述装置还包括:
循环检测单元,用于按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止;
或者,用于按照预设检测频率检测当前占用率是否满足预设条件,直到检测次数达到上限值且最后一次检测结果用于表示当前占用率不满足预设条件为止,输出用于提示用户排查设备的告警信息。
在一个实施例中,基于前述方案,元数据包括技术元数据和业务元数据;技术元数据至少包括一级字段、隶属一级字段的二级字段以及隶属二级字段的三级字段。
在一个实施例中,基于前述方案,在接收到元数据更新消息之前,上述装置还包括:
字段提取单元,用于获取技术源数据并根据技术源数据中数据的引擎信息提取一级字段;其中,一级字段的数量与引擎信息的种类一致;
字段提取单元,还用于根据数据的版本信息提取二级字段;其中,二级字段的数量与版本信息的种类一致;
字段提取单元,还用于根据数据中的字段和类型提取三级字段;
数据构建单元,用于根据一级字段、二级字段以及三级字段构建技术元数据。
在一个实施例中,基于前述方案,数据解析单元,还用于根据标签解析规则将业务元数据解析为标签化数据结构;
上述装置还包括:
编码生成单元,用于生成与标签化数据结构对应的映射关系编码;
编码绑定单元,用于将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据;其中,主数据索引包括映射关系编码。
根据本申请实施例的第三方面,公开了一种电子设备,包括:处理器;以及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现如第一方面公开的元数据更新方法。
根据本申请实施例的第四方面,公开了一种计算机程序介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,使计算机执行根据本申请第一方面公开的元数据更新方法。
本申请实施例能够当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源;从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件;通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果;若解析结果为用于表征指令语义的兼容对象,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。相较现有技术,实施本申请的实施例,一方面可以通过元数据所对应的版本选取与其对应的解析文件,进而可以通过相对应的解析文件实现对各版本元数据更新动态的实时收集,以更新数据索引,解决现有技术中存在的多版本数据源容易采集失败的问题,提升多版本数据源的采集成功率。另一方面,实施本申请实施例还能够提升数据更新的及时性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,其中:
图1示出的是根据本申请一示例实施方式的元数据更新方法的流程示意图;
图2示出的是根据本申请一示例实施方式的构建元数据的架构示意图;
图3示出的是根据本申请一示例实施方式的全量更新架构示意图;
图4示出的是根据本申请一示例实施方式的实时更新流程示意图;
图5示出的是根据本申请一可选实施方式的实时更新架构示意图;
图6示出的是根据本申请一示例实施方式的元数据更新方法的流程示意图;
图7示出的是根据本申请一可选示例实施方式的元数据更新装置的结构框图;
图8示出的是根据本申请另一可选示例实施方式的元数据更新装置的结构框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本申请的实施方式可以实现为一种装置、设备、方法或计算机程序产品。因此,本申请可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本申请的实施方式,提出了一种元数据更新方法、元数据更新装置、电子设备以及计算机可读存储介质。
附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
发明概述
目前,现有技术对于大数据采集方案通常为:登记采集目标并部署采集客户端定时进行采集,然后统一收集提供查询。但是,需要采集的数据源可能对应于多种版本,而多种版本的数据源通常语法不兼容。因此,采用上述方式进行的定时采集一般无法实现元数据的及时更新,并且,通过统一的采集方式实时采集多版本的数据源容易导致采集失败。
基于上述问题,申请人想到可以在接收到元数据更新消息时,读取其中的版本信息和引擎信息。基于版本信息和引擎信息从多种解析文件中选取与元数据更新消息适配的目标解析文件,以通过目标解析文件解析元数据更新消息中的更新指令。进而可以在解析结果为用于表征指令语义的兼容对象时更新主数据索引中的元数据。可见,通过元数据所对应的版本选取与其对应的解析文件,可以实现对各版本元数据更新动态的实时收集,以更新数据索引,解决现有技术中存在的多版本数据源容易采集失败的问题,提升多版本数据源的采集成功率以及数据更新的及时性。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
在应用于多版本数据源采集的场景下时,可以读取更新消息对应的版本信息和引擎信息,从而根据版本信息和引擎信息选取适用于本次当前的解析文件,进而可以通过相对应的解析文件实现数据采集,进而实现对于数据索引的及时更新,可以提升多版本数据源的采集成功率以及数据更新的及时性。
示例性方法
下面结合上述的应用场景,参考图1和图6来描述根据本申请示例性实施方式的元数据更新方法。
请参阅图1,图1示出的是根据本申请一示例实施方式的元数据更新方法的流程示意图,该元数据更新方法可以由服务器或终端设备来实现。如图1所示,该元数据更新方法,可以包括:
步骤S110:当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源。
步骤S120:从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件。
步骤S130:通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果。
步骤S140:若解析结果为用于表征指令语义的兼容对象,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。
实施图1所示的元数据更新方法,可以通过元数据所对应的版本选取与其对应的解析文件,进而可以通过相对应的解析文件实现对各版本元数据更新动态的实时收集,以更新数据索引,解决现有技术中存在的多版本数据源容易采集失败的问题,提升多版本数据源的采集成功率。此外,还能够提升数据更新的及时性。
下面对这些步骤进行详细描述。
在步骤S110中,当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源。
作为一种可选的实施例,在接收到元数据更新消息之前,上述方法还包括:获取技术源数据并根据技术源数据中数据的引擎信息提取一级字段(如,topic);其中,一级字段的数量与引擎信息的种类一致;根据数据的版本信息提取二级字段(如,table1、table2);其中,二级字段的数量与版本信息的种类一致;根据数据中的字段和类型提取三级字段(如,[Key1、Key2、…]、[Key1、Key3、Key 4、…]);根据一级字段、二级字段以及三级字段构建技术元数据。
具体地,技术源数据可以来源于关系型数据库管理系统MySql、关系型数据库管理系统Oracle、关系数据库管理系统SqlServer、NoSql非关系型数据库(如,mongodb、hbase、redis等)等数据源,本申请实施例不作限定。引擎信息的种类也可以包括MySql、Oracle、SqlServer、NoSql对应的引擎。举例来说,技术源数据可以表示为{"key1":"value","key2":"value2","key3":{"key4":"value3"}},通过对于技术源数据的一级字段、二级字段以及三级字段提取,可以得到下表,基于下表可以构建上述的技术元数据:
此外,在根据一级字段、二级字段以及三级字段构建技术元数据之后,上述方法还可以包括:将技术元数据注册至元数据中心的数据库中,技术元数据可以通过表的形式进行存储。
另外,元数据(Metadata)是一种用于解释数据的数据,通常应用于数据仓库、软件开发、图书管理等领域。具体地,元数据通常包括:技术元数据和业务元数据,技术元数据与业务元数据的本质区别在于是否与具体的业务逻辑强相关。其中,技术元数据(如,库、表、文件、数据血缘等)是对应用架构进行抽象并且屏蔽了技术细节之后定义得到的元数据,技术元数据与具体业务逻辑无关。其中,业务元数据是指业务属性,具体是对业务框架进行抽象后基于具体业务逻辑得到的元数据,业务元数据(如,销售额、用户域等)可以由业务侧根据平台提供的元数据定义和自生长机制生成得到。
其中,技术元数据至少包括一级字段(如,库)、隶属一级字段的二级字段(如,表名)以及隶属二级字段的三级字段(如,字段)。若技术元数据与业务元数据相对应,那么,业务元数据也可以包括一级字段、二级字段以及三级字段。
举例来说,技术元数据可以通过下表进行表示:
另外,元数据更新消息可以用于更新数据仓库(DataWarehouse)中的元数据,数据仓库可以理解为数据集合。基于此,读取元数据更新消息中的版本信息和引擎信息,包括:基于数据仓库的工具(Hive)对元数据更新消息进行结构化处理,得到结构化元数据更新消息;其中,Hive是基于Hadoop的数据仓库工具,可以用于处理结构化数据,Hadoop可以用于存储数据和分析数据。
其中,结构化元数据更新消息中包括的字段可以为大数据引擎版本(version)、结构化查询语言(sql)、大数据执行引擎(engine)、语句执行开始时间(startTime)、操作执行人(operator)以及大数据产品名称(server)等。举例来说,结构化元数据更新消息可以通过下表进行表示:
字段 | 内容 |
version | 2.1.1 |
sql | create table (t1 int,t2 int) |
engine | Hive/Spark/Impala |
startTime | 2020.02.02 |
operator | Someone |
server | XX服务 |
… | … |
请参阅图2,图2示出的是根据本申请一示例实施方式的构建元数据的架构示意图。如图2所示,构建元数据的架构示意图可以包括:插件管理器200、MySql类加载器212、Oracle类加载器222、Nest类加载器232、Other类加载器242、MySql插件211、Oracle插件221、Nest插件231、Other插件241、MySql 210、Oracle 220、Nest 230、Other 240。其中,MySql 210、Oracle 220、Nest 230、Other 240为不同的数据源,其中,MySql 210、Oracle220为关系型数据源,Nest 230为非关系型数据源,Other 240为其他类型数据源。
具体地,插件管理器200可以通过MySql类加载器212调用MySql插件211从MySql210获取数据,以及可以通过Oracle类加载器222调用Oracle插件221从Oracle 220获取数据,以及可以通过Nest类加载器232调用Nest插件231从Nest 230获取数据,以及可以通过Other类加载器242调用Other插件241从Other 240获取数据。通过对于不同数据源开发的与其相对应的插件可以获取不同数据源的数据,其中,不同的数据源插件还可以支持多种版本。Other 240用于表示未来还可能出现的其他类型的数据源,可见,图2所示的架构为一种可扩展的架构。插件管理器200可以对各个插件进行热加载、更新或禁止。此外,基于NoSql没有固定的字段但具有具体字段,本申请可以基于NoSql抽象出一种Nest类型的数据源,完成对NoSql数据源的元数据采集。
可见,实施该可选的实施例,能够根据不同的插件收集不同数据引擎的数据,并且具备更高的自由度,可以在实现对于技术元数据的构建的基础上允许个性化定义元数据架构,使得元数据架构易于扩展,并且,还可以通过对于特殊类型数据源的抽象,使得本申请对于关系型数据和非关系型数据均可以实现数据采集。
在步骤S120中,从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件。
具体地,多种解析文件可以分别为对应于不同技术源数据的解析文件,以保证在多版本的大数据引擎下的文件解析准确率。
在步骤S130中,通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果。
在步骤S140中,若解析结果为用于表征指令语义的兼容对象,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。
具体地,不同的更新指令可以对应于不同的指令语义也可以对应于相同的指令语义。
基于图2构建的技术元数据,可以在接收到元数据更新消息对技术元数据进行更新。请参阅图3,图3示出的是根据本申请一示例实施方式的实时更新架构示意图。如图3所示,该数据更新架构可以包括:AdHoc 311、HiveMetaStore 312、Spark 313、HiveServer2314、消息中间件320、事件模块330、解析模块340、Hive解析模块341、Spark解析模块342、Impala解析模块343以及更新模块350。其中,Spark是基于内存的大数据执行引擎;Impala是交互查询大数据引擎;HiveMetaStore用于提供Hive的元数据服务,如,元数据查询等。另外,HiveMetaStore 312、Spark 313、HiveServer2 314中可以设置有血缘插件,血缘插件用于通过血缘关系对照表追溯数据来源。
具体地,消息中间件320可以接收由AdHoc 311、HiveMetaStore 312、Spark 313、HiveServer2 314以及任务调度平台315发送的元数据更新消息。
进而,事件模块330可以从消息中间件320中获取该元数据更新消息并将该元数据更新消息解析为结构化元数据更新消息,以从结构化元数据更新消息中读取元数据更新消息中的版本信息(如,2.1.1)和引擎信息(如,Hive)并将版本信息和引擎信息发送至解析模块440。
进而,解析模块340可以利用Java类加载器(如,ClassLoader)的jar包隔离技术从多种解析文件中选取与上述的版本信息和引擎信息均匹配的目标解析文件并加载该目标解析文件,这样可以保证语法兼容,并且便于扩展;其中,目标解析文件可以为解析包。举例来说,根据Hive引擎的版本信息和引擎信息可以匹配出与Hive引擎对应的目标解析文件,即,hive-jdbc-2.1.1.jar;根据Spark引擎的版本信息和引擎信息可以匹配出与Spark引擎对应的目标解析文件,即,antlr-runtime-4.7.jar;根据Impala引擎的版本信息和引擎信息可以匹配出与Impala引擎对应的目标解析文件,即,antlr-runtime-3.3.jar。
需要说明的是,Java类加载器(ClassLoader),用于将字节码形式的Class转换成内存形式的Class对象。字节码可以来自于磁盘文件*.class、jar包里的*.class或远程服务器提供的字节流,字节码的本质为字节数组。jar(Java ARchive,Java归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。其中jar文件是Java的一种文档格式,jar文件类似于zip文件,jar文件与zip文件的区别在于,jar文件中包含了一个META-INF/MANIFEST.MF文件,这个文件是在生成jar文件的时候自动创建的。.class文件是以类似于C语言结构体的结构,用于存储数据,其存储的数据包括无符号数和表,.class文件本质上是一张表。无符号是基本的数据类型,以u1、u2、u4、u8分别代码1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或者按照UTF-8编码构成的字符串值。表是一种复合数据结构,由无符号数或其他表构成。
举例来说,根据Java类加载器的jar包隔离技术从多种解析文件中选取与上述的版本信息和引擎信息均匹配的目标解析文件并加载该目标解析文件,可以通过下述伪代码进行表示,以目标解析文件为Hive引擎的解析包为例:
进而,解析模块340还可以利用Java类加载器解析元数据更新消息中的更新指令,得到用于表征指令语义和/或指令语言的兼容对象(ats对象)并根据兼容对象确定更新指令的指令语言为数据库定义语言(DDL)还是数据库操作语言(DML);其中,ats(AppTransport Security)是用于提高应用程序与服务器之间进行安全传输数据的一个特性。若指令语言为数据库定义语言,则触发更新模块350响应于更新指令根据指令语义对搜索服务器(Elasticsearch,ES)中的主数据索引的元数据进行更新,其中,ES也可以称之为查询引擎,用于提供分布式多文档全文搜索;若指令语言为数据库操作语言,则忽略更新指令。另外,数据库定义语言(DDL)可以用于创建数据库对象(如,表、视图、索引等),数据库操作语言(DML)可以用于对数据库中的数据执行增、删、改、查等操作,基于DML的增、删、改、查等操作不会引起元数据的变动。可见,通过解析模块340对于元数据更新消息的解析,能够明确指令语言,以便根据指令语言确定对于指令的处理方式,可以提升指令处理效率,避免执行无效指令。
其中,基于指令语言为数据库定义语言(DDL)且指令语义用于表示创建表、删除表或更新字段等,更新模块350响应于更新指令根据指令语义对主数据索引中的元数据进行更新的方式具体可以为:若指令语义用于表示创建A表,更新模块350在主数据索引中创建A表;若指令语义用于表示删除A表,更新模块350删除主数据索引中的A表;若指令语义用于表示更新A1字段,更新模块350根据更新指令对主数据索引中的A1字段进行更新。
举例来说,解析模块340执行的操作可以通过下述伪代码进行表示:
作为一种可选的实施例,响应于更新指令根据指令语义对主数据索引中的元数据进行更新,包括:若更新指令用于表示删除目标二级字段,则删除主数据索引中的目标二级字段;若更新指令用于表示创建目标二级字段,则在主数据索引中创建目标二级字段;若更新指令用于表示更新目标字段,则更新主数据索引中的目标字段。
具体地,目标二级字段和目标字段的数量可以为一个或多个,本申请实施例不作限定。
可见,实施该可选的实施例,能够基于更有效的多版本元数据采集方式,实现根据不同的指令对数据索引及时执行相对应的操作,提升对于数据索引的更新及时性。
作为一种可选的实施例,在接收到元数据更新消息之后,上述方法还包括:将元数据更新消息存储于预设存储空间中;在解析结果为兼容对象时,判定解析结果用于表示解析成功并删除预设存储空间中的元数据更新消息。
其中,将元数据更新消息存储于预设存储空间中之后,上述方法还可以包括:按照预设单位时长(如,120s)读取预设存储空间中存储的元数据更新消息;其中,每次读取到的元数据更新消息的数量可以相同也可以不同,本申请实施例不作限定。
可见,实施该可选的实施例,能够在解析成功后删除预设存储空间中的元数据更新消息,提升对于预设存储空间的利用率。
作为一种可选的实施例,若解析结果用于表示解析失败,上述方法还包括:获取预设存储空间中包含元数据更新消息的消息集合;根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
具体地,预设存储空间可以为预先划定的满足于预设大小(如,512G)的存储空间,预设存储空间可以为消息中间件320对应的存储空间。此外,消息集合中可以包括1、2、……、n个元数据更新消息,n为正整数。
可见,实施该可选的实施例,能够在解析失败后将元数据更新消息留存在预设存储空间中,以便后续可以按照预设时长对预设存储空间中留存的所有元数据更新消息进行统一处理,即,可以通过索引热切换实现对实时数据更新过程中发生的异常情况的兜底,使得每个元数据更新消息都可以及时得到相应的处理。
作为一种可选的实施例,根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引之前,上述方法还包括:采集各类计算机资源的当前占用率;若当前占用率均满足预设条件,从预设映射关系中查询与消息集合中各消息匹配的数据编码;从备份索引中确定对应于数据编码的待更新元数据;其中,预设映射关系用于表征待更新元数据与消息集合中各消息之间的映射关系。
具体地,预设条件用于限定各类计算机资源中至少一类计算机资源的当前占用率的数值范围(如,70%~90%);预设映射关系也可以称之为索引别名;各消息匹配的数据编码(ID)可以通过字符串进行表示。
另外,采集各类计算机资源的当前占用率,包括:通过监控信息采集(Metrics)服务采集各类计算机资源的当前占用率;其中,计算机资源可以为用户数、cpu核数、系统启动时间、处于各种状态的进程数量、处于各种状态的网络连接数、收发包的数量、收发包的字节数、内存的实时状态或磁盘读写状态等,本申请实施例不作限定。
另外,从备份索引中确定对应于数据编码的待更新元数据,包括:从备份索引中确定对应于数据编码的目标编码,根据编码与元数据之间的对应关系确定目标编码对应的待更新元数据。
可见,实施该可选的实施例,能够提供全量更新的兜底方案,可以将实时更新过程中出现的漏更新数据或出现更新错误的数据重新更新至索引中,保证数据更新的完整性。
作为一种可选的实施例,若当前占用率不满足预设条件,上述方法还包括:按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止;或者,按照预设检测频率检测当前占用率是否满足预设条件,直到检测次数达到上限值(如,3次)且最后一次检测结果用于表示当前占用率不满足预设条件为止,输出用于提示用户排查设备的告警信息。
具体地,告警信息中可以包括文本、图像以及标识符中至少一种,本申请实施例不作限定。基于此,输出用于提示用户排查设备的告警信息的方式可以为:通过弹窗的形式展示用于提示用户排查设备的告警信息并同时输出告警音效,以达到提醒相关人员排查设备(如,服务器/服务器集群)的目的。
另外,在检测次数达到上限值且最后一次检测结果用于表示当前占用率不满足预设条件时,上述方法还可以包括:剔除与元数据更新消息对应的数据源,避免该数据源对数据更新服务造成持续的不良影响。
另外,按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止,包括:按照预设检测频率检测各个计算机资源的当前占用率,如果所有的当前占用率均满足预设条件,则执行前一实施例中的从预设映射关系中查询与消息集合中各消息匹配的数据编码;如果所有当前占用率中存在不满足预设条件的当前占用率,则按照预设时长(如,3s)重新检测各个计算机资源的当前占用率,直到所有的当前占用率均满足预设条件为止。
请参阅图4,图4示出的是根据本申请一示例实施方式的全量更新流程示意图。如图4所示,全量更新模块400可以包括:监控信息采集服务410、元数据采集管理服务420、采集服务430、更新需求判别服务440、数据获取服务450以及更新服务460。
具体地,监控信息采集服务410可以利用图3中提到的ES采集各类计算机资源的当前占用率;其中,ES采集各类计算机资源的当前占用率的触发条件可以为解析结果用于表示解析失败,或者可以为到达预设单位时长。进而,元数据采集管理服务420可以检测各类计算机资源的当前占用率是否满足于预设条件,如果是,则启动采集任务,以使得采集服务430从消息中间件320对应的存储空间中采集留存的包含元数据更新消息的消息集合。进而,更新需求判别服务440可以从预设映射关系中查询与消息集合中各消息匹配的数据编码,以便数据获取服务450可以从备份索引中确定出对应于数据编码的待更新元数据,进而利用更新服务460更新备份索引中的待更新元数据,得到更新后的备份索引,进而将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引,以实现对于索引的热更新。当客户端470发起数据请求时,可以根据新的主数据索引对数据请求进行响应。
可见,实施该可选的实施例,能够在计算机资源的当前占用率较高时不进行元数据采集,以避免对源端设备造成较大的计算压力,进而可以避免对源端设备的使用寿命造成不良影响。
作为一种可选的实施例,上述方法还包括:根据标签解析规则将业务元数据解析为标签化数据结构;生成与标签化数据结构对应的映射关系编码;将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据;其中,主数据索引包括映射关系编码。
具体地,根据标签解析规则将业务元数据解析为标签化数据结构,包括:根据表示为如下表格的标签解析规则将业务元数据解析为标签化数据结构(如,[tag:1,type:zhibiao,keywords:["sales","销售额"],bizId:5]);其中,标签解析规则用于将业务元数据结构化/标签化。
字段 | 字段含义 |
tag | 业务方追踪标识,用于关联业务系统中的业务元数据 |
type | 标签类型(如,指标,数仓维度、数仓分层等) |
parentTag | 对具有父子层级关系的业务元数据进行标签化的父标签 |
keywords | 标签的补充说明(如,业务含义) |
bizId | 作为标签业务线的标识,隔离各标签化数据结构 |
请参阅图5,图5示出的是根据本申请一可选实施方式的实时更新架构示意图。如图5所示,实时更新架构可以包括客户端510、业务系统520、ES 530、业务关联模块540以及元数据中心550;其中,业务关联模块540可以包括标签类型定义服务541、业务标签同步服务542、标签属性管理服务543以及标签同步和增量管理服务544。
具体地,业务系统520可以用于存储业务元数据(如,指标系统,数仓分层维度等),业务标签同步服务542可以抽取业务系统520中的业务元数据,并根据标签解析规则将业务元数据解析为标签化数据结构,并将标签化数据结构发送至元数据中心550。元数据中心550可以为标签化数据结构生成一一对应的映射关系编码(即,标签ID),并将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据。进而,元数据中心550可以将绑定了映射关系编码的技术元数据同步至ES 530中,在对技术元数据实时更新后,还可以实现对于业务元数据的同步更新。
另外,标签类型定义服务541用于向业务方提供通过客户端510对标签类型进行增删改查的服务,标签类型定义服务541可以提供restful接口和rpc接口以方便业务方通过上述接口直接定义标签;标签属性管理服务543用于对增删改查之后的标签进行属性管理,具体可以包括增加新的属性和/或删除旧的属性等;标签同步和增量管理服务544可以用于进行标签的增量同步和全量比对校验,以确保标签的准确和实时性。
可见,实施该可选的实施例,通过关联技术元数据和业务元数据,使得数仓分析人员能够通过业务元数据明确技术元数据的具体含义,还能够实现对于业务元数据的同步更新。
请参阅图6,图6示出的是根据本申请一示例实施方式的元数据更新方法的流程示意图。如图6所示,该元数据更新方法包括:步骤S600~步骤S620。
步骤S600:当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源。
步骤S602:从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件。
步骤S604:通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果并将元数据更新消息存储于预设存储空间中。若解析结果为用于表征指令语义的兼容对象,则执行步骤S606;若解析结果用于表示解析失败,则执行步骤S608。
步骤S606:判定解析结果用于表示解析成功并删除预设存储空间中的元数据更新消息。进而,执行步骤S616。
步骤S608:获取预设存储空间中包含元数据更新消息的消息集合,并采集各类计算机资源的当前占用率。若当前占用率均满足预设条件,则执行步骤S612;若当前占用率不满足预设条件,则执行步骤S610。
步骤S610:按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止,或者,按照预设检测频率检测当前占用率是否满足预设条件,直到检测次数达到上限值且最后一次检测结果用于表示当前占用率不满足预设条件为止;输出用于提示用户排查设备的告警信息。
步骤S612:从预设映射关系中查询与消息集合中各消息匹配的数据编码,并从备份索引中确定对应于数据编码的待更新元数据;其中,预设映射关系用于表征待更新元数据与消息集合中各消息之间的映射关系。
步骤S614:根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引,并将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。若指令语言为数据库定义语言,则执行步骤S616;若指令语言为数据库操作语言,则执行步骤S618。
步骤S616:响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。进而,执行步骤S620。
步骤S618:忽略更新指令。
步骤S620:根据标签解析规则将业务元数据解析为标签化数据结构,生成与标签化数据结构对应的映射关系编码,并将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据;其中,主数据索引包括映射关系编码。
需要说明的是,步骤S600~步骤S620与图1所示的各步骤及其实施例相对应,针对步骤S600~步骤S620的具体实施方式,请参阅图1所示的各步骤及其实施例,此处不再赘述。
可见,实施图6所示的方法,可以通过元数据所对应的版本选取与其对应的解析文件,进而可以通过相对应的解析文件实现对各版本元数据更新动态的实时收集,以更新数据索引,解决现有技术中存在的多版本数据源容易采集失败的问题,提升多版本数据源的采集成功率。此外,还能够提升数据更新的及时性。
此外,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
示例性介质
在介绍了本申请示例性实施方式的方法之后,接下来,对本申请示例性实施方式的介质进行说明。
在一些可能的实施方式中,本申请的各个方面还可以实现为一种介质,其上存储有程序代码,当程序代码被设备的处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的元数据更新方法中的步骤。
具体地,所述设备的处理器执行所述程序代码时用于实现如下步骤:当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源;从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件;通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果;若解析结果为用于表征指令语义的兼容对象,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:将元数据更新消息存储于预设存储空间中;在解析结果为兼容对象时,判定解析结果用于表示解析成功并删除预设存储空间中的元数据更新消息。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:获取预设存储空间中包含元数据更新消息的消息集合;根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:采集各类计算机资源的当前占用率;若当前占用率均满足预设条件,从预设映射关系中查询与消息集合中各消息匹配的数据编码;从备份索引中确定对应于数据编码的待更新元数据;其中,预设映射关系用于表征待更新元数据与消息集合中各消息之间的映射关系。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止;或者,按照预设检测频率检测当前占用率是否满足预设条件,直到检测次数达到上限值且最后一次检测结果用于表示当前占用率不满足预设条件为止,输出用于提示用户排查设备的告警信息。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:获取技术源数据并根据技术源数据中数据的引擎信息提取一级字段;其中,一级字段的数量与引擎信息的种类一致;根据数据的版本信息提取二级字段;其中,二级字段的数量与版本信息的种类一致;根据数据中的字段和类型提取三级字段;根据一级字段、二级字段以及三级字段构建技术元数据。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:若指令语言为数据库定义语言,则执行的响应于更新指令根据指令语义对主数据索引中的元数据进行更新;若指令语言为数据库操作语言,则忽略更新指令。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:根据标签解析规则将业务元数据解析为标签化数据结构;生成与标签化数据结构对应的映射关系编码;将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据;其中,主数据索引包括映射关系编码。
在本申请的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:若更新指令用于表示删除目标二级字段,则删除主数据索引中的目标二级字段;若更新指令用于表示创建目标二级字段,则在主数据索引中创建目标二级字段;若更新指令用于表示更新目标字段,则更新主数据索引中的目标字段。
需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本申请示例性实施方式的介质之后,接下来,参考图7对本申请示例性实施方式的元数据更新装置进行说明。
请参阅图7,图7示出的是根据本申请一示例实施方式的元数据更新装置的结构框图。如图7所示,本申请一示例实施方式的元数据更新装置700包括:信息读取单元701、解析文件选取单元702、数据解析单元703以及数据索引更新单元704,其中:
信息读取单元701,用于当接收到元数据更新消息时,读取元数据更新消息中的版本信息和引擎信息;其中,版本信息和引擎信息用于表征元数据更新消息的来源;
解析文件选取单元702,用于从多种解析文件中选取与版本信息和引擎信息均匹配的目标解析文件;
数据解析单元703,用于通过目标解析文件解析元数据更新消息中的更新指令,得到解析结果;
数据索引更新单元704,用于在解析结果为用于表征指令语义的兼容对象时,响应于更新指令根据指令语义对主数据索引中的元数据进行更新;其中,指令语义对应于更新指令。
其中,元数据包括技术元数据和业务元数据;技术元数据至少包括一级字段、隶属一级字段的二级字段以及隶属二级字段的三级字段。
可见,实施图7所示的装置,可以通过元数据所对应的版本选取与其对应的解析文件,进而可以通过相对应的解析文件实现对各版本元数据更新动态的实时收集,以更新数据索引,解决现有技术中存在的多版本数据源容易采集失败的问题,提升多版本数据源的采集成功率。此外,还能够提升数据更新的及时性。
在一个实施例中,基于前述方案,兼容对象还用于表征更新指令对应的指令语言,数据索引更新单元704,具体用于在响应于更新指令根据指令语义对主数据索引中的元数据进行更新之前,若指令语言为数据库定义语言,则响应于更新指令根据指令语义对主数据索引中的元数据进行更新;
上述装置还包括:
指令处理单元(未图示),用于在指令语言为数据库操作语言时,忽略更新指令。
可见,实施该可选的实施例,能够根据指令语言确定对于指令的处理方式,以提升指令处理效率,避免执行无效指令。
在一个实施例中,基于前述方案,数据索引更新单元704响应于更新指令根据指令语义对主数据索引中的元数据进行更新,包括:
若更新指令用于表示删除目标二级字段,则删除主数据索引中的目标二级字段;
若更新指令用于表示创建目标二级字段,则在主数据索引中创建目标二级字段;
若更新指令用于表示更新目标字段,则更新主数据索引中的目标字段。
可见,实施该可选的实施例,能够基于更有效的多版本元数据采集方式,实现根据不同的指令对数据索引及时执行相对应的操作,提升对于数据索引的更新及时性。
在一个实施例中,基于前述方案,在接收到元数据更新消息之后,上述装置还包括:
消息存储单元(未图示),用于将元数据更新消息存储于预设存储空间中;
消息删除单元(未图示),用于在解析结果为兼容对象时,判定解析结果用于表示解析成功并删除预设存储空间中的元数据更新消息。
可见,实施该可选的实施例,能够在解析成功后删除预设存储空间中的元数据更新消息,提升对于预设存储空间的利用率。
在一个实施例中,基于前述方案,若解析结果用于表示解析失败,上述装置还包括:
消息获取单元(未图示),用于获取预设存储空间中包含元数据更新消息的消息集合;
数据索引更新单元704,还用于根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;
主数据索引替换单元(未图示),用于将更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
可见,实施该可选的实施例,能够在解析失败后将元数据更新消息留存在预设存储空间中,以便后续可以按照预设时长对预设存储空间中留存的所有元数据更新消息进行统一处理,即,可以通过索引热切换实现对实时数据更新过程中发生的异常情况的兜底,使得每个元数据更新消息都可以及时得到相应的处理。
在一个实施例中,基于前述方案,上述装置还包括:
参数采集单元(未图示),用于数据索引更新单元704根据消息集合更新备份索引中的待更新元数据,得到更新后的备份索引之前,采集各类计算机资源的当前占用率;
编码查询单元(未图示),用于在当前占用率均满足预设条件时,从预设映射关系中查询与消息集合中各消息匹配的数据编码;
数据确定单元(未图示),用于从备份索引中确定对应于数据编码的待更新元数据;
其中,预设映射关系用于表征待更新元数据与消息集合中各消息之间的映射关系。
可见,实施该可选的实施例,能够提供全量更新的兜底方案,可以将实时更新过程中出现的漏更新数据或出现更新错误的数据重新更新至索引中,保证数据更新的完整性。
在一个实施例中,基于前述方案,若当前占用率不满足预设条件,上述装置还包括:
循环检测单元(未图示),用于按照预设检测频率检测当前占用率是否满足预设条件,直到检测到当前占用率均满足预设条件为止;
或者,用于按照预设检测频率检测当前占用率是否满足预设条件,直到检测次数达到上限值且最后一次检测结果用于表示当前占用率不满足预设条件为止,输出用于提示用户排查设备的告警信息。
可见,实施该可选的实施例,能够在计算机资源的当前占用率较高时不进行元数据采集,以避免对源端设备造成较大的计算压力,进而可以避免对源端设备的使用寿命造成不良影响。
在一个实施例中,基于前述方案,在接收到元数据更新消息之前,上述装置还包括:
字段提取单元(未图示),用于获取技术源数据并根据技术源数据中数据的引擎信息提取一级字段;其中,一级字段的数量与引擎信息的种类一致;
字段提取单元,还用于根据数据的版本信息提取二级字段;其中,二级字段的数量与版本信息的种类一致;
字段提取单元,还用于根据数据中的字段和类型提取三级字段;
数据构建单元(未图示),用于根据一级字段、二级字段以及三级字段构建技术元数据。
可见,实施该可选的实施例,能够根据不同的插件收集不同数据引擎的数据,并且具备更高的自由度,可以在实现对于技术元数据的构建的基础上允许个性化定义元数据架构,使得元数据架构易于扩展,并且,还可以通过对于特殊类型数据源的抽象,使得本申请对于关系型数据和非关系型数据均可以实现数据采集。
在一个实施例中,基于前述方案,数据解析单元703,还用于根据标签解析规则将业务元数据解析为标签化数据结构;
上述装置还包括:
编码生成单元(未图示),用于生成与标签化数据结构对应的映射关系编码;
编码绑定单元(未图示),用于将对应于标签化数据结构的技术元数据与映射关系编码进行绑定,以通过映射关系编码关联技术元数据和业务元数据;其中,主数据索引包括映射关系编码。
可见,实施该可选的实施例,通过关联技术元数据和业务元数据,使得数仓分析人员能够通过业务元数据明确技术元数据的具体含义,还能够实现对于业务元数据的同步更新。
应当注意,尽管在上文详细描述中提及了元数据更新装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
示例性电子设备
在介绍了本申请示例性实施方式的方法、介质和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本申请的又一可选示例实施方式的元数据更新装置800。图8显示的元数据更新装置800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,元数据更新装置800以电子设备的形式表现。元数据更新装置800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法的描述部分中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1和图6中所示的各个步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括地址总线、控制总线和/或数据总线。
元数据更新装置800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与元数据更新装置800交互的设备通信,和/或与使得该元数据更新装置800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,元数据更新装置800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器860通过总线830与元数据更新装置800的其它模块通信。应当明白,尽管图中未示出,可以结合元数据更新装置800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本申请并不限于所发明的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (22)
1.一种元数据更新方法,其特征在于,包括:
当接收到元数据更新消息时,读取所述元数据更新消息中的版本信息和引擎信息;其中,所述版本信息和所述引擎信息用于表征所述元数据更新消息的来源;
从多种解析文件中选取与所述版本信息和所述引擎信息均匹配的目标解析文件;
通过所述目标解析文件解析所述元数据更新消息中的更新指令,得到解析结果;
若所述解析结果为用于表征指令语义的兼容对象,则响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新;其中,所述指令语义对应于所述更新指令。
2.根据权利要求1所述的方法,其特征在于,所述兼容对象还用于表征所述更新指令对应的指令语言,响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新之前,所述方法还包括:
若所述指令语言为数据库定义语言,则执行所述的响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新;
若所述指令语言为数据库操作语言,则忽略所述更新指令。
3.根据权利要求1所述的方法,其特征在于,响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新,包括:
若所述更新指令用于表示删除目标二级字段,则删除所述主数据索引中的所述目标二级字段;
若所述更新指令用于表示创建目标二级字段,则在所述主数据索引中创建所述目标二级字段;
若所述更新指令用于表示更新目标字段,则更新所述主数据索引中的所述目标字段。
4.根据权利要求1所述的方法,其特征在于,在接收到所述元数据更新消息之后,所述方法还包括:
将所述元数据更新消息存储于预设存储空间中;
在所述解析结果为所述兼容对象时,判定所述解析结果用于表示解析成功并删除所述预设存储空间中的所述元数据更新消息。
5.根据权利要求4所述的方法,其特征在于,若所述解析结果用于表示解析失败,所述方法还包括:
获取所述预设存储空间中包含所述元数据更新消息的消息集合;
根据所述消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;
将所述更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
6.根据权利要求5所述的方法,其特征在于,根据所述消息集合更新备份索引中的待更新元数据,得到更新后的备份索引之前,所述方法还包括:
采集各类计算机资源的当前占用率;
若所述当前占用率均满足预设条件,从预设映射关系中查询与所述消息集合中各消息匹配的数据编码;
从所述备份索引中确定对应于所述数据编码的所述待更新元数据;
其中,所述预设映射关系用于表征所述待更新元数据与所述消息集合中各消息之间的映射关系。
7.根据权利要求6所述的方法,其特征在于,若所述当前占用率不满足所述预设条件,所述方法还包括:
按照预设检测频率检测所述当前占用率是否满足所述预设条件,直到检测到所述当前占用率均满足所述预设条件为止;或者,
按照所述预设检测频率检测所述当前占用率是否满足所述预设条件,直到检测次数达到上限值且最后一次检测结果用于表示所述当前占用率不满足所述预设条件为止,输出用于提示用户排查设备的告警信息。
8.根据权利要求1所述的方法,其特征在于,所述元数据包括技术元数据和业务元数据;所述技术元数据至少包括一级字段、隶属所述一级字段的二级字段以及隶属所述二级字段的三级字段。
9.根据权利要求8所述的方法,其特征在于,在接收到元数据更新消息之前,所述方法还包括:
获取技术源数据并根据技术源数据中数据的引擎信息提取所述一级字段;其中,所述一级字段的数量与所述引擎信息的种类一致;
根据所述数据的版本信息提取所述二级字段;其中,所述二级字段的数量与所述版本信息的种类一致;
根据所述数据中的字段和类型提取所述三级字段;
根据所述一级字段、所述二级字段以及所述三级字段构建所述技术元数据。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据标签解析规则将所述业务元数据解析为标签化数据结构;
生成与所述标签化数据结构对应的映射关系编码;
将对应于所述标签化数据结构的技术元数据与所述映射关系编码进行绑定,以通过所述映射关系编码关联所述技术元数据和所述业务元数据;其中,所述主数据索引包括所述映射关系编码。
11.一种元数据更新装置,其特征在于,包括:
信息读取单元,用于当接收到元数据更新消息时,读取所述元数据更新消息中的版本信息和引擎信息;其中,所述版本信息和所述引擎信息用于表征所述元数据更新消息的来源;
解析文件选取单元,用于从多种解析文件中选取与所述版本信息和所述引擎信息均匹配的目标解析文件;
数据解析单元,用于通过所述目标解析文件解析所述元数据更新消息中的更新指令,得到解析结果;
数据索引更新单元,用于在所述解析结果为用于表征指令语义的兼容对象时,响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新;其中,所述指令语义对应于所述更新指令。
12.根据权利要求11所述的装置,其特征在于,所述兼容对象还用于表征所述更新指令对应的指令语言,所述数据索引更新单元,具体用于在响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新之前,若所述指令语言为数据库定义语言,则响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新;
所述装置还包括:
指令处理单元,用于在所述指令语言为数据库操作语言时,忽略所述更新指令。
13.根据权利要求11所述的装置,其特征在于,所述数据索引更新单元响应于所述更新指令根据所述指令语义对主数据索引中的元数据进行更新,包括:
若所述更新指令用于表示删除目标二级字段,则删除所述主数据索引中的所述目标二级字段;
若所述更新指令用于表示创建目标二级字段,则在所述主数据索引中创建所述目标二级字段;
若所述更新指令用于表示更新目标字段,则更新所述主数据索引中的所述目标字段。
14.根据权利要求11所述的装置,其特征在于,在接收到所述元数据更新消息之后,所述装置还包括:
消息存储单元,用于将所述元数据更新消息存储于预设存储空间中;
消息删除单元,用于在所述解析结果为所述兼容对象时,判定所述解析结果用于表示解析成功并删除所述预设存储空间中的所述元数据更新消息。
15.根据权利要求14所述的装置,其特征在于,若所述解析结果用于表示解析失败,所述装置还包括:
消息获取单元,用于获取所述预设存储空间中包含所述元数据更新消息的消息集合;
所述数据索引更新单元,还用于根据所述消息集合更新备份索引中的待更新元数据,得到更新后的备份索引;
主数据索引替换单元,用于将所述更新后的备份索引确定为新的主数据索引,将原来的主数据索引确定为新的备份索引。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
参数采集单元,用于所述数据索引更新单元根据所述消息集合更新备份索引中的待更新元数据,得到更新后的备份索引之前,采集各类计算机资源的当前占用率;
编码查询单元,用于在所述当前占用率均满足预设条件时,从预设映射关系中查询与所述消息集合中各消息匹配的数据编码;
数据确定单元,用于从所述备份索引中确定对应于所述数据编码的所述待更新元数据;
其中,所述预设映射关系用于表征所述待更新元数据与所述消息集合中各消息之间的映射关系。
17.根据权利要求16所述的装置,其特征在于,若所述当前占用率不满足所述预设条件,所述装置还包括:
循环检测单元,用于按照预设检测频率检测所述当前占用率是否满足所述预设条件,直到检测到所述当前占用率均满足所述预设条件为止;
或者,用于按照所述预设检测频率检测所述当前占用率是否满足所述预设条件,直到检测次数达到上限值且最后一次检测结果用于表示所述当前占用率不满足所述预设条件为止,输出用于提示用户排查设备的告警信息。
18.根据权利要求11所述的装置,其特征在于,所述元数据包括技术元数据和业务元数据;所述技术元数据至少包括一级字段、隶属所述一级字段的二级字段以及隶属所述二级字段的三级字段。
19.根据权利要求18所述的装置,其特征在于,在接收到元数据更新消息之前,所述装置还包括:
字段提取单元,用于获取技术源数据并根据技术源数据中数据的引擎信息提取所述一级字段;其中,所述一级字段的数量与所述引擎信息的种类一致;
所述字段提取单元,还用于根据所述数据的版本信息提取所述二级字段;其中,所述二级字段的数量与所述版本信息的种类一致;
所述字段提取单元,还用于根据所述数据中的字段和类型提取所述三级字段;
数据构建单元,用于根据所述一级字段、所述二级字段以及所述三级字段构建所述技术元数据。
20.根据权利要求18所述的装置,其特征在于,所述数据解析单元,还用于根据标签解析规则将所述业务元数据解析为标签化数据结构;
所述装置还包括:
编码生成单元,用于生成与所述标签化数据结构对应的映射关系编码;
编码绑定单元,用于将对应于所述标签化数据结构的技术元数据与所述映射关系编码进行绑定,以通过所述映射关系编码关联所述技术元数据和所述业务元数据;其中,所述主数据索引包括所述映射关系编码。
21.一种电子设备,其特征在于,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至10中任一项所述的元数据更新方法。
22.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的元数据更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110016523.5A CN112685433B (zh) | 2021-01-07 | 2021-01-07 | 元数据更新方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110016523.5A CN112685433B (zh) | 2021-01-07 | 2021-01-07 | 元数据更新方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685433A CN112685433A (zh) | 2021-04-20 |
CN112685433B true CN112685433B (zh) | 2022-08-05 |
Family
ID=75456122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110016523.5A Active CN112685433B (zh) | 2021-01-07 | 2021-01-07 | 元数据更新方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685433B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704322B (zh) * | 2021-08-17 | 2023-08-01 | 北京国电通网络技术有限公司 | 基于云边协同的数据采集方法、装置和介质 |
CN113868273B (zh) * | 2021-09-23 | 2022-10-04 | 北京百度网讯科技有限公司 | 元数据的快照方法及其装置 |
CN113868231B (zh) * | 2021-12-03 | 2022-03-18 | 南昌龙旗信息技术有限公司 | 数据结构的更新方法及装置 |
CN114153352A (zh) * | 2021-12-08 | 2022-03-08 | 中山大学 | 一种移动应用图形用户界面变更的识别方法、系统及装置 |
CN114372064B (zh) * | 2022-03-22 | 2022-07-12 | 飞狐信息技术(天津)有限公司 | 数据处理装置、方法、计算机可读介质及处理器 |
CN114924772B (zh) * | 2022-07-15 | 2022-10-25 | 浙江大华技术股份有限公司 | 一种算法包的更新方法及设备 |
CN115712623B (zh) * | 2022-11-22 | 2023-07-18 | 中国司法大数据研究院有限公司 | 一种基于捕获元数据变更的批量数据容错采集方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101722643B1 (ko) * | 2016-07-21 | 2017-04-05 | 한국과학기술정보연구원 | Rdd 관리 방법, rdd 관리 장치 및 rdd 관리 프로그램을 저장하는 저장매체 |
EP3588326A1 (en) * | 2018-06-26 | 2020-01-01 | Octeract Limited | Solving a deterministic global optimisation problem |
CN109408689B (zh) * | 2018-10-24 | 2020-11-24 | 北京金山云网络技术有限公司 | 数据获取方法、装置、系统及电子设备 |
CN110377568A (zh) * | 2019-07-26 | 2019-10-25 | 北京明略软件系统有限公司 | 一种元数据采集方法及装置 |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、系统和设备 |
CN111427966B (zh) * | 2020-06-10 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 数据库事务处理方法、装置及服务器 |
CN111752920A (zh) * | 2020-06-22 | 2020-10-09 | 杭州数澜科技有限公司 | 用于管理元数据的方法、系统及存储介质 |
-
2021
- 2021-01-07 CN CN202110016523.5A patent/CN112685433B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112685433A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685433B (zh) | 元数据更新方法、装置、电子设备及计算机可读存储介质 | |
US11755628B2 (en) | Data relationships storage platform | |
CN111258989B (zh) | 数据库迁移评估方法、装置、存储介质和计算机设备 | |
CN109034993B (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
US10324909B2 (en) | Omega names: name generation and derivation utilizing nested three or more attributes | |
US10572494B2 (en) | Bootstrapping the data lake and glossaries with ‘dataset joins’ metadata from existing application patterns | |
US8195692B2 (en) | System and method for managing semantic and syntactic metadata | |
CN103400579B (zh) | 一种语音识别系统和构建方法 | |
CN109800207B (zh) | 日志解析方法、装置、设备及计算机可读存储介质 | |
CN107203574B (zh) | 数据管理和数据分析的聚合 | |
US20110078203A1 (en) | System and method for application navigation | |
CN112070608B (zh) | 信息处理方法、装置、介质及电子设备 | |
JP2012524930A (ja) | データベース管理方法およびシステム | |
CN112948486A (zh) | 批量数据同步方法、系统及电子设备 | |
CN110941629A (zh) | 元数据处理方法、装置、设备及计算机可读存储介质 | |
CN113886485A (zh) | 数据处理方法、装置、电子设备、系统和存储介质 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN110895548A (zh) | 用于处理信息的方法和装置 | |
CN117171108A (zh) | 一种虚拟模型映射方法和系统 | |
CN116775488A (zh) | 异常数据确定方法、装置、设备、介质及产品 | |
CN116204540A (zh) | 操作日志记录方法、装置、设备及存储介质 | |
CN113672233B (zh) | 一种基于Redfish的服务器带外管理方法、装置及设备 | |
CN110740046B (zh) | 分析服务契约的方法和装置 | |
CN112131239A (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 |