数据cpjl修炼手册2

三、数据仓库理论与应用

3.1大数据基础Hadoop

3.1.1Hadoop三架马车

Hadoop是一个分布式系统基础架构,现在被广泛地应用于大数据平台的开发,对处理海量数据有着其他技术无可匹敌的优势。

HDFS(Hadoop Distributed File System)、MapReduce与HBase被誉为分布式计算的三驾马车。Hadoop基本架构的底层是HDFS,上面运行的是MapReduce、Tez、Spark,再往上封装的是Pig和Hive

大数据技术首要的要求就是先把数据存下来HDFS为了解决存储的问题,把大量的数据用成千上万台机器存储,而用户在前端看到的只是一个文件系统,而不是许多文件系统,这是一种对用户友好的处理方式。HDFS会集中管理数据,用户只需要把精力花费在如何使用和处理数据上

在解决了数据存储的问题之后,如何更高效地处理数据呢?如果让一台机器处理TB级或者PB级的数据,那么可能会花费几天甚至几周的时间,而这对于很多公司的业务来说是不可接受的。

MapReduce/Spark提供一种可靠的、能够运行在集群上的计算模型。MapReduce会把所有的函数都分为两类,即Map和Reduce。Map会将数据分成很多份,然后分配给不同的机器处理;Reduce把计算的结果合并,得到最终的结果

但是如果直接使用MapReduce的程序,会发现使用门槛比较高,Hive和Pig基于MapReduce的基础封装出一个更友好、更简单的方式,可以很容易地实现MapReduce程序。Pig以类似脚本的方式实现MapReduce,Hive以SQL的方式实现。Hive和Pig会把脚本或者SQL自动翻译成MapReduce程序,然后交给计算引擎执行计算。

除了Hadoop体系架构那些基础工具外,还需要对以下几个基础工具做一些了解。

(1)Spark。Spark是一个开源的集群计算环境,Spark与Hadoop之间既相互补充,又相互竞争。Spark启用了内存分布数据集,在处理某些工作负载方面表现得更加优越,交互也会更加友好。

(2)Kafka。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理各大网站或者App中用户的动作流数据。用户行为数据是后续进行业务分析和优化的重要数据资产,这些数据通常以处理日志和日志聚合的方式解决。

(3)Storm。Storm主要应用于分布式数据处理,包括实时分析、在线机器学习、信息流处理、连续性的计算、ETL等。Storm还可以应用于实时处理,被称为实时版的Hadoop,每秒可以处理百万级的消息,并且Storm可以保证每个消息都能够得到处理,具有运维简单、高度容错、无数据丢失、多语言的特点。

(4)HBase。HBase是一个构建于HDFS上的分布式、面向列的存储系统。以Key-Value对的方式存储数据并对存取操作做了优化,能够飞快地根据Key获取绑定的数据。例如,从几PB的数据中找身份证号只需要零点几秒。

(5)HUE。HUE 是Cloudera 的大数据Web可视化工具,主要用来简化用户和Hadoop集群的交互。可以在Web页面把数据从HDFS等系统导入Hive中,可以直接通过HUE以HiveQL的方式对数据查询展现。同时,还可以保存SQL语句,并查看和删除历史SQL语句,对于查询后的数据,可以选择表格、柱状图、折线图、饼状图、地图等多种可视化图形展现,操作十分简单,如果想继续分析,可以使用下载功能下载保存为Excel。

(6)Oozie。Oozie 是一个工作流调度系统,统一管理工作流的调度顺序、安排任务的执行时间等,用来管理Hadoop的任务。Oozie集成了Hadoop的MapReduce、Pig、Hive等协议以及Java、Shell脚本等任务,底层仍然是一个MapReduce程序。

(7)ZooKeeper。ZooKeeper是Hadoop和HBase的重要组件,是一个分布式开放的应用程序协调服务,主要为应用提供配置维护、域名服务、分布式同步、组服务等一致性服务。

(8)YARN。Hadoop生态有很多工具,为了保证这些工具有序地运行在同一个集群上,需要有一个调度系统进行协调指挥,YARN就是基于此背景诞生的资源统一管理平台

3.1.2其他常用工具

除了上面介绍的基础工具之外,以下是一些常用工具。

(1)Elasticsearch。Elasticsearch是基于Lucene的搜索服务器,提供了一个基于多用户的分布式全文搜索引擎,基于RESTful Web接口。Elasticsearch作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch主要应用于云计算中,能够实现实时搜索,具有稳定、可靠、快速、安装和使用方便的特点。

(2)Memcached。Memcached是一个开源的、高性能、分布式内存对象缓存系统,基于内存的Key-Value存储,解决了大数据量缓存的问题,主要应用于减轻数据库负载。它通过在内存中缓存数据查询结果,减少数据库访问次数来提高动态网址应用的速度。同时,因为它足够简洁而强大,便于快速开发,所以得到了广泛的应用。

