大数据分析:数据仓库项目实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 大数据概论

1.1.1 什么是大数据

读者首先需要了解什么是数据?什么是大数据?

数据在我们的生活中无处不在,清晨起床,用手机打开新闻资讯,此时就产生了数据;早高峰乘坐地铁,刷二维码进站,又产生了数据;打开购物网站,下单购买商品,还会产生数据……生活在当今这个高度信息化的世界,一切行为几乎都可以用数据来描述,这种情况发生在每个人的身上。每时每刻都有上亿条数据产生,这些海量数据流进了那些提供互联网服务的公司,存储在他们的系统中。如果不对其加以利用,则这些数据只是拖慢系统的沉重负担,但如果善于挖掘,则这些数据就是蕴藏巨大价值的宝藏!

那么大数据究竟是什么?国际顶级权威咨询机构麦肯锡给出定义,大数据指的是所涉及的数据集规模已经超过了传统数据库软件获取、存储、管理和分析的能力。这是一个被故意设计成主观性的定义,并且是一个关于多大的数据集才能被认为是大数据的可变定义,即并不定义大于一个特定数据的TB才叫大数据。因为随着技术的不断发展,符合大数据标准的数据集容量也会增长;并且定义随不同行业也有变化,这依赖于在一个特定行业通常何种软件和数据集有多大。因此,大数据在今天不同行业中的范围可以从几十TB到几PB。随着数据量越来越大,大数据的存储和分析计算面临的挑战也越来越大。

1.1.2 大数据生态圈简介

在大数据飞速发展的几年中,已经形成了一个完备多样的大数据生态圈,如图1-1所示。从图1-1中可以看出,大数据生态圈分为7层,这7层如果进一步概括,可以归纳为数据采集层、数据计算层和数据应用层3层结构。

img

图1-1 大数据生态圈的层次及其应用举例

1.数据采集层

数据采集层是整个大数据平台的源头,是整个大数据系统的基石。当前许多公司的业务平台每天都会产生海量的日志数据,收集日志数据供离线和在线的分析系统使用是日志收集系统需要做的事情。除日志数据外,大数据系统的数据来源还包括业务数据库的结构化数据,以及视频、图片等非结构化数据。随着大数据的重要性逐渐突显,大数据采集系统的合理搭建就显得尤为重要。

大数据采集过程中的挑战越来越多,主要来自以下几个方面。

① 数据源多种多样。

② 数据量大且变化快。

③ 如何保证所采集数据的可靠性。

④ 如何避免采集重复的数据。

⑤ 如何保证所采集数据的质量。

针对这些挑战,日志收集系统需要具有高可用性、高可靠性、可扩展性等特征。现在主流的数据传输层的工具有Sqoop、Flume、DataX等,通过多种工具的配合使用,可以满足多种数据源的采集传输工作。同时数据传输层通常情况下还需要对数据进行初步的清洗、过滤、汇总、格式化等一系列转换操作,使数据转为适合查询的格式。数据采集完成后,需要选用合适的数据存储系统,考虑到数据存储的可靠性及后续计算的便利性,通常选用分布式文件系统,如HDFS和HBase等。

2.数据计算层

大数据仅仅被采集到数据存储系统是远远不够的,只有通过整合计算,数据中的潜在价值才可以被挖掘出来。

数据计算层可以划分为离线数据计算和实时数据计算。离线数据计算主要是指传统的数据仓库概念,数据计算可以以天为单位,还可以细分为小时或者汇总为以周和月为单位,主要以T+1的模式进行,即每天凌晨处理上一天的数据。

随着业务的发展,部分业务需求对实时性的要求逐渐提高,实时计算开始占有较大的比重,实时计算的应用场景也越来越广泛,比如,电商实时交易数据更新、设备实时运行状态报告、活跃用户区域分布实时变化等。生活中比较常见的有地图与位置服务应用实时分析路况、天气应用实时分析天气变化趋势等。

