将数据湖讲明白了.docx
《将数据湖讲明白了.docx》由会员分享,可在线阅读,更多相关《将数据湖讲明白了.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、作为全局数据汇总及处理的核心功能,数据湖在数据中台建设中必不可少。 那么它与数据仓库、数据中台是什么关系?下列图显示了一个典型的从数据采集到数据湖、数据仓库及数据集市,最后为 数据应用提供服务的流程。可以看到,除了为数据仓库提供原始数据之外, 数据湖也可以直接为上层的数据应用提供服务。与数据湖不同,数据仓库是 针对OLAP需求建设的数据库,可以分析来自交易系统或不同业务部门的结 构化数据。数据仓库中的数据由原始数据经过清理、填充和转换后按照核心 业务逻辑组织生成。数据仓库一般必须预先定义好数据库Schema,重点是实 现更快的SQL驱动的深度报告和分析。数据源数据库日志文件Kafka其他数据源
2、数据湖贴源层结构化数据将吉构化数据三修吉构化数据数据仓库数据集市事实表维度表A集市表数据服务数据应用 可视化报表 交互式编程数据服务大屏展示其他应用从数据采集到提供数据服务的流程图01数据湖的起源与作用 案)和ISO等标准和规范。对于很多企业而言,数据合规是很重要的工 作,数据合规一旦出问题,可能导致巨额罚款或者数据泄露,损害企业的信 誉。数据湖的出现主要是为了解决存储全域原始数据的问题。在捕获来自业务应 用程序、移动应用程序、IoT设备和互联网的结构化和非结构化数据时,实际 上并没有预先定义好数据结构,这意味着可以先存储数据而无须进行精心设 计,也无须明确要进行什么分析,由数据科学家和数据工
3、程师在后续工作中 探索和尝试。这个改动极大推动了大数据的开展,早期大数据系统的一大吸 引力是能够存储大量日志数据供后期探索,很多大数据应用就是在大数据系 统将数据采集上来之后才出现的。为什么一定要单独建立数据湖呢?要回答这个问题,我们先来了解数据湖的 一个重要组成局部一ODS (Operating Data Store,运营数据存储)。在20世 纪90年代数据仓库刚出来的时候,就已经有ODS 了。可以说ODS是数据湖 的先行者,因为ODS和数据湖有两个共同的重要特征:不加转换的原始数 据,可以进行不预先设置的分析。ODS 一般用来存储业务运营数据,也就是 OLTP (联机事务处理)数据的快照和
4、历史,而数据仓库一般用来存储分析数 据,对应OLAP (联机分析处理)需求。下表列出了 OLTP和OLAP的一些 区别。OLTP和OLAP的区另场景i股为高并发、低时延i股为低并发、大吞吐量用户操作人员、一线管理人员分析决策人员、高级管理人员功能用于存储和管理日常操作的数 据.如当前应用的最新日常操作 数据用于分析日常操作的数据,如 历史的、聚集的、多维的、集成 统一的数据DB设计面向事务,主要处理大量用户 下的大量事务.一般不存储历史 数据(MB、GB级别)面向主题,用于分析日常操作 的多维数据库.存储的数据包括 历史数据(GB、TB、PB级别)数据模型i般使用实体对象模型,必须 满足数据库
5、第三范式(3NF)或 更高一般使用维度模型,如星型模 型、雪花模型.:般不需要满足 3NF查询查询语句一般非常简单直接. 以增、删、改、杳(CRUD)为 主,返回少量数据查询语句一般非常复杂,以多 维度钻取、汇聚为主,返回大量 数据OLTPOLAP绝大多数情况下,业务数据库的SQL库表的结构与数据仓库的结构是不一样 的:业务数据库是为OLTP设计的,是系统实时状态的数据;而数据仓库的 数据是为OLAP的需求建设的,是为了深度的多维度分析。这个差异造成基 于数据仓库的数据分析受到以下限制:数据仓库的架构设计是事先定好的,很难做到全面覆盖,因此基于数据仓库 的分析是受到事先定义的分析目标及数据库S
6、chema限制的;从OLTP的实时状态到OLAP的分析数据的转换中会有不少信息损失,例如 某个账户在某个具体时间点的余额,在OLTP系统里一般只存储最新的值, 在OLAP系统里只会存储对账户操作的交易,一般不会专门存储历史余额, 这就使得进行基于历史余额的分析非常困难。因此,在建立数据仓库的时候,我们必须先将OLTP数据导入ODS,然后在 ODS上进行ETL操作,生成便于分析的数据,最后将其导入数据仓库。这也 是为什么ODS有时也被称为数据准备区(staging area)。随着Hadoop的逐渐普及,大家发现数据仓库底层的技术(关系型数据库)无 法处理一些非结构化数据,最典型的就是服务器日志
7、包含的数据。除了这些 分析上的功能缺陷之外,传统数据仓库底层使用的关系型数据库在处理能力 上有很大局限,这也是数据湖,直至整个大数据生态出现的一个主要原因。在Hadoop出现之前,就有Teradata和Vertica等公司试图使用MPP(Massively Parallel Processing,大规模并行处理)数据库技术来解决数据仓 库的性能问题。在Hadoop出现之后,Hive成为一个比拟廉价的数据仓库实 现方式,也出现了 Presto、Impala这些SQL-on-Hadoop的开源MPP系统。从2010年开始,业界逐渐将ODS、采集的日志以及其他存放在Hadoop上的 非结构或半结构化
8、数据统称为数据湖。有时,数据湖中直接存储源数据副本 的局部(包括ODS和日志存储)被称为贴源数据层,意思是原始数据的最直 接副本。从根本上来讲,数据湖的最主要目标是尽可能保持业务的可还原度。例如, 在处理业务交易的时候,数据湖不仅会把OLTP业务数据库的交易记录采集 到数据湖中的ODS,也会把产生这笔交易的相关服务器日志采集到数据湖的 HDFS文件系统中,有时还会把发回给客户的交易凭证作为文档数据存放。 这样,在分析与这笔交易相关的信息时,系统能够知道这笔交易产生的渠道 (从服务器分析出来的访问路径),给客户的凭证是否有不合理的数据格式 (因为凭证的格式很多时候是可以动态变化的)。02数据湖建
9、设的4个目标数据湖的建设方式有很多种,有的企业使用以Hadoop为核心的数据湖实现, 有的企业以MPP为核心加上一些对象存储来实现。虽然建设方式不同,但是 它们建设数据湖的目标是一致的,主要有以下4点。1)高效采集和存储尽可能多的数据。将尽可能多的有用数据存放在数据湖 中,为后续的数据分析和业务迭代做准备。一般来说,这里的“有用数据”就 是指能够提高业务还原度的数据。2)对数据仓库的支持。数据湖可以看作数据仓库的主要数据来源。业务用户 需要高性能的数据湖来对PB级数据运行复杂的SQL查询,以返回复杂的分 析输出。3)数据探索、发现和共享。允许高效、自由、基于数据湖的数据探索、发现 和共享。在很
10、多情况下,数据工程师和数据分析师需要运行SQL查询来分析 海量数据湖数据。诸如Hive、Presto、Impala之类的工具使用数据目录来构 建友好的SQL逻辑架构,以查询存储在选定格式文件中的基础数据。这允许 直接在数据文件中查询结构化和非结构化数据。4)机器学习。数据科学家通常需要对庞大的数据集运行机器学习算法以进行 预测。数据湖提供对企业范围数据的访问,以便于用户通过探索和挖掘数据 来获取业务洞见。基于这几个目标,数据湖必须支持以下特性。数据源的全面性:数据湖应该能够从任何来源高速、高效地收集数据,帮助 执行完整而深入的数据分析。 数据可访问性:以平安授权的方式支持组织/部门范围内的数据
11、访问,包括数 据专业人员和企业等的访问,而不受IT部门的束缚。 数据及时性和正确性:数据很重要,但前提是及时接收正确的数据。所有用 户都有一个有效的时间窗口,在此期间正确的信息会影响他们的决策。 工具的多样性:借助组织范围的数据,数据湖应使用户能够使用所需的工具 集构建其报告和模型。03数据湖数据的采集和存储数据采集系统负责将原始数据从源头采集到数据湖中。数据湖中主要采集如 下数据。1) ODS :存储来自各业务系统(生产系统)的原始数据,一般以定时快照的 方式从生产数据库中采集,或者采用变化数据捕获(Change Data Capture, CDC)的方式从数据库日志中采集。后者稍微复杂一些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 明白
限制150内