NoSQL整体框架分为4层,由下至上分为数据持久层(Data Persistence)、数据分布层
(Data Distribution Model)、数据逻辑模型层(Data Logical Model)和接口层(Interface),层次之间相辅相成,协调工作。
(1)数据持久层定义了数据的存储形式,主要包括基于内存、硬盘、内存和硬盘接口、订制可插拔4种形式。基于内存形式的数据存取速度最快,但可能会造成数据丢失;基于硬盘的数据存储可能保存很久,但存取速度慢于基于内存形式的数据;内存和硬盘相结合的形式,结合了前两种形式的优点,既保证了速度,又保证了数据不丢失;订制可插拔则保证了数据存取具有较高的灵活性。
(2)数据分布层定义了数据是如何分布的,相对于关系型数据库,NoSQL可选的机制比较多,主要有3种形式:一是C A P支持,可用于水平扩展;二是多数据中心支持,可以保证在横跨多数据中心时也能够平稳运行;三是动态部署支持,可以在运行着的集群中动态地添加或删除结点。
(3)数据逻辑层表述了数据的逻辑表现形式。
(4)接口层为上层应用提供了方便的数据调用接口,提供的选择远多于关系型数据库。接口层提供了5种选择:Rest、Thrift、Map/Reduce、Get/Put、特定语言API,使得应用程序和数据库的交五更加方便。
NoSQL分层架构并不代表每个产品在每一层只有一种选择。相反,这种分层设计提供了很大的灵活性和兼容性,每种数据库在不同层面可以支持多种特性。
NoSQL数据库在以下这几种情况比较适用:
数据模型比较简单;
需要灵活性更强的IT系统;
对数据库性能要求较高;
不需要高度的数据一致性;
对于给定key,比较容易映射复杂值的环境。
领取专属 10元无门槛券
私享最新 技术干货