目前市场上主流开源的大数据存储引擎为数不多

存储技术

606人已加入

描述

存储引擎的选型要考虑一些关键因子,比如数据源类型(结构化/非结构化)、数据规模(GB/TB/PB)、数据增长系数、数据加工分析的方式,这些因子必将决定存储引擎的选型方法。

传统关系型数据库(RDB),是企业生产经营中最为普遍的IT存储系统,大多存放业务系统的结构化数据集。在初期往往单节点服务器就能驾驭存储需求,后续随着存储容量逐渐增加大多采用集群的方式去扩展支撑,而且RDB能够支持数据的操作与更新,对增删改查来说绝对是好手,完全遵循了ACID的特性,而且支持标准的SQL语法。因此RDB应用场景非常广泛,技术也非常成熟。但即便如此,似乎RDB没有能在今天大数据时代有所作为。首先今天有很多半结构化/非结构化数据集需要存储并处理,传统关系型数据库并不支持,就更别谈数据规模了。

对于传统RDB的特点,其实Hadoop生态圈的HDFS具有较多特性差异。比如大规模文件存储支持了海量非结构化数据,什么视频音频、文本日志、社交物联网统统不是问题,而且可以根据节点数量大规模扩展,以提升系统整体的存储容量。HDFS可以承载Hive任务作业,依托于M/R机制实现大规模数据的加载和分析。但Hive只适用于一次写入、多次读取的场景,对于频繁更新和随机访问而言并非长项,因为些都受限于M/R机制和对标准SQL的支持。在大数据早期,HDFS+Hive长期支撑了很多客户的系统,比如电信运营商的详单数据存储和预处理、互联网公司的网络日志采集和分析等,直至今日仍然有很多企业在持续使用,正可谓大数据的关键技术组件。

除了传统SQL结构化数据外,在大数据领域还有NoSQL数据库。当时随着互联网web2.0的兴起,传统的关系数据库在应对大规模和高并发的SNS纯动态网站显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库(NoSQL)则由于其本身的特点得到了非常迅速的发展。

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。NoSQL数据库主要有四大分类:键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图形数据库,所以是典型的支持非结构化数据,这里面由于时间关系暂不展开。

上述介绍中,你会发现海量数据的大规模分析与高效低延迟访问有较大差别,两者各有优势不可兼得。在现实情况中会经常发现两套存储引擎的交替使用,分别用于实时读写与海量数据分析,可以先将数据写入HBase中,再定期通过ETL到Parquet进行数据同步。但是这样做有很多缺点,比如第一:用户需要在两套系统间编写和维护复杂的ETL逻辑;第二,时效性差,因为ETL通常是一个小时、几个小时甚至是一天一次,那么可供分析的数据就需要一个小时至一天的时间后才进入到可用状态;第三,更新需求难以满足

通过上述介绍,如果你需要常规结构化数据集的存储管理和查询分析,那么你需要RDB存储引擎;如果系统将承载海量非结构化数据集,那么存储和分析就需要用到HDFS+Hive的存储引擎;如果你需要海量非结构化数据集的低延迟随机读写场景,那么你需要使用类似于Hbase这样的存储引擎;如果你需要支持结构化数据,而且支持行级的插入、更新、删除,并尝试新技术去应对海量数据分析和低延迟随机访问,那么Kudu也可以选择。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分