CN104899314B - 一种数据仓库的血统分析方法和装置 - Google Patents
一种数据仓库的血统分析方法和装置 Download PDFInfo
- Publication number
- CN104899314B CN104899314B CN201510337139.XA CN201510337139A CN104899314B CN 104899314 B CN104899314 B CN 104899314B CN 201510337139 A CN201510337139 A CN 201510337139A CN 104899314 B CN104899314 B CN 104899314B
- Authority
- CN
- China
- Prior art keywords
- substatement
- node
- data
- syntax tree
- effective
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据仓库的血统分析方法和装置,其中,方法包括:对于当前执行的HIVE SQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。采用本发明,可以提高血统分析数据的应用价值,有利于用户的数据回溯以及分析数据仓库上游元数据对下游的影响。
Description
技术领域
本发明涉及数据仓库技术,特别是涉及一种数据仓库的血统分析方法和装置。
背景技术
随着互联网大爆发以来,面对日益增长的海量数据,用以支撑主流搜索引擎公司,电子商务,社交网站的传统数据仓库(Data Warehouse,DW)系统早已不堪重负了,而构建于分布式系统基础架构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、对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。
本步骤用于遍历各有效子语句对应的每个抽象语法树中的各节点,以便收集血统分析所需要的各种信息,即在各节点上采用相应的节点数据。
较佳地,所述节点数据可以包括下述内容:
表节点的元数据信息(如表节点类型是临时别名表还是实体表、字段信息(包括内查询输入字段,查询输出字段及表达式,输出字段的最底层来源,关联的条件))、表节点的查询约束条件(如表的过滤条件)、本节点与兄弟节点的协作关系(如关联表的信息)以及本节点和父节点的查询关系。
具体地,所述元数据信息包括表的物理结构、类型和分区信息。
这里,通过在每个节点上采集节点数据,可以获得表、字段的来龙去脉和加工明细信息,但是,这些节点数据还不够全面,不能支持用户的数据回溯,需要再将这些数据与相应的数据仓库的元数据(即表属于的生产库、ETL过程任务信息以及下游报表系统),这样,便可获得完整的血统数据链。
ETL(Extract-Transform-Load)过程,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。
采用上述血统分析方法,所得到的血统分析数据,将有利于快速回溯数据的加工处理过程和准确定位数据的最底层来源;能准确分析上游元数据对下游的影响,更重要的是提升了数据质量,随之提升了报表和分析结果的可信度。
图2为与上述方法相对应的数据仓库的血统分析装置结构示意图,如图所示,该装置包括:
拆分单元,用于对于当前执行的蜂巢结构化查询语言HQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句。
语法树生成单元,用于对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树。
采集关联单元,用于对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。
较佳地,所述拆分单元,进一步用于对所述HQL语句段进行拆分,得到相应的子语句集合,所述集合中的每个子语句为最小的可执行语句;删除所述子语句集合中对数据仓库有物理操作的语句;将所述HQL语句段所属程序的信息,与当前所述子语句集合中的每个子语句进行关联;将所述子语句集合中的子语句作为所述有效子语句。
较佳地,所述语法树生成单元,进一步用于采用Antlr语法分析工具,进行所述语法、词法和语义分析,生成相应的抽象语法树。
较佳地,所述节点数据包括:表节点的元数据信息、表节点的查询约束条件、本节点与兄弟节点的协作关系以及本节点和父节点的查询关系。
较佳地,所述元数据信息包括表的物理结构、类型和分区信息。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据仓库的血统分析方法,其特征在于,包括:
对于当前执行的蜂巢结构化查询语言HQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;
对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;
对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存;
所述拆分预处理包括:
对所述HQL语句段进行拆分,得到相应的子语句集合,所述集合中的每个子语句为最小的可执行语句;
删除所述子语句集合中对数据仓库有物理操作的语句;
将所述HQL语句段所属程序的信息,与当前所述子语句集合中的每个子语句进行关联;
将所述子语句集合中的子语句作为所述有效子语句。
2.根据权利要求1所述的方法,其特征在于,采用Antlr语法分析工具,进行所述语法、词法和语义分析,生成相应的抽象语法树。
3.根据权利要求1所述的方法,其特征在于,所述节点数据包括:
表节点的元数据信息、表节点的查询约束条件、本节点与兄弟节点的协作关系以及本节点和父节点的查询关系。
4.根据权利要求3所述的方法,其特征在于,所述元数据信息包括表的物理结构、类型和分区信息。
5.一种数据仓库的血统分析装置,其特征在于,包括:
拆分单元,用于对于当前执行的蜂巢结构化查询语言HQL语句段,进行拆分预处理,得到一组有效子语句,每个所述有效子语句为最小的可执行语句;所述拆分预处理包括:对所述HQL语句段进行拆分,得到相应的子语句集合,所述集合中的每个子语句为最小的可执行语句;删除所述子语句集合中对数据仓库有物理操作的语句;将所述HQL语句段所属程序的信息,与当前所述子语句集合中的每个子语句进行关联;将所述子语句集合中的子语句作为所述有效子语句;
语法树生成单元,用于对于每个所述有效子语句,进行语法、词法和语义分析,生成相应的抽象语法树;
采集关联单元,用于对于每个抽象语法树,遍历该抽象语法树中的每个节点,在每个节点采集相应的节点数据,并将所述节点数据与相应的数据仓库元数据关联后保存。
6.根据权利要求5所述的装置,其特征在于,所述语法树生成单元,进一步用于采用Antlr语法分析工具,进行所述语法、词法和语义分析,生成相应的抽象语法树。
7.根据权利要求5所述的装置,其特征在于,所述节点数据包括:表节点的元数据信息、表节点的查询约束条件、本节点与兄弟节点的协作关系以及本节点和父节点的查询关系。
8.根据权利要求5所述的装置,其特征在于,所述元数据信息包括表的物理结构、类型和分区信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510337139.XA CN104899314B (zh) | 2015-06-17 | 2015-06-17 | 一种数据仓库的血统分析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510337139.XA CN104899314B (zh) | 2015-06-17 | 2015-06-17 | 一种数据仓库的血统分析方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899314A CN104899314A (zh) | 2015-09-09 |
CN104899314B true CN104899314B (zh) | 2018-10-19 |
Family
ID=54031976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510337139.XA Active CN104899314B (zh) | 2015-06-17 | 2015-06-17 | 一种数据仓库的血统分析方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899314B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582660A (zh) * | 2018-12-06 | 2019-04-05 | 深圳前海微众银行股份有限公司 | 数据血缘分析方法、装置、设备、系统及可读存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180053B (zh) * | 2016-03-11 | 2020-10-20 | 中国移动通信集团河北有限公司 | 一种数据仓库优化方法和装置 |
CN105893603B (zh) * | 2016-04-22 | 2019-06-04 | 广东精点数据科技股份有限公司 | 一种基于etl的字段级别血统分析方法及装置 |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
CN107545030B (zh) * | 2017-07-17 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 数据血缘关系的处理方法、装置及设备 |
CN107644073A (zh) * | 2017-09-18 | 2018-01-30 | 广东中标数据科技股份有限公司 | 一种基于深度优先遍历的字段血缘分析方法、系统及装置 |
CN107832391B (zh) * | 2017-10-31 | 2020-08-18 | 长城计算机软件与系统有限公司 | 一种数据查询方法和系统 |
CN110147396B (zh) * | 2017-11-08 | 2021-08-31 | 中移(苏州)软件技术有限公司 | 一种映射关系生成方法及装置 |
CN109614432B (zh) * | 2018-12-05 | 2021-01-05 | 北京百分点信息科技有限公司 | 一种基于语法分析的获取数据血缘关系的系统及方法 |
CN109710703A (zh) * | 2019-01-03 | 2019-05-03 | 北京顺丰同城科技有限公司 | 一种血缘关系网络的生成方法及装置 |
CN112579705B (zh) * | 2019-09-27 | 2024-06-21 | 北京国双科技有限公司 | 元数据采集方法、装置、计算机设备和存储介质 |
CN111078729B (zh) * | 2019-12-19 | 2023-04-28 | 医渡云(北京)技术有限公司 | 医疗数据溯源方法、装置、系统、存储介质以及电子设备 |
CN111159203B (zh) * | 2019-12-31 | 2023-10-31 | 中科曙光国际信息产业有限公司 | 一种数据关联分析的方法、平台、电子设备及存储介质 |
CN111813796B (zh) * | 2020-06-15 | 2022-11-18 | 北京邮电大学 | 基于Hive数据仓库的数据列级血缘处理系统及方法 |
CN112035416A (zh) * | 2020-08-31 | 2020-12-04 | 北京嘀嘀无限科技发展有限公司 | 数据血缘分析方法、装置、电子设备及存储介质 |
CN113467785B (zh) * | 2021-07-19 | 2023-02-28 | 上海红阵信息科技有限公司 | 一种拟态数据库的sql转译方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399963A (zh) * | 2013-08-26 | 2013-11-20 | 苏州国云数据科技有限公司 | 基于Hive的优化器优化方法 |
CN104239572A (zh) * | 2014-09-30 | 2014-12-24 | 普元信息技术股份有限公司 | 基于分布式缓存实现元数据分析的系统及方法 |
CN104424269A (zh) * | 2013-08-30 | 2015-03-18 | 中国电信股份有限公司 | 数据血统分析方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519695B2 (en) * | 2013-04-16 | 2016-12-13 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
-
2015
- 2015-06-17 CN CN201510337139.XA patent/CN104899314B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399963A (zh) * | 2013-08-26 | 2013-11-20 | 苏州国云数据科技有限公司 | 基于Hive的优化器优化方法 |
CN104424269A (zh) * | 2013-08-30 | 2015-03-18 | 中国电信股份有限公司 | 数据血统分析方法与装置 |
CN104239572A (zh) * | 2014-09-30 | 2014-12-24 | 普元信息技术股份有限公司 | 基于分布式缓存实现元数据分析的系统及方法 |
Non-Patent Citations (1)
Title |
---|
HiveSQL解析过程详解;木叶丸;《http://blog.csdn.net/mango_song/article/details/31744825》;20140212;第4页倒数第2段到第5页第2段,第9页第2段 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582660A (zh) * | 2018-12-06 | 2019-04-05 | 深圳前海微众银行股份有限公司 | 数据血缘分析方法、装置、设备、系统及可读存储介质 |
CN109582660B (zh) * | 2018-12-06 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 数据血缘分析方法、装置、设备、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104899314A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899314B (zh) | 一种数据仓库的血统分析方法和装置 | |
Taleb et al. | Big data pre-processing: A quality framework | |
Zheng et al. | An initial study of predictive machine learning analytics on large volumes of historical data for power system applications | |
CN108959433A (zh) | 一种从软件项目数据中提取知识图谱并问答的方法与系统 | |
CN107301205A (zh) | 一种大数据分布式实时查询方法及系统 | |
CN101464897A (zh) | 一种词匹配及信息查询方法及装置 | |
Rousseau | A view on big data and its relation to Informetrics | |
Kulcu et al. | A survey on semantic web and big data technologies for social network analysis | |
CN104572709A (zh) | 用于企业创新体系的数据挖掘系统 | |
CN107766413B (zh) | 一种实时数据流聚合查询的实现方法 | |
CN112286957B (zh) | 基于结构化查询语言的bi系统的api应用方法及系统 | |
Tu et al. | IoT streaming data integration from multiple sources | |
CN109815254A (zh) | 基于大数据的跨地域任务调度方法及系统 | |
CN109739882B (zh) | 一种基于Presto和Elasticsearch的大数据查询优化方法 | |
US10127617B2 (en) | System for analyzing social media data and method of analyzing social media data using the same | |
CN103605607B (zh) | 一种软件复杂度分析系统及方法 | |
CN107945092A (zh) | 用于审计领域的大数据综合管理方法及系统 | |
CN109213826A (zh) | 数据处理方法和设备 | |
Wieder et al. | Toward data lakes as central building blocks for data management and analysis | |
Xu et al. | A GitHub-based data collection method for software defect prediction | |
CN115358481A (zh) | 一种企业外迁预警识别的方法、系统及装置 | |
KR20150023973A (ko) | 소셜 네트워크 정보 수집 및 분석 시스템 | |
Yadav et al. | The improved effectual data processing in big data executing map reduce frame work | |
Calvanese et al. | Towards Practical OBDA with Temporal Ontologies: (Position Paper) | |
Wang et al. | A government policy analysis platform based on knowledge graph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |