文章目录
一、前言
二、现代数据架构
三、数据湖架构参考
数据湖架构-流程
数据湖架构-集成
企业数据湖架构
数据湖最核心的能力
四、数据湖的作用
1、数据集成能力(数据接入)
2、数据存储
3、数据搜索
4、数据治理
5、数据质量
6、安全管控
7、自助数据发现
五、数据湖与数据仓库的区别
六、数据湖成熟度的划分
七、数据湖的优势
一、前言
数据湖的概念最早是2011年提出来的,最初数据湖是数据仓库的补充,是为了解决数据仓库漫长的开发周期,高昂的开发、维护成本,细节数据丢失等问题出现的。
数据湖大多是相对于传统基于RDBMS的数据仓库,而从2011年前后,也就是数据湖概念出现的时候,很多数据仓库逐渐迁移到以Hadoop为基础的技术栈上,而且除了结构化数据,半结构化、非结构数据也逐渐的存储到数据仓库中,并提供此类服务。这样的数据仓库,已经具有了数据湖的部分功能。
关于数据湖的定义,维基百科上是这样讲的:数据湖(Data Lake)是一个以原始格式存储数据的存储库或系统。它按原样存储数据,而无需事先对数据进行结构化处理。一个数据湖可以存储结构化数据(如关系型数据库中的表),半结构化数据(如CSV、日志、XML、JSON),非结构化数据(如电子邮件、文档、PDF)和二进制数据(如图形、音频、视频)。
但是随着大数据技术的融合发展,数据湖不断演变,汇集了各种技术,包括数据仓库、实时和高速数据流技术、数据挖掘、深度学习、分布式存储和其他技术。逐渐发展成为一个可以存储所有结构化和非结构化任意规模数据,并可以运行不同类型的大数据工具,对数据进行大数据处理、实时分析和机器学习等操作的统一数据管理平台。
二、现代数据架构
三、数据湖架构参考
结合目前开源的数据湖平台和组件,总结数据湖的基本参考架构如下:
数据湖架构-流程
数据湖架构-集成
企业数据湖架构
数据湖最核心的能力
四、数据湖的作用
1、数据集成能力(数据接入)
1)接入不同数据源,包括数据库中的表(关系型或者非关系型)、各种格式的文件(csv、json、文档等)、数据流、ETL工具(Kafka、Logstash、DataX等)转换后的数据、应用API获取的数据(如日志等);
2)自动生成元数据信息,确保进入数据湖的数据都有元数据;
3)提供统一的接入方式,如统一的API或者接口;
2、数据存储
数据湖存储的数据量巨大且来源多样,数据湖应该支持异构和多样的存储,如HDFS、HBase、Hive等;
3、数据搜索
数据湖中拥有海量的数据,对于用户来说,明确知道数据湖中数据的位置,快速的查找到数据,是一个非常重要的功能。
4、数据治理
1)自动提取元数据信息,并统一存储;
2)对元数据进标签和分类,建立统一的数据目录;
3)建立数据血缘,梳理上下游的脉络关系,有助于数据问题定位分析、数据变更影响范围评估、数据价值评估;
4)跟踪数据时间旅行,提供不同版本的数据,便于进行数据回溯和分析;
5、数据质量
1)对于接入的数据质量管控,提供数据字段校验、数据完整性分析等功能;
2)监控数据处理任务,避免未执行完成任务生成不完备数据;
6、安全管控
1)对数据的使用权限进行监管;
2)对敏感数据进行脱敏和加密;
7、自助数据发现
提供一系列数据分析工具,便于用户对数据湖的数据进行自助数据发现,包括:
联合分析;
交互式大数据SQL分析;
机器学习
BI报表
…
五、数据湖与数据仓库的区别
数据仓库是一种具有正式架构的成熟的、安全的技术。它们存储经过全面处理的结构化数据,以便完成数据治理流程。数据仓库将数据组合为一种聚合、摘要形式,以在企业范围内使用,并在执行数据写入操作时写入元数据和模式定义。数据仓库通常拥有固定的配置;它们是高度结构化的,因此不太灵活和敏捷。数据仓库成本与在存储前处理所有数据相关,而且大容量存储的费用相对较高。
相比较而言,数据湖是较新的技术,拥有不断演变的架构。它是一个集中式存储库,允许以任意规模存储所有结构化和非结构化数据。根据定义,数据湖不会接受数据治理,但专家们都认为良好的数据管理对预防数据湖转变为数据沼泽不可或缺。数据湖在数据读取期间创建模式。与数据仓库相比,数据湖缺乏结构性,而且更灵活;它们还提供了更高的敏捷性。在检索数据之前无需执行任何处理,而且数据湖特意使用了便宜的存储。
根据要求,典型的组织将需要数据仓库和数据湖,因为它们可满足不同的需求和使用案例。
数据仓库本质上其实就是一个优化的数据库,用于分析来自事务系统和业务线应用程序的关系数据。事先定义数据结构和 Schema 以优化快速 SQL 查询,其中结果通常用于操作报告和分析。数据经过了清理、丰富和转换,因此可以充当用户可信任的“单一信息源”。
数据湖有所不同,因为它存储来自业务线应用程序的关系数据,以及来自移动应用程序、IoT 设备和社交媒体的非关系数据。捕获数据时,未定义数据结构或 Schema。这意味着您可以存储所有数据,而不需要精心设计也无需知道将来您可能需要哪些问题的答案。可以对数据使用不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习)来获得见解。
随着使用数据仓库的组织看到数据湖的优势,他们正在改进其仓库以包括数据湖,并启用各种查询功能、数据科学使用案例和用于发现新信息模型的高级功能。
总结:
1)数仓中保存的都是结构化处理后的数据,而数据湖中可以保存原始数据也可以保存结构化处理后的数据,保证用户能获取到各个阶段的数据。因为数据的价值跟不同的业务和用户强相关,有可能对于A用户没有意义的数据,但是对于B用户来说意义巨大,所以都需要保存在数据湖中。
2)数据湖能够支持各种用户使用,包括数据科学家这类专业的数据人员。
3) 数据仓库的数据进入这个池之前是预先分类的,这可以指导其后面如何进行数据的分析。但在大数据时代,这些都是素材而已,你根本不知道以后如何用它,而数据湖给后面的数据分析带来了更大的弹性。因此,这个放大数据的仓库,专家建议叫数据湖,以区别于数据仓库。
六、数据湖成熟度的划分
- 第一级是在没有用Hadoop之前,这个时候各个大型应用都有自己的数据库,也有自己的数据仓库来做数据分析。
- 第二级是企业引入了Hadoop。企业的应用数据和Hadoop有交互。
- 第三级是数据湖的成长期。新的系统直接支持Hadoop,Hadoop成为缺省配置,而数据仓库只在某些特定场景下使用,外部的数据也引入数据湖中。
- 第四阶段就是数据湖和应用云阶段。Hadoop大量采用,并且加强其可靠性、安全性。
看来,近两年数据湖是构造企业差异化竞争的很好思路,而Hadoop是目前流行的实现手段。
但是,之前为什么用Hadoop呢?因为在当前,Hadoop是实现数据湖的最常用技术手段,但以后也许有更好的方式。也就是说,数据湖是一个概念,而Hadoop是实现这个概念的技术手段。
七、数据湖的优势
- 轻松地收集和摄入数据:企业中的所有数据源都可以送入数据湖中。因此,数据湖成为了存储在企业内部服务器或云服务器中的结构化和非结构化数据的无缝访问点。通过数据分析工具可以轻松地获得整个无孤岛的数据集合。此外,数据湖可以用多种文件格式存储多种格式的数据,比如文本、音频、视频和图像。这种灵活性简化了旧有数据存储的集成。
- 支持实时数据源:数据湖支持对实时和高速数据流执行 ETL 功能,这有助于将来自 IoT 设备的传感器数据与其他数据源一起融合到数据湖中。
- 更快地准备数据:分析师和数据科学家不需要花时间直接访问多个来源,可以更轻松地搜索、查找和访问数据,这加速了数据准备和重用流程。数据湖还会跟踪和确认数据血统,这有助于确保数据值得信任,还会快速生成可用于数据驱动的决策的 BI。
- 更好的可扩展性和敏捷性:数据湖可以利用分布式文件系统来存储数据,因此具有很高的扩展能力。开源技术的使用还降低了存储成本。数据湖的结构没那么严格,因此天生具有更高的灵活性,从而提高了敏捷性。数据科学家可以在数据湖内创建沙箱来开发和测试新的分析模型。
- 具有人工智能的高级分析:访问原始数据,创建沙箱的能力,以及重新配置的灵活性,这些使得数据湖成为了一个快速开发和使用高级分析模型的强大平台。数据湖非常适合使用机器学习和深度学习来执行各种任务,比如数据挖掘和数据分析,以及提取非结构化数据。