一种数据仓库的血统分析方法和装置制造方法及图纸

技术编号:12032373 阅读:296 留言:0更新日期:2015-09-10 19:51
本申请公开了一种数据仓库的血统分析方法和装置,其中,方法包括:对于当前执行的HIVE SQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。采用本发明专利技术,可以提高血统分析数据的应用价值,有利于用户的数据回溯以及分析数据仓库上游元数据对下游的影响。

【技术实现步骤摘要】

本专利技术涉及数据仓库技术,特别是涉及一种数据仓库的血统分析方法和装置
技术介绍
随着互联网大爆发以来,面对日益增长的海量数据,用以支撑主流搜索引擎公司,电子商务,社交网站的传统数据仓库(Data Warehouse,Dff)系统早已不堪重负了,而构建于分布式系统基础架构Hadoop集群之上的数据仓库工具Hive的出现恰逢其时,已成为实现大数据时代分布式数据仓库的福音。近年来数据仓库的数据质量问题已经严重影响了商务智能的应用能力。基础数据的正确性、真实性直接影响到报表和分析结果的可信度,因此需要快速回溯数据的来龙去脉和精确追踪数据的最底层来源。有时需要准确评估仓库上游数据变更,对下游应用的影响,有时需要分析表及字段的重要程度或无关程度,而这一切都需要通过分析数据仓库的元数据给出答案。这个领域就是数据仓库的血统分析。数据仓库的血统分析是建立在仓库的元数据基础上的,在整个数据仓库中元数据的范畴是极其广泛,从底层到应用层都有其用武之地。具体地,在数据来源方面,需要包含源系统的库表信息等;在数据采集层,元数据需要清楚地记录数据仓库的映射关系、ETL程序信息、数据转换清洗的规则等;在数据存储和基础层,元数据需要清楚描述DW数据的物理结构、数据字典、资源目录等详细信息;在应用服务层,元数据则需要包含数据分析模型、KPI关键业务指标等。通过数据血统分析,可以获得数据在数据流中的演化过程,包括数据的起源和处理这些数据的所有后继过程。实现数据仓库的血统分析主要包括数据血统的计算、存储和查询等。现有成熟的血统分析工具都是基于传统数据仓库的特定商业实现,还没有基于Hive开源数据仓库的血统分析工具。而现有的关系型数据库的血统分析开源方案通常是采用关键词解析的方式实现,即通过提取结构化查询语言(SQL)语法关键词前后的有用信息,得到相应的数据来源表和数据目标表信息。上述现有的血统分析方案,只能分析到数据的表级粒度,如此,关键型细节将会缺失。例如,表的元数据信息、表的查询约束条件等都无法获知,这样,就无法利用血统分析结果满足用户的数据回溯需要以及准确分析上游元数据对下游的影响,从而导致由于分析粒度太粗所致的分析结果实用价值不高的问题。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种数据仓库的血统分析方法和装置,可以提高血统分析数据的应用价值,有利于用户的数据回溯以及分析数据仓库上游元数据对下游数据应用环节的影响。为了达到上述目的,本专利技术提出的技术方案为:一种数据仓库的血统分析方法,包括:对于当前执行的蜂巢结构化查询语言HQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。一种数据仓库的血统分析装置,包括:拆分单元,用于对于当前执行的蜂巢结构化查询语言HQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;语法树生成单元,用于对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;采集关联单元,用于对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。综上所述,本专利技术提出的数据仓库的血统分析方法和装置,通过将HQL语句段进行拆分,细化分析粒度,可以采集到更多有用数据,避免关键信息的丢失,从而可以提高血统分析数据的应用价值,有利于用户的数据回溯以及分析数据仓库上游元数据对下游数据应用环节的影响。【附图说明】图1为本专利技术实施例一的方法流程示意图;图2为本专利技术实施例一的装置结构示意图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本专利技术作进一步地详细描述。本专利技术的核心思想是:先将HQL语句段进行拆分,然后再对拆分后的每个单元分别进行分析,并生成相应的抽象语法树,最后再基于语法树采集相应的数据信息。如此,通过细化血统分析的数据粒度,可以获得更多有用数据,避免关键信息的丢失,从而可以提高血统分析数据的应用价值,有利于用户的数据回溯以及分析上游元数据对下游的影响。一种数据仓库的血统分析方法,包括:步骤101、对于当前执行的蜂巢结构化查询语言(HIVE SQL,HQL)语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句。本步骤,用于对每个HQL语句段进行拆分预处理,得到若干个有效的最小可执行语句,以便在后续步骤中,分别针对各子语句进行独立分析。如此,通过细化血统分析的粒度,可以避免关键信息的丢失。较佳地,可以采用下述步骤进行所述拆分预处理。步骤1011、对所述HQL语句段进行拆分,得到相应的子语句集合,所述集合中的每个子语句为最小的可执行语句。步骤1012、删除所述子语句集合中对数据仓库有物理操作的语句。本步骤用于对子语句集合中的语句进行筛选,去除其中对数据仓库有物理操作的语句,如用于添加分区,删除分区,创建表,删除表,导出数据至本地等语句,以避免改变数据仓库中的数据。具体的对数据仓库有物理操作的语句的识别,为本领域技术人员所掌握,在此不再赘述。步骤1013、将所述HQL语句段所属程序的信息,与当前所述子语句集合中的每个子语句进行关联。本步骤中,为了便于进行全链分析,需要将HQL语句段所在的程序信息与其各子语句进行关联。步骤1014、将所述子语句集合中的子语句作为所述有效子语句。步骤102、对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树。本步骤用于生成各有效子语句对应的抽象语法树,以便在步骤103中实现数据的采集。本步骤可采用现有语法分析工具实现。较佳地,可以采用基于Java开发的功能强大的语言识别工具:Antlr语法分析工具,来进行所述语法、词法和语义分析,生成相应的抽象语法树。步骤103、对于每个抽象语法树,遍历该抽象语法树中的每当前第1页1 2 本文档来自技高网
...

【技术保护点】
一种数据仓库的血统分析方法,其特征在于,包括:对于当前执行的蜂巢结构化查询语言HQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘志祖张军牟一超张凯曾卓豪
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1