数据湖(Data Lake)是一个以原始格式存储数据的存储库或系统。它按原样存储数据,而无需事先对数据进行结构化处理。一个数据湖可以存储结构化数据(如关系型数据库中的表),半结构化数据(如CSV、日志、XML、JSON),非结构化数据(如电子邮件、文档、PDF)和二进制数据(如图形、音频、视频)。
数据湖是包含数据存储、数据处理、数据分析的一系列操作,集中存储、海量存储才能构成数据湖的基本要素之一,数据处理主要是在大数据里方便和快速查看想要的数据,数据分析是通过多种引擎处理,才能提供给我们统一的视图。
随着大数据技术的融合发展,数据湖不断演变,汇集了各种技术,包括数据仓库、实时和高速数据流技术、数据挖掘、深度学习、分布式存储和其他技术。逐渐发展成为一个可以存储所有结构化和非结构化任意规模数据,并可以运行不同类型的大数据工具,对数据进行大数据处理、实时分析和机器学习等操作的统一数据管理平台。
开源的数据湖平台和组件,总结数据湖的基本参考架构如下:
数据湖最核心的能力
1、数据接入
1-1、接入不同数据源,包括数据库中的表(关系型或者非关系型)、各种格式的文件(csv、json、文档等)、数据流、ETL工具(Kafka、Logstash、DataX等)转换后的数据、应用API获取的数据(如日志等);
1-2、自动生成元数据信息,确保进入数据湖的数据都有元数据;
1-3提供统一的接入方式,如统一的API或者接口
2、数据存储
数据湖存储的数据量巨大且来源多样,数据湖应该支持异构和多样的存储,如HDFS、HBase、Hive等
3、数据搜索
数据湖中拥有海量的数据,对于用户来说,明确知道数据湖中数据的位置,快速的查找到数据,是一个非常重要的功能
4、数据治理
4-1、自动提取元数据信息,并统一存储;
4-2、对元数据进标签和分类,建立统一的数据目录;
4-3、建立数据血缘,梳理上下游的脉络关系,有助于数据问题定位分析、数据变更影响范围评估、数据价值评估;
4-5、追踪数据时间旅行,提供不同版本的数据,便于进行数据回溯和分析;
5、数据质量
5-1、对于接入的数据质量管控,提供数据字段校验、数据完整性分析等功能;
5-2、监控数据处理任务,避免未执行完成任务生成不完备数据
6、安全管控
6-1、对数据的使用权限进行监管;
6-2、对敏感数据进行脱敏和加密;
7、数据探索
提供一系列数据分析工具,便于用户对数据湖的数据进行自助数据探索,包括:
- 联合分析;
- 交互式大数据SQL分析;
- 机器学习
- BI报表
- ......
各大公司对数据湖的支持如下:
AWS 数据湖分析组件
微软数据湖架构
阿里数据oneData架构
数据湖的优势
- 轻松地收集和摄入数据:企业中的所有数据源都可以送入数据湖中。通过数据分析工具可以轻松地获得整个无孤岛的数据集合。此外,数据湖可以用多种文件格式存储多种格式的数据,比如文本、音频、视频和图像。这种灵活性简化了旧有数据存储的集成。
- 支持实时数据源:数据湖支持对实时和高速数据流执行 ETL 功能,这有助于将来自 IoT 设备的传感器数据与其他数据源一起融合到数据湖中。
- 更快地准备数据:分析师和数据科学家不需要花时间直接访问多个来源,可以更轻松地搜索、查找和访问数据,这加速了数据准备和重用流程。数据湖还会跟踪和确认数据血统,这有助于确保数据值得信任,还会快速生成可用于数据驱动的决策的 BI。
- 更好的可扩展性和敏捷性:数据湖可以利用分布式文件系统来存储数据,因此具有很高的扩展能力。开源技术的使用还降低了存储成本。数据湖的结构没那么严格,因此天生具有更高的灵活性,从而提高了敏捷性。可以在数据湖内创建沙箱来开发和测试新的分析模型。
- 具有人工智能的高级分析:访问原始数据,创建沙箱的能力,以及重新配置的灵活性,这些使得数据湖成为了一个快速开发和使用高级分析模型的强大平台。数据湖非常适合使用机器学习和深度学习来执行各种任务,比如数据挖掘和数据分析,以及提取非结构化数据