将数据湖讲明白了.docx

上传人:p** 文档编号:117594 上传时间:2022-12-30 格式:DOCX 页数:9 大小:43.24KB
下载 相关 举报
将数据湖讲明白了.docx_第1页
第1页 / 共9页
将数据湖讲明白了.docx_第2页
第2页 / 共9页
将数据湖讲明白了.docx_第3页
第3页 / 共9页
将数据湖讲明白了.docx_第4页
第4页 / 共9页
将数据湖讲明白了.docx_第5页
第5页 / 共9页
将数据湖讲明白了.docx_第6页
第6页 / 共9页
将数据湖讲明白了.docx_第7页
第7页 / 共9页
将数据湖讲明白了.docx_第8页
第8页 / 共9页
将数据湖讲明白了.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《将数据湖讲明白了.docx》由会员分享,可在线阅读,更多相关《将数据湖讲明白了.docx(9页珍藏版)》请在第壹文秘上搜索。

1、数据湖:数据仓库贴源层结构化数据半结构化数据T留构化数据事实表维度表数据集市集市表数据服务作为全局数据汇总及处理的核心功能,数据湖在数据中台建设中必不可少。那么它与数据仓库、数据中台是什么关系?下图显示了一个典型的从数据采集到数据湖、数据仓库及数据集市,最后为数据应用提供服务的流程。可以看到,除了为数据仓库提供原始数据之外,数据湖也可以直接为上层的数据应用提供服务。与数据湖不同,数据仓库是针对OLAP需求建设的数据库,可以分析来自交易系统或不同业务部门的结构化数据。数据仓库中的数据由原始数据经过清理、填充和转换后按照核心业务逻辑组织生成。数据仓库一般必须预先定义好数据库SChema,重点是实现

2、更快的SQL驱动的深度报告和分析。数据源数据库日志文件Kafka其他数据源数据应用可视化报表交互式编程数据服务大屏展示其他应用从数据采集到提供数据服务的流程图01数据湖的起源与作用数据湖的出现主要是为了解决存储全域原始数据的问题。在捕获来自业务应用程序、移动应用程序、IoT设备和互联网的结构化和非结构化数据时,实际上并没有预先定义好数据结构,这意味着可以先存储数据而无须进行精心设计,也无须明确要进行什么分析,由数据科学家和数据工程师在后续工作中探索和尝试。这个改动极大推动了大数据的发展,早期大数据系统的一大吸引力是能够存储大量日志数据供后期探索,很多大数据应用就是在大数据系统将数据采集上来之后

3、才出现的。为什么一定要单独建立数据湖呢?要回答这个问题,我们先来了解数据湖的一个重要组成部分一ODS(OperatingDataStore,运营数据存储)。在20世纪90年代数据仓库刚出来的时候,就已经有ODS了。可以说ODS是数据湖的先行者,因为ODS和数据湖有两个共同的重要特征:不加转换的原始数据,可以进行不预先设置的分析。ODS一般用来存储业务运营数据,也就是OLTP(联机事务处理)数据的快照和历史,而数据仓库一般用来存储分析数据,对应OLAP(联机分析处理)需求。下表列出了OLTP和OLAP的一些区别。OLTP和OLAP的区别场景股为高并发、低时延一般为低并发、大吞吐量用户操作人员、一

4、线管理人员分析决策人员、高级管理人员功能用于存储和管理日常操作的数据.如当前应用的最新日常操作数据用于分析日常操作的数据,如历史的、聚集的、多维的、集成统一的数据DB设计面向事务,主要处理大量用户下的大量事务.一般不存储历史数据(MB、GB级别)面向主题,用于分析日常操作的多维数据库,存储的数据包括历史数据(GB、TB.PB级别)数据模型一般使用实体对象模型.必须满足数据库第三范式(3NF)或更高搬使用维度模型.如星型模型、雪花模型.一般不需要满足3NF查询杳询语句一般非常简单直接.以增、删.改、查(CRUD)为主.返回少量数据杳询语句般非常复杂,以多维度钻取、汇聚为主,返回大量数据OLTPO

