方正智睿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

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1