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