5、LAP绝大多数情况下,业务数据库的SQL库表的结构与数据仓库的结构是不一样的:业务数据库是为OLTP设计的,是系统实时状态的数据;而数据仓库的数据是为OLAP的需求建设的,是为了深度的多维度分析。这个差异造成基于数据仓库的数据分析受到以下限制:-数据仓库的架构设计是事先定好的,很难做到全面覆盖,因此基于数据仓库的分析是受到事先定义的分析目标及数据库SChema限制的;-从OLTP的实时状态到OLAP的分析数据的转换中会有不少信息损失,例如某个账户在某个具体时间点的余额,在OLTP系统里一般只存储最新的值,在OLAP系统里只会存储对张户操作的交易,一般不会专门存储历史余额,这就使得进行基于历史余

6、额的分析非常困难。因此,在建立数据仓库的时候,我们必须先将OLTP数据导入ODS,然后在ODS上进行ETL操作,生成便于分析的数据,最后将其导入数据仓库。这也是为什么ODS有时也被称为数据准备区(stagingarea)o随着HadooP的逐渐普及,大家发现数据仓库底层的技术(关系型数据库)无法处理一些非结构化数据,最典型的就是服务器日志包含的数据。除了这些分析上的功能缺陷之外,传统数据仓库底层使用的关系型数据库在处理能力上有很大局限,这也是数据湖,直至整个大数据生态出现的一个主要原因。在Hadoop出现之前,就有Teradata和VertiCa等公司试图使用MPP(MassivelyPara

7、llelProcessing,大规模并行处理)数据库技术来解决数据仓库的性能问题。在HadooP出现之后,HiVe成为一个比较廉价的数据仓库实现方式,也出现了PreSt0、ImPala这些SQLon-Hadoop的开源MPP系统。从2010年开始,业界逐渐将0DS、采集的日志以及其他存放在HadOOP上的非结构或半结构化数据统称为数据湖。有时,数据湖中直接存储源数据副本的部分(包括ODS和日志存储)被称为贴源数据层,意思是原始数据的最直接副本。从根本上来讲,数据湖的最主要目标是尽可能保持业务的可还原度。例如,在处理业务交易的时候,数据湖不仅会把OLTP业务数据库的交易记录采集到数据湖中的ODS

8、,也会把产生这笔交易的相关服务器日志采集到数据湖的HDFS文件系统中,有时还会把发回给客户的交易凭证作为文档数据存放。这样,在分析与这笔交易相关的信息时,系统能够知道这笔交易产生的渠道(从服务器分析出来的访问路径),给客户的凭证是否有不合理的数据格式(因为凭证的格式很多时候是可以动态变化的)。02数据湖建设的4个目标数据湖的建设方式有很多种,有的企业使用以HadoOP为核心的数据湖实现,有的企业以MPP为核心加上一些对象存储来实现。虽然建设方式不同,但是它们建设数据湖的目标是一致的,主要有以下4点。D高效采集和存储尽可能多的数据。将尽可能多的有用数据存放在数据湖中,为后续的数据分析和业务迭代做

9、准备。一般来说,这里的“有用数据”就是指能够提高业务还原度的数据。2)对数据仓库的支持。数据湖可以看作数据仓库的主要数据来源。业务用户需要高性能的数据湖来对PB级数据运行复杂的SQL查询,以返回复杂的分析输出。3)数据探索、发现和共享。允许高效、自由、基于数据湖的数据探索、发现和共享。在很多情况下,数据工程师和数据分析师需要运行SQL查询来分析海量数据湖数据。诸如Hive、PreSI0、ImPala之类的工具使用数据目录来构建友好的SQL逻辑架构,以查询存储在选定格式文件中的基础数据。这允许直接在数据文件中查询结构化和非结构化数据。4)机器学习。数据科学家通常需要对庞大的数据集运行机器学习算法

10、以进行预测。数据湖提供对企业范围数据的访问,以便于用户通过探索和挖掘数据来获取业务洞见。基于这几个目标,数据湖必须支持以下特性。数据源的全面性:数据湖应该能够从任何来源高速、高效地收集数据,帮助执行完整而深入的数据分析。- 数据可访问性:以安全授权的方式支持组织/部门范围内的数据访问,包括数据专业人员和企业等的访问,而不受IT部门的束缚。- 数据及时性和正确性:数据很重要,但前提是及时接收正确的数据。所有用户都有一个有效的时间窗口,在此期间正确的信息会影响他们的决策。- 工具的多样性:借助组织范围的数据,数据湖应使用户能够使用所需的工具集构建其报告和模型。03数据湖数据的采集和存储数据采集系统

