常用数据库特性与使用场景

近期测试不同项目时,发现针对不同任务、业务分别使用Hive、mongodb、redis、mysql来管理数据的存储、读取。

mysql作为一个入门级的数据库比较了解,但其余的几个数据存储的特性与使用场景就较为陌生。

以此为契机对这几种数据存储特性及适用性做了简单的归纳与整理。

Hive

简介

简单来说Hive是Hadoop的数据仓库架构,可以将结构化的数据文件映射为一张表,可对存储于HDFS中数据进行分析与管理。

Hive原仅可进行查询,自0.14版本开始支持update和delete,但要执行update和delete的表必须支持ACID。但由于Hadoop自身有较高的延迟,故不可实现低延迟快速的查询。

操作原理

将SQL转化为MapReduce 任务进行运行,这套 SQL 简称 Hive SQL(HQL),便于使用者使用SQL进行数据的存储、查询、分析等操作。也可自定义函数进行数据操作。

常用场景

Hive构建在基于静态批处理的Hadoop之上的,所以 Hive的最佳使用场合是大数据集的批处理作业,即离线数据的分析。

日志存储:存储离线的日志信息供后续定位、分析使用;

多维度的数据分析;

大量结构化数据的离线分析。

主要特点

快速开发,学习成本较低;

支持不同的存储类型:纯文本文件HBASE的文件等;

支持自定义函数,来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

mongodb

简介

mongodb是一个基于分布式文件存储的非关系数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

mongodb将数据存储为一个文档,数据结构由键值(key=>value)对组成,文档内容类似于常用的json对象。

常用场景

mongodb较传统的RDBMS,提供了高性能和高度伸缩性:

web数据:插入,更新与查询的优势,具备网站实时数据存储所需的复制及高度伸缩性;

缓存:由于性能很高,mongodb也适合作为信息基础设施的缓存层;

大尺寸、低价值的数据的存储:使用成本较低。

主要特点

面向文档存储的数据库,学习、操作较简单;

支持完全索引,包含内部对象,可实现快速排序、查询等;

mongodb的查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组;

可通过本地或者网络创建数据镜像,有更强的扩展性。

redis

简介

redis是一个高性能的key-value数据库。

它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

常用场景

redis相较于其他数据存储最大的优势在于性能与高并发。

String:常规key-value缓存应用,常规计数;

list:最常用于消息队列;

hash:结构化数据,如社会关系等场景数据的存储;

set:与list类似的列表功能,但可以自动去重。支持对数据交集、并集、差级计算;

sorted set:与set类似,但支持参数化自动排序。

主要特点

以内存为数据存储介质,读取效率极高;

数据持久化,内存的数据保存到磁盘中,重启可再次加载适用;

操作的原子性,要么成功要么完全不执行。

Qtest是360旗下的专业测试团队!

是WEB平台部测试技术平台化、效率化的先锋力量!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180925B1GJRZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励