Hive大数据存储与处理
上QQ阅读APP看书,第一时间看更新

1.1.2 大数据存储技术架构

业务需求分析需要通过大数据存储与处理等技术实现,因此本小节将介绍大数据存储技术与常见的开发语言。

1.大数据存储技术

在对广电公司用户相关的海量数据进行分析前,需要考虑采用何种存储技术保存数据,以便后续的数据查询和分析。因此,需要先了解大数据的几类主流的存储技术。

在大数据应用中,对海量数据进行采集、清洗后,开发人员需要确定可以将数据长期进行保存的存储方式,同时应考虑一种组织管理数据的方案以便在业务中查询使用,最后需要权衡是否使用内存存储和处理方式提高大数据存储的性能。目前大数据存储产品较多,既有商用的GBase系列数据库产品、Amazon S3和EMC系列产品,也有开源的OceanBase、Swift、Alluxio、HDFS、HBase和Hive等。常见的存储产品的简介及优缺点对比如表1-1所示。

表1-1 常见的存储产品的简介及优缺点对比

续表

续表

从表1-1中可知,S3存储形态能够方便地进行扩展,以适应大量用户高并发访问的场景,但是不支持随机位置读、写操作,只能读取、写入或覆盖整个文件。Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是一种易于扩展的分布式文件系统,基于“移动计算比移动数据更经济”的设计理念,可构建在大量廉价机器上,以节约大量建设扩容投资,并具备可靠数据容错能力,能有效减少运营、维护成本。HBase更适合海量数据随机读、写的业务场景,适合存储海量稀疏数据。EMC系列产品支持PB~ZB级各类数据存储,具有较好的数据安全性,但由于是商用产品,故应用成本较高。Swift支持多租户模式,能可靠地存储数量非常多的大小不一的文件,并针对大型文件做优化处理。Alluxio是以内存为中心的虚拟分布式存储系统,核心思想是将存储与计算分离,使Spark等框架更专注于计算,从而达到更高的执行效率。

广电公司用户数据的主要特点是用户量巨大,相关数据文件也非常大,基础数据一经写入,不会被频繁修改,故选用Hadoop开源框架的HDFS和Hive平台作为数据存储、处理平台更合适。

2.常见的开发语言

企业在发展过程中积累了大量的数据,对数据进行专业的分析,能够促进企业更好、更精准地发展,能够有效防范企业经营风险。通过数据分析把看似杂乱无章的数据蕴含的信息进行提炼,总结出所研究对象的内在规律,能够帮助管理者进行判断和决策,以便采取适当策略与行动。在数据分析过程中使用的几种常见开发语言的介绍如下。

(1)R语言

R语言是一门用于统计计算和作图的语言,也是一个数据计算与分析的环境。R语言主要的特点是免费、开源、各种各样的模块十分齐全,R语言的综合R档案网络(Comprehensive R Archive Network,CRAN)提供了大量的第三方包。

(2)Python

Python是一种面向对象、解释型的程序设计语言。Python用在数据分析和交互、探索性计算以及数据可视化等方面都比较方便。Python拥有强大的编程能力,同时具备非常强大的数据分析能力,如果使用Python,能够大大地提高数据分析的效率。

(3)SQL

结构查询语言(Structure Query Language,SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是数据方向所有岗位必须掌握的基本语言,其入门较容易。需要掌握的SQL知识点主要包括数据定义语言、数据操纵语言以及数据控制语言。在数据操纵语言中,需要理解SQL的执行顺序和语法顺序,熟练掌握SQL的重要函数,理解SQL各种连接的异同。对开发人员而言,SQL也是数据分析时必须掌握的基本语言。

(4)Java

Java是Sun公司(已被甲骨文公司收购)在1995年推出的一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但要比C++语言更易于使用,而且在编程时彻底采用一种“以对象为导向”的方式。Java是目前使用最为广泛的网络编程语言之一。Java具有较高安全性,可以在分布式环境中动态地维护程序及类库,当其类库升级之后,相应的程序不需要重新修改、编译,同时Java具有可移植性强的特点,可以跨平台运行。