11、负责将原始数据从源头采集到数据湖中。数据湖中主要采集如下数据。DODS:存储来自各业务系统(生产系统)的原始数据,一般以定时快照的方式从生产数据库中采集,或者采用变化数据捕获(ChangeDataCpture,CDO的方式从数据库日志中采集。后者稍微复杂一些,但是可以减少数据库服务器的负载,达到更好的实时性。在从生产数据库中采集的时候,建议设置主从集群并从从库中采集,以避免造成对生产数据库的性能影响。2)服务器日志:系统中各个服务器产生的各种事件日志。典型例子是互联网服务器的日志,其中包含页面请求的历史记录,如客户端IP地址、请求日期/时间、请求的网页、HTTP代码、提供的字节数、用户代理、引

12、用地址等。这些数据可能都在一个文件中,也可能分隔成不同的日志,如访问日志、错误日志、引荐者日志等。我们通常会将各个业务应用的日志不加改动地采集到数据湖中。3)动态数据:有些动态产生的数据不在业务系统中,例如为客户动态产生的推荐产品、客户行为的埋点数据等。这些数据有时在服务器日志中,但更多的时候要以独立的数据表或WebService的方式进行采集。埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程,比如用户点击某个图标的次数、观看某个视频的时长等。埋点是用户行为分析中非常重要的环节,决定了数据的广度、深度、质量,能影响后续

13、所有的环节。因此,这部分埋点数据应该采集到数据湖中。4)第三方数据:从第三方获得的数据,例如用户的征信数据、广告投放的用户行为数据、应用商店的下载数据等。采集这些原始数据的常见方式如下。-传统数据库数据采集:数据库采集是通过Sqoop或DataX等采集工具,将数据库中的数据上传到Hadoop的分布式文件系统中,并创建对应的Hive表的过程。数据库采集分为全量采集和增量采集,全量采集是一次性将某个源表中的数据全部采集过来,增量采集是定时从源表中采集新数据。- Kafka实时数据采集:Web服务的数据常常会写入Kafka,通过Kafka快速高效地传输到Hadoop中。由Confluent开源的Ka

14、fkaConnect架构能很方便地支持将Kafka中的数据传输到HiVe表中。- 日志文件采集:对于日志文件,通常会采用FIUme或LogStaSh来采集O- 爬虫程序采集:很多网页数据需要编写爬虫程序模拟登录并进行页面分析来获取。 WebService数据采集:有的数据提供商会提供基于HTTP的数据接口,用户需要编写程序来访问这些接口以持续获取数据。数据湖需要支持海量异构数据的存储。下面是一些常见的存储系统及其适用的数据类型。 HDFS:一般用来存储日志数据和作为通用文件系统。 Hive:一般用来存储ODS和导入的关系型数据。,键值存储(Key-ValiieStore):例如CaSSandr

15、a、HBasesCliCkHoUSe等,适合对性能和可扩展性有要求的加载和查询场景,如物联网、用户推荐和个性化引擎等。 文档数据库(DocumentStore):例如MOngoDB、CoUChbaSe等,适合对数据存储有扩展性要求的场景,如处理游戏账号、票务及实时天气警报等。 图数据库(GraPhStOrC):例如Neo4j、JanusGraphW,用于在处理大型数据集时建立数据关系并提供快速查询,如进行相关商品的推荐和促销,建立社交图谱以增强内容个性化等。 对象存储(ObjectStore):例如Ceph、AmaZOnS3等,适合更新变动较少的对象文件数据、没有目录结构的文件和不能直接打开或

16、修改的文件,如图片存储、视频存储等。一般来讲,数据湖的存储应该支持以下特性。1)可扩展性。企业数据湖充当整个组织或部门数据的集中数据存储,它必须能够弹性扩展。注意,虽然云原生架构比较容易支持弹性扩展,但是数据中心都会有空间和电力限制,准备建设大规模数据湖的企业需要考虑多数据中心或混合云的架构,否则就会陷入几年就要“搬家”的窘境。2)数据高可用性。数据的及时性和持续可用性是辅助决策制定的关键,因此必须使用HDFS、Ceph.GIUSterFS等支持多备份、分布式高可用的架构。3)高效的存储效率。数据湖的数据量是以PB计的,而且因为需要多备份(3份或更多),其存储效率就非常重要。例如,使用LZo压缩存储HDFS文件可以达到1:6甚至1:7的压缩比例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据挖掘与模式识别

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!