大大地提高了大数据的处理效率。
大数据首先需要有数据,数据首先要解决采集与存储的问题。数据采集与存储技术随着数据量的爆发与大数据业务的飞速发展,也在不停地进化。在大数据的早期,或者很多企业的发展初期,只有关系型数据库用来存储核心业务数据,即使是数据仓库,也是集中型OLAP关系型数据库。比如很多企业,包括早期的淘宝,就建立了很大的OracleRAC作为数据仓库,按当时的规模来说,可以处理10TB以下的数据规模。一旦出现独立的数据仓库,就会涉及ETL,如数据抽取、数据清洗、数据校验、数据导入,甚至是数据安全脱敏。如果数据来源仅仅是业务数据库,ETL还不会很复杂,如果数据的来源是多方的,比如日志数据、App数据、爬虫数据、购买的数据、整合的数据等,ETL就会变得很复杂,数据清洗与校验的任务就会变得很重要。这时的ETL必须配合数据标准来实施,如果没有数据标准的ETL,可能会导致数据仓库中的数据都是不准确的,错误的大数据会导致上层数据应用和数据产品的结果都是错误的。错误的大数据结论还不如没有大数据。由此可见,数据标准与ETL中的数据清洗、数据校验是非常重要的。
随着数据的来源变多,数据的使用者变多,整个大数据流转就变成了一个非常复杂的网状拓扑结构。在这个网络中,每个人都在导入数据、清洗数据,同时每个人也都在使用数据,但是谁都不相信对方导入和清洗的数据,就会导致重复数据越来越多,数据任务越来越多,任务的关系也越来越复杂。要解决这样的问题,必须引入数据管理,也就是针对大数据的管理,比如元数据标准、公共数据服务层(可信数据层)、数据使用信息披露等。
随着数据量的持续增长,集中式的关系型OLAP数据仓库已经不能解决企业的问题,这个时候就出现了基于MPP的专业级数据仓库处理软件,如Greenplum。Greenplum采用MPP方式处理数据,可以处理的数据更多更快,但是本质上还是数据库的技术。Greenplum支持100台机器左右的规模,可以处理拍字节(PB)级别的数据量。Greenplum的产品是基于流行的PostgreSQL开发的,几乎所有的PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上。
随着数据量的持续增加,比如每天需要处理100PB以上的数据,每天有100万以上的大数据任务,使用以上解决方案都没有办法解决了,这个时候就出现了一些更大的基于M/R分布式的解决方案,如大数据技术生态体系中的Hadoop、Spark和Storm。它们是目前最重要的三大分布式计算系统,Hadoop常用于离线的、复杂的大数据处理,Spark常用于离线的、快速的大数据处理,而Storm常用于在线的、实时的大数据处理。
3.4.2 分布式计算系统概述
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop框架最核心的设计是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算。Hadoop作为一个基础框架,上面也可以承载很多其他东西,比如Hive,不想用程序语言开发MapReduce的人、熟悉 SQL的人可以使用Hive离线地进行数据处理与分析工作。比如HBase,作为面向列的数据库运行在HDFS之上,HDFS缺乏随机读写操作,HBase正是为此而出现的,HBase是一个分布式的、面向列的开源数据库。
工智能与大数据技术导论
76