(3)Redis。Redis是开源的可以基于内存同时也可以持久化的日志型Key-Value数据库,它使用ANSI C语言编写,支持网络,并提供多种语言的API。与Memcached类似,为了保证查询速度和效率,数据都是缓存在内存中的,区别的是Redis多了一步持久性操作,会定期把更新的数据写入磁盘或者文件中,并且在此基础上实现主从模式的数据同步。正是因为Redis的这一点,它可以很好地弥补Memcached这类单纯基于Key-Value存储的不足,在一些应用场景中,可以配合关系型数据库一起使用,同时对关系型数据库起到了很好的补充作用。

3.2大数据平台层级结构

根据大数据平台架构中流入和流出的过程,可以把其分为三层——原始数据层、数据仓库、数据应用层。

原始数据层,也叫ODS(Operational Data Store)层,一般由基础日志数据、业务线上库和其他来源数据获得。

数据仓库的数据来自对ODS层的数据经过ETL(抽取Extra,转化Transfer,装载Load)处理。


数据仓库的主要功能是以ODS层数据为基础,通过逻辑加工产出数据仓库主题表。数据仓库又细分为基础层、主题层和数据集市

数据应用层主要用于处理消费数据仓库的数据

3.2.1ODS层

对于ODS层而言,客户端用户操作日志是一个主要的数据来源,它是分析App和产品优化的基础;另一部分来源于业务的数据库,例如订单的交易情况。

ODS层是当前的、不断变化的数据,而数据仓库保留的是历史的、不再变化的数据,所以一般来说会落后ODS层一天或一天以上的数据。

ODS层具备以下几个作用:

(1)在业务系统和数据仓库之间形成一个隔离层。

(2)转移一部分业务系统细节查询的功能

(3)完成数据仓库中不能完成的一些功能

3.2.2数据仓库

数据仓库(Data Warehouse,DW)是为了方便企业快速做各种业务决策提供数据支撑而构建的集成化数据环境。

数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何数据,数据来源于外部,并且开放给外部应用

根据数据仓库处理的数据层次不同,数据仓库主要分为基础层、主题层、数据集市这三层。

1.基础层

基础层的主要作用是对ODS层的数据进行轻度汇总,产出轻度汇总明细、维度表、码表、事实集等一些基础数据。

2.主题层

主题层为数据的高度聚合层,按照一定的维度和业务逻辑,对一类数据进行聚合,主要生成画像表和主题表。主题层的数据来源是基础层和ODS层。

3.数据集市

数据集市(Data Mart)也叫数据市场,主要功能是将主题层和基础层的数据按各业务需求进行聚合,生成宽表和Cube,并直接推送给数据分析和业务部门使用,例如直接推送表数据至MySQL数据库。

3.2.3数据的应用

大数据的分析应用主要分为以下三种形式。

第一种是描述性分析应用。主要用来描述所关注的业务的数据表现,主要关注事情表面发生了什么,在数据分析之后,把数据可视化展现出来,让用户可以了解业务的发展状况。

第二种是预测性分析应用。在描述性数据的基础上,根据历史数据情况,在一定的算法和模型的指导下,进一步预测业务的数据趋势。例如,美国历年的总统大选预测结果、天气预报预测天气等都属于预测性分析。

第三种是指导性分析应用。基于现有的数据和对未来的预测情况,可以用来指导完成一些业务决策和建议,例如为公司制订战略和运营决策,真正通过数据驱动决策,充分发挥大数据的价值。

3.3数据埋点

一种常用的数据采集方法

3.3.1埋点方式

前端的埋点方式主要分为代码埋点、可视化埋点、无埋点三种。

1.代码埋点

代码埋点主要由App研发工程师手工在程序中写代码实现,通过触发某个动作后程序自动发送数据。优点:具有很强的灵活性,可以控制发送的时机和发送方式等。缺点:人力成本较高,需要研发工程师手工开发程序,有时候还要依赖App发版来生效。

2.可视化埋点

可视化埋点以前端可视化的方式记录前端设置页面元素与对其操作的关系,然后以后端截屏的方式统计数据。优点:简单、方便,能够快速地埋点。缺点:比较受限,上报的行为信息有限。

3.无埋点

无埋点绑定页面的各个控件当事件触发时就会调用相关的接口上报数据。优点:不需要埋点,方便、快捷、省事。缺点:传输数据量比较大,需要消耗一定的数据存储资源。

3.3.2埋点事件

在记录埋点信息时,主要的埋点事件分为点击事件、曝光事件和页面停留时长三类。

1.点击事件

用户每点击页面上的一个按钮一下都会记录一次数据

2.曝光事件

当用户成功地进入一个页面时记录一次数据,当刷新一次页面时也会记录一次数据,如果通过手机Home键切换出去,则不会记录,因为已经脱离了App,此处记录也没有太大的分析价值,记录上来可能污染数据。

3.页面停留时长

页面停留时长主要用来记录用户在一个页面的停留时间,它可以通过记录用户进入页面的时间t1和离开页面的时间t2计算,计算公式可以简单地表示为:用户停留时间=离开页面时间t2-进入页面时间t1。

3.3.3数据埋点实例

现在App端的数据埋点一般采取Key-Value的形式,Key一般表示某个事件Value代表相对应的值,一个Key可以对应一个Value或者多个Value。

3.4指标字典

指标字典,是业务数据标准化的基础,目的是对指标进行统一管理,方便共享,达成对业务指标的共识,并且统一修改和维护。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容