数据湖和Hudi

1 数据湖

1.1 什么是数据湖?

  1. 是一个数据存储库,用来存储大量的原始数据;
  2. 是一种数据存储策略,并不与具体的某个技术框架关联,数据库、数据仓库也一样;
  3. 是专注于原始数据保真以及低成本长期存储的存储设计模式,相当于是对数据仓库的补充;
  4. 是用于长期存储数据容器的集合,通过数据湖可以大规模地捕获、加工、探索任何形式的原始数据;
  5. 通过使用一些低成本的技术,可以让下游设施更好地利用,下游设施包括像数据集市、数据仓库、机器学习模型等;

在这里插入图片描述

在这里插入图片描述
6. 数据仓库以分层的方式将数据存储在文件、文件夹中,而数据湖使用平面架构来存储数据;
7. 给每个数据元素分配唯一的标识符,并通过元数据标签来进行标注;
8. 数据湖越来越多用于描述任何的大型数据池,数据都是以原始数据方式存储,直到需要查询应用数据的时候才会开始分析数据需求和应用架构;当企业出现业务问题时,可以从数据湖中查询数据,然后分析业务对应的那一小部分数据集来解决业务问题;

1.2 数据湖的优点

  1. 提供不限数据类型的存储;
  2. 没有固定结构,所以更易于访问;
  3. 长期存储数据的成本低廉,数据湖可以安装在低成本硬件上,例如:在一般的X86机器上部署Hadoop;
  4. 非常灵活,允许使用多种处理、分析方式来让数据发挥价值,例如:数据分析、实时分析、机器学习以及SQL查询都可以;

1.3 数据湖 VS 数据仓库

1.3.1 本质区别

  1. 数据湖和数据仓库是存储大数据的两种不同策略;
  2. 最本质的区别是:数据仓库中存储的都是结构化数据,需要提前设计好模式(schema);而数据湖可以存储结构化和非结构化的数据,无法预先定义好结构;

1.3.2 存储位置

  1. 数据仓库要有结构,大部分都是基于关系型模型;
  2. 而数据湖通常位于分布式存储如Hadoop或类似的大数据存储中;

在这里插入图片描述

1.3.3 数据源

  1. 数据仓库的数据很多时候是从OLTP应用的结构化数据库中提取的,用于支持内部的业务部门(销售、市场、运营等)进行业务分析;
  2. 数据湖的数据来源可以是结构化的,也可以是非结构化的,例如:业务系统数据库、IOT设备、社交媒体、移动APP等;

1.3.4 用户

  1. 数据仓库主要是对业务系统对大量业务数据进行统计分析,所以会应用数据分析的部门是数据仓库的主要用户,例如:销售部、市场部、运营部、总裁办等;
  2. 数据湖中的数据都是原始数据,是未经整理的,更适合数据科学家,通过应用模型、技术发掘数据中的价值,去解决企业中的业务问题;

1.3.5 数据质量

  1. 数据仓库非常重视数据质量,数据都是经过处理的,像数据中台有很大一块是数据质量管理、数据资产管理等;
  2. 数据湖中等数据可靠性较差,这些数据可能是任意状态、任意形态的数据;

1.3.6 数据模式

  1. 数据仓库在数据写入前就要定义好模式(schema),例如:先建立模型、建立表结构,然后导入数据,我们称之为write-schema;
  2. 数据湖中的数据没有没有模式,直到用户要访问数据、使用数据才会建立schema,我们称之为read-schema;

在这里插入图片描述

1.3.7 敏捷扩展性

  1. 数据仓库的模式一旦建立,如果重新调整模式,往往代价很大,牵一发而动全身,所有相关的ETL程序可能都需要调整;
  2. 而数据湖非常灵活,可以根据需要重新配置结构或者模式;

1.3.8 应用

  1. 数据仓库一般用于做批处理报告、BI、可视化等;
  2. 数据湖主要用于机器学习、预测分析、数据探索和分析;

1.4 数据湖的构建

  1. 数据湖是一种用于数据存储的设计模式,但数据最终需要一种介质存储下来,我们可以使用Hadoop作为数据湖的物理存储引擎,或者使用AWS的S3作为存储引擎等;
  2. 架构数据湖时要注意的几点原则:1、可以加载各种源系统中的数据并存储;2、任意类型的数据都可以存储;3、数据以原始状态保存在数据湖中,几乎不需要做任何转换;4、数据可以根据应用、分析的需要,转换成适合分析的模式;
  3. 构建数据湖时,可以建立一些管理办法,例如:1、将数据进行合理分类,如按照数据类型分类、按照业务内容分类、按照应用场景分类等;2、为了方便数据湖的数据存取,提取定义好命名规则和固定的文件目录结构;3、建立数据访问标准,可以追踪到哪些用户正在访问数据;4、让数据目录可以被检索到;5、提供一些加密、监控、授权、警报等功能;

1.5 良好的数据湖应具备的特征

  1. 提供方便进行访问、操作的API接口,因为数据湖的应用场景很多、很灵活;
  2. 具备访问控制机制,数据的owner可以控制数据湖中数据的访问权限,并支持一些加密、网络安全等功能;
  3. 具备搜索和分类功能;
  4. 提供处理和分析层,数据分析师、数据科学家、机器学习算法工程师能够集中访问;

2 Apache Hudi

2.1 简介

Apache Hudi通过分布式文件系统——HDFS或云存储来提取、管理大型分析型数据集。

2.2 基础架构

在这里插入图片描述

  1. 通过Kafka、Sqoop、DeltaStreammer、Flink、Spark等,将数据提取到数据湖中进行存储,可以使用HDFS作为数据湖的数据存储;
  2. 可以基于HDFS构建Hudi的数据湖;
  3. 提供统一的访问Spark数据源的接口;
  4. 提供不同引擎的访问接口,例如:Spark、Presto、Hive、Impala、Aliyun DLA、AWS Redshift等;

2.3 功能

  1. 支持使用索引方式Upsert;
  2. 可以原子性的发布数据并支持回滚;
  3. 写入和查询使用快照进行隔离,保证数据的一致性;
  4. 可以使用Savepoint进行数据恢复;
  5. 支持基于统计数据管理文件大小和分布;
  6. 支持对基于行、列的数据进行异步压缩;
  7. 支持时间轴元数据进行数据血统追踪;
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellosc01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值