论文部分内容阅读
随着互联网和物联网技术的高速发展,一个“信息爆炸”的时代已然来临。首先,在企业内部,部门之间存在各种分散的生产报表、财务报表、销售报表、.人力资源报表等各种类型的异构信息;其次,在公司外部,随着微博、‘社交网站、电子商务的兴起,每时每刻都会产生海量的、跟该公司密切相关的数据信息;最后,随着物联网技术的发展,大量不同种类的无线设备投入使用,数据的来源越来越多样化、复杂化,数据的存储格式越来越多样化,存储位置越来越离散化。对一个企业来讲,如何有效利用这些数据信息以及如何在海量的数据中,获取对企业的商业决策有利的信息,将直接关乎企业的生死存亡。多源异构数据聚合技术是解决上述问题的关键技术,而ETL(Extract, Transform and Load)技术,即数据的抽取、转换和加载,则是上述技术的典型代表。传统的ETL工具通常具有以下不足:集中式执行,无法有效处理分布式的海量数据;对硬件设备要求高、价格昂贵等。本文针对传统ETL工具的不足,设计了一种基于Hadoop的分布式ETL系统。在数据抽取阶段(E),本文设计了一种智能数据抽取器,可以根据用户指定数据源地址,智能地判断出数据源类型,从而针对不同的数据源类型采取不同的数据抽取策略;此外,该智能数据抽取器采用了一种差异数据抽取传输算法,能够只传输变化数据,从而大大提高了网络带宽的利用率。在数据转换阶段(T),针对多源异构数据聚合型作业大都为数据密集型作业这一特点,本文将经过优化的Hadoop系统设计为数据转换引擎;同时,为方便使用,设计了一种规则转换输入器,使得用户不仅可以使用MapReduce程序来定义数据转换规则,还可以使用简单的类SQL语句来定义。在数据装载阶段(L),本文设计了一种简单的数据加载器,可以方便、高效地将分布式文件系统中的数据批量加载到数据库或其他指定位置。