Hadoop是实现数据湖最常用的技术手段,目前是最理想的选择,Hadoop生态系统提供批处理、实时处理引擎,还提供海量数据存储能力,数据处理架构如下图:
目前常见的两种使用方式:
1) 第一种方式是将Hadoop作为ETL工具,并且数据备份或者冷数据存储其PB级别数据,在Hadoop中数据冗余而且较容易恢复,如下图所示:
MapReduce及Spark Engine可以用来处理非结构化数据,在Hadoop中数据模型不严格,当读取时指定Schema,但是数据仓库系统中数据模型是在写入时就预先定义。使用Hadoop不仅能够处理非结构化数目,而且使用Hadoop分布式计算能力可以提高ETL的处理能力。
2) 第二种方式是Apache Hadoop替代企业数据仓库,目前Hadoop生态已经足够成熟,提供多种数据处理引擎,包括批处理、流处理等,能够提供交互式查询能力,而且Hadoop还提供大量存储能力。如下图,使用Hadoop生态系统中的工具实现Data Lake:
该系统使用非结构化数据的处理能力、海量数据存储和分布式计算工具提供数据仓库和数据集市需要的交互能力。