大数据的计算需要使用的资源是巨大的,大量的数据计算任务通常需要通过资源管理系统共享一个集群的资源,YARN便是资源管理系统的一个典型代表。通过资源管理系统可以提高集群的利用率、降低运维成本。大数据的计算通常不是独立的,一个计算任务的运行很大可能依赖于另一个计算任务的结果,使用任务调度系统可以很好地处理任务之间的依赖关系,实现任务的自动化运行。

无论何种数据计算,进行数据计算的前提是规范合理地规划数据,搭建规范统一的数据仓库体系。通过搭建合理的、全面的数据仓库体系,尽量规避数据冗余和重复计算等问题,使数据的价值发挥到最大程度。为此,数据仓库分层理念被逐渐丰富完善,目前应用比较广泛的数据仓库分层理念将数据仓库分为4层,分别是原始数据层、明细数据层、汇总数据层和应用数据层。通过数据仓库不同层次之间的分工分类,使数据更加规范化,可以帮助用户需求得到更快实现,并且可以更加清楚明确地管理数据。

3.数据应用层

当数据被整合计算完成之后,需要最终提供给用户使用,这就是数据应用层。不同的数据平台针对其不同的数据需求有各自相应的数据应用层的规划设计,数据的最终需求计算结果可以构建在不同的数据库上,比如,MySQL、HBase、Redis、Elasticsearch等。通过这些数据库,用户可以很方便地访问最终的结果数据。

最终的结果数据由于面向的用户不同,可能有不同层级的数据调用量,面临着不同的挑战。如何能更稳定地为用户提供服务、满足各种用户复杂的数据业务需求、保证数据服务接口的高可用性等,都是数据应用层需要考虑的问题。

1.1.3 大数据应用场景

大数据无处不在,包括金融、汽车、互联网、电信、物流、电影娱乐等在内的社会各行各业都已经融入了大数据的印迹。

金融业:大数据在金融行业的应用范围很广,比较典型的金融大数据的应用场景集中在用户经营、数据风控、产品设计和决策支持等,例如,大数据分析为客户推荐合适的产品、预测未来理财产品的受欢迎程度。金融行业的数据大部分是结构化数据,存储在传统关系型数据库中,通过数据挖掘可以分析出隐藏在交易数据中的巨大商业价值。

汽车行业:大数据在汽车行业释放出的巨大价值引发越来越多汽车行业人士的关注,最基本的有利用大数据分析消费者的行为决定汽车营销方向、分析用户维保行为助力二手车真实价值评估、智能导航大数据为智能化交通提供更多的空间和可能,此外利用大数据和物联网技术制造的无人驾驶汽车,在不远的未来将走入我们的日常生活中。

互联网行业:大数据在互联网行业的应用已经渗透到了方方面面,几乎客户的所有行为都会在互联网平台上留下痕迹,所以互联网企业可以方便地获取大量的用户行为信息,通过分析用户行为,可以制定更有针对性的服务策略。除利用大数据提升自己的业务以外,互联网企业已经开始实现数据业务化,利用大数据发现新的商业价值。以阿里巴巴为例,它不仅在加强个性化推荐,开发“千人千面”这种面向消费者的大数据应用,并且还在尝试利用大数据进行智能客户服务。

电信业:电信业大数据的发展仍处于探索阶段,目前国内运营商对大数据的应用主要体现在利用大数据进行基础设施建设优化、网络运营管理优化及市场精准营销,并利用大数据实现客户离网分析,及时掌握客户离网倾向,出台客户挽留措施。

物流业:物流业通过海量的物流数据,以及运输、仓储、包装、运输等环节中涉及的数据信息等,挖掘出新的深层价值,进而提高运输与配送效率、减少物流成本,更有效地满足客户服务要求。具体体现在利用大数据优化物流网络,车货匹配,库存预测,供应链协同管理,从而提高物流效率,降低物流成本。

电影娱乐:大数据在精准营销中所起的作用尤其反映在电影领域,挖掘精准人群的意义更加非同一般,因为不同类型的影片背后是截然不同的受众群体,针对不同的受众,还可以利用大数据去挖掘受众的所思、所想、所好,为内容策划甚至演员选角提供更多的数据支持。

大数据的价值,远远不止于此,大数据对各行各业的渗透,大大推动了社会生产和生活的发展,未来必将产生重大而深远的影响。