关键词:
数据仓库
ETL Hadoop
编译器
ANTLR
摘要:
数据仓库是为了改善传统数据库在企业管理和决策方面的缺陷而发展起来的一种为企业战略提供信息支持的数据平台。ETL (Extract, Transform, Load)技术为数据仓库中非常重要的一环,被用来从不同的数据源进行数据的抽取、净化、转换等操作,然后将规范化后的数据装入到数据仓库中。
随着互联网程度越来越高,企业中存储的数据也越来越多,传统的数据仓库越来越不能满足日益增长的数据存储、分析、挖掘等需求。而Hadoop技术的出现,使得大数据的存储与分析变的廉价而且易扩展。因此,如何将Hadoop无缝整合进企业数据处理过程是一个很重要的课题。
本文使用基于LL(*)文法的语言分析程序生成器ANTLR,实现了一个可以将一种广泛应用的ETL专有语言(Ab Initio DML)编译到Hadoop平台的编译器。其实现的原理是,利用Hadoop平台所提供的Hadoop Streaming接口,将现有的ETL程序编译到使用Hadoop Streaming接口处理HDFS程序的Python代码。这样既解决了大量已有业务代码的兼容性问题,又利用了Python语言的简洁与快速开发特性,在开发和维护上更方便。
本文的主要创新和贡献如下:
1.提出了一种将Hadoop平台融入现有ETL业务逻辑的方法,极大的提升了ETL业务所能处理的数据量与处理速度。
2.实现了一种将已有领域专有语言编译到另外一种高级语言的编译器,为今后其它可能的专有ETL语言的编译转换提供了基础框架。