方正智睿NoSQL数据库总体介绍

2024-01-11 14:18

本文主要是介绍方正智睿NoSQL数据库总体介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

方正智睿NoSQL数据库总体介绍

方正智睿NoSQL数据库管理系统是一个面向海量NoSQL数据存储和管理的数据库服务器软件,它可以高效地存储和管理XML数据,key-value数据,并且让用户通过标准的查询语言和高效易用的编程接口来访问这些NoSQL数据。

主要功能

海量XML数据的高效存储和访问

与开源的XML数据库不同,智睿数据库可以单机管理TB级别的XML数据以及支持对此规模的XML数据的查询和更新。XML文档在数据库系统中不是简单地作为一个整体存放,而是被拆分为节点来存储,以便达到高效的存储,查询和更新效率;在查询执行时,排序,去重,连接,集合操作等查询处理步骤都会自适应地根据它所操作的数据量的规模在内存或者外存中执行,兼顾运行效率和系统资源限制。


实现了标准的XQUERY1.0和XPATH2.0, XQuery Update和XQuery Fulltext 语言作为查询语言,根据文档的存储方案实现高效的查询和更新。利用各种索引实现查询的高效执行。在完全支持标准查询一样的基础之上,根据性能和功能需求扩展查询语言。

完整的数据库系统通用功能

除了最基本的XML和key-value数据的增删改查,以及容纳这些数据的容器和数据表及其索引的创建,删除,截断,dump/load等功能外,智睿NoSQL数据库也支持完整的数据库管理功能,例如backup(full, incremental)/restore,批量数据操作,表空间管理,数据库管理,大对象存储和访问,参数配置,完整的数据安全与访问控制功能,以及文档数据库特有的逻辑数据模型的维护和管理。还支持丰富的编程接口(C++, Java, C#, shell脚本),图形化的查询客户端和管理客户端,DBA可以通过web界面方便地管理智睿数据库服务器的运行实例。支持32位和64位的Windows和linux系列操作系统平台,以及支持任意文字编码的XML文档文本和查询文本,支持基于gnu gettext的国际化。未来还会支持跨体系结构(big/little endian)的混合部署和体系结构无关的数据格式。

遵循国际标准

遵循W3C制定的XML标准家族的所有相关标准。具体包括XML1.0/XML1.1,XML Namespace,DTD/XML Schema,XQuery1.0/XPath2.0,XQuery Update和XQuery Fulltext,以及其他XML附属协议例如XLink/XPointer/XInclude等。查询语言使用 XPath/XQuery, XQueryUpdate; 连接协议使用XQC/XQJ,并且支持当今国际上主流XML数据库的功能集合。

支持Key-Value数据管理

智睿NoSQL数据库使用一个key-value存储引擎来管理所有的NoSQL数据。这个存储引擎实现了非常简单灵活通用的key-value的数据模型,支持细粒度(行级)的并发控制,完整的事务ACID属性实现。我们把存储引擎的key-value数据管理功能开放给用户,这样用户可以将任意格式和内容的数据存储在本系统中。 Key-value数据没有任何标准规定的格式和数据模型,其格式内容和意义完全由用户处理,非常灵活。但用户只能通过API来访问这些key-value数据,不能通过任何查询语言来访问。目前的大数据时代有很多这样的数据库,比如hbase,bigtable,redis,Berkeley db等。智睿数据库的key-value存储引擎与这几个数据库相比,有很多特色,后面的文章中会介绍到。

数据库集群

支持基于事务日志复制的主-从数据库集群,主节点完成数据更新和查询,主机节点数据更新的事务日志被实时复制到备机并且由备机重做日志以便更新备机数据,而备机节点只可以处理只读的用户数据查询请求。将查询负载分散到多个备机节点,就可以让主机处理数据更新负载,这样不仅可以提升系统全局的吞吐率,提高可扩展性,还可以提高可靠性。

当主机节点停止运行时(断电,软硬件故障,网络故障,维护等),所有备机可以自动完成主节点选举,系统整体不会终止服务。

系统功能扩展与增强

为了方便用户使用或者提升系统性能的目标实现了很多有特色的功能。具体包括方便用户对文档进行分类管理的逻辑数据模型;供xquery fulltext全文检索使用的可自定义语料库,包括中文分词词库,停用词表,thesaurus词表等;以及XML文档版本管理,外部执行SQL查询,查询profiling/explaining,支持事务aci属性的xquery查询结果集缓存等

系统总体架构

智睿NoSQL数据库系统主要由存储引擎,查询引擎,服务器框架三大子系统构成。下图是智睿NoSQL系统的架构图:

 

存储引擎以统一的key-value数据模型提供对数据的插入,扫描(scan),更新和删除操作,并且实现数据库事务管理和事务ACID属性和基于日志复制的replication及其主节点选举,还提供了供上层模块使用的通用功能,比如多层次的内存管理,sequence,排序,临时表,mutex/spinlock等基础设施;由于存储引擎的通用性,事实上可以根据需要实现更多的数据模型及其查询引擎,例如可以实现json,rdf graph等数据模型及其查询引擎。


XML查询引擎实现 XQuery/XPath/XQueryUpdate/XQuery Fulltext 这几种查询语言,包括对这些查询语言的解析,优化和执行,以及xml数据与存储引擎的key-value数据的双向转换。同时实现了基于XQuery数据模型的节点存储和访问机制,将xml数据按照节点来存储为二进制格式,Xdm定义的7种节点中,存储元素节点和文档节点,每个节点对应于一个数据行。其他5种节点存储在它们的父节点(必然是元素节点或者文档节点)中。 这样智睿XML数据库就是一个native XML数据库。将XML数据拆分为节点存储可以大大提高查询和更新的执行效率,因为这样避免了反复的XML文档解析,可以迅速得到目标节点,特别是在XML文档很大的时候性能优势很明显。


访问控制和元数据管理模块使用存储引擎管理它们的元数据,将内部定义格式的数据存储在元数据表中。访问控制模块处理用户的访问控制配置命令,以及所有来自所有数据访问模块的访问控制检查。元数据管理模块实现一个逻辑数据模型,方便用户使用类似文件系统目录树的方式组织文档和文档集合(目录)。


服务器框架负责把存储引擎和查询引擎包装成为一个应用程序(服务器进程)来运行,实现客户端连接API和网络通信协议,接收用户来自网络的请求,调度工作线程处理用户请求(通常是调用查询引擎或存储引擎),返回结果给用户,并完成统一的异常和错误处理。

在后面的文章中,我会依次讲述存储引擎,查询引擎和服务器框架的详细功能和设计。

 

 

这篇关于方正智睿NoSQL数据库总体介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594643

相关文章

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语