SequoiaDB 巨杉数据库,是一款面向企业级的分布式 NewSQL 数据库,自主研发并拥有完全自主知识产权,没有基于任何其他外部的开源数据库源代码。
上周,在开源中国源创会厦门站活动中,巨杉数据库技术总监郝大为和大家分享分布式数据库对非结构化数据管理和应用。OSC【开源访谈】则在活动后邀请嘉宾分享更多有关于技术和行业的见解。
巨杉数据库对于非结构化数据存储管理有什么独到之处?作为国内第一款完全自主研发,后又选择开源的商业数据库产品,在这个过程中经过了什么思考?目前在行业内的应用情况如何?
访谈实录
1.SequoiaDB 巨杉数据库以及目前在行业内的应用情况?
SequoiaDB 巨杉数据库,是一款面向企业级的分布式 NewSQL 数据库,自主研发并拥有完全自主知识产权,没有基于任何其他外部的开源数据库源代码。
SequoiaDB 支持标准 SQL、事务操作、高并发、分布式、可扩展、与双引擎存储等特性,并已经作为商业化的数据库产品开源。
SequoiaDB 巨杉数据库目前已在金融、政府、电信、交通、公安等行业得到规模应用。客户包括多家世界五百强企业(如中国银行、民生银行、广发银行、中国移动、中国电信等),各级政府客户,和包括途牛网、多盟在内的多家知名互联网科技公司。
2.巨杉数据库中有提到“双引擎”灵活数据存储机制的概念,能否做简单的介绍?
双引擎其实是指的我们的“记录/文件”双引擎的机制。
1)记录引擎:SequoiaDB 采用 JSON 文档类型定义数据存储模型(类对象存储)。JSON 作为当今应用设计中主流的存储与通讯协议格式,使用的数据模型与平台、语言无关,从而为企业内异构数据的整合提供了标准方式。
2)文件引擎:除了 JSON 存储引擎以外, SequoiaDB 核心引擎提供了分布式块存储模式,可以将非结构化大文件按照固定大小的数据块进行切分并存放于不同分区。当用户需要管理海量的小文件(例如照片、音视频、文档、图片等)时,SequoiaDB 的双存储引擎特性能够帮助用户快速搭建一个高性能、高可用的内容管理与影像平台系统。
双引擎这一机制十分适合企业内容管理,也就是常说的ECM系统的应用场景,利用这一机制可以构建一个分布式的、元数据+内容数据统一管理的内容管理平台。
3.这其中巨杉数据库 JSON/BSON 引擎,主要的技术特点是什么呢 ?
SequoiaDB 采用 JSON 文档类型定义数据存储模型(类对象存储)。JSON 作为当今应用设计中主流的存储与通讯协议格式,使用的数据模型与平台、语言无关,从而为企业内异构数据的整合提供了标准方式。传统企业内存在大量的结构化数据资产需要用分布式大数据的手段处理,同时又希望尽量保留其关系型结构,JSON 数据模型则恰好满足这些需求。
简单来说,JSON 存储模型的优势在于:
1)JSON 因其结构严谨、语言明确,不单可以用简单的嵌套和映射方式表达出结构化关系型数据库的复杂的表间关系,同时也可以去范式化地表现为宽表甚至键值方式,从而大幅度弱化复杂的关系模型;
2)JSON 文档记录中的属性、或嵌套子对象的属性,同样可以做多维度的灵活索引,数据使用起来与传统结构化数据一样方便;
3)不需要在事先定义复杂僵化的关系模型,每条记录的结构可以随时修改,是一种模式自由的建模方式;
4)JSON 已经是 Web 与移动应用开发中的报文格式事实标准,SequoiaDB 作为数据库能够存储原生JSON结构,大大简化了应用程序开发流程。
4.另外一个就是关于“文件/块存储”引擎,那么这一块的主要技术特点是什么?
SequoiaDB 的块存储字段类型叫做 LOB(Large Object,大对象),其核心机制是将内容文件打散成多个数据块,每个数据块被分别发送到不同分区独立存放。
SequoiaDB 的 LOB 存储结构分为元数据文件(lobm)与数据文件(lobd)。其中,元数据文件存储整个 LOB 数据文件的元数据模型,包括每个页的空闲状况、散列桶、以及数据映射表等一系列数据结构。而数据文件则存储用户真实数据,数据头之后所有数据页按照 page size 进行切分,每个数据页不包含任何元数据信息。在建立集合的过程当中,大对象存储必须依附于普通集合存在,一个集合中的大对象仅归属于该集合,不能被另外一个集合管理。
SequoiaDB 也是目前第一款加入块存储引擎的 NewSQL/NoSQL 数据库。
5.巨杉数据库作为国内第一款完全自主研发,后又选择开源的商业数据库产品,在这个过程中经过了什么思考?请谈谈商业化软件与开源软件的关系。
巨杉数据库是实打实由我们的团队从零开始研发的,数据库的引擎内核都没有基于任何的开源产品来改造。
目前,我们依然坚持以商业化软件为核心,向企业用户提供为企业用户提供高质量、稳定可靠的商业化产品与标准化专业化的技术服务,这也是企业市场不变的需求。
可以说是一种技术上的情怀,让我们也和硅谷的前辈们一样选择开源,我们自己开发的数据库产品,我们也希望和更多的开发者分享我们的技术。
同时我们也在商业化经营同时,通过产品的开源和开源生态建立,快速推进产品技术的品牌和用户,同时能帮助构建自己的技术生态。
此外,开源也有出于我们团队的技术自信,也是一种程度回应对于我们 自己研发的质疑吧。
6.对于关系型数据库与非关系型数据库比较的争论一直都没停止过,能否说一下你的看法?(两者会以什么样的方式存在,是取代还是并存)目前数据库领域的最新趋势是什么?
谈到数据库未来的发展趋势,巨杉一直认为数据库未来发展也是一个分久必合的过程。NoSQL 数据库本身针对的是从互联网起家的一些玩家,这些玩家可能对于 SQL 和其他的企业级的功能并不是很重视。
但是,未来随着新一代分布式数据库在各个行业的不断应用和普及,NoSQL
和关系型数据库这两者肯定是逐渐融合的过程,NoSQL 数据库会不断注重企业级功能如 SQL 支持的提升,也是因此现在衍生出了 NewSQL
的概念。也就是 NewSQL= SQL和 OLTP +
分布式NoSQL。数据库未来将会是一个分布式、高性能的立足实时处理和在线服务同时作为数据源支持上层的数据分析应用的定位。
巨杉也在朝着这个方向不断努力。
更多演讲实录
DTCC数据库大会专访:谈谈新一代数据库的商业模式与发展趋势