【巨杉答疑】巨杉数据库和mongodb有什么关系吗?

哈罗,艾瑞巴蒂~巨杉答疑栏目今日上线啦!

巨杉数据库作为商业化开源软件,已经拥有大量社区用户。开源至今,大到分布式数据库原理、架构问题,小到SDB巨杉数据库的安装使用问题,大家似乎都有很多问题想要和我们交流,所以我们邀请技术大咖和大家好好聊聊,有啥问题尽管放马过来!

昨天,我们就请到巨杉数据库的两位技术大咖在巨杉官方微信群针对分布式数据库的相关内容对于群友的提问进行解答。来淘点干货吧!

1.官方数据说巨杉很多性能超过mongoDB,前者是否可以替代后者,不能完全替代的话,在哪些性能方面巨杉能力不足于mongoDB,为什么,有设计方面的因素吗?mongodb和SDB有什么关系?

SDB完全可以替代mongodb,而且很多功能mongodb并不支持。例如事务、join查询等。

目前在性能上超越mongodb,而且在分布机制上也比mongodb完善。

要说弱点,主要在社区的推广和发展上,mongodb最早的出发点是从开发开始的。

e-r关系结构对于开发来说迭代太慢了,所以JSON文档型和对象一一对应,而且没有schema的限定,对于开发POC等迭代帮助太大了,很多互联网企业都是半天出个版本,这对开发要求很高。

Mongodb在易用性上做的很好,我们也在努力,希望大家支持!

Mongodb和SDB没有任何关系,大家的出发点非常不同。

2.数据库的开发本身技术要求都很高,需要论文原理来支撑,就像CAP理论中的AC的平衡,更希望能听到原理性的分析。

CAP主要是指Consistency(一致性); Availability(可用性);Partition tolerance(分区容错性);主要在分布式存储系统中提出的理论,P是分布式里必须的,当网络等因素发生故障的时候,A和C不能同时满足,因此提出了“三选二”的概念,及AP和CP的取舍选择。

三选二会误导很多新人,觉得不是CP就是AP,其实这个选择是极端情况的,并不是简单的非黑即白的选择。

首先,由于分区很少发生,那么在系统不存在分区的情况下没什么理由牺牲C或A。其次,C与A之间的取舍可以在同一系统内以非常细小的粒度反复发生,而每一次的决策可能因为具体的操作,乃至因为牵涉到特定的数据或用户而有所不同。所以是0-100%之间的变化。

这里举例来说,分布式一主两从,保障了AP,但网络同步的速度决定了CP的能力,所以这个同步能力就是根据网络环境从0-100%里变化的。

当条件好的时候,就基本都满足,当断网了,就要做取舍,但是当同步完成,从节点升级为主节点后,又恢复了。

当然如果要100%保证CP必须强一致,那么当一台机器宕机,强一致就做不到了,就满足不了CP了。

ACID是传统关系型数据库最为重要的特征,原子性、一致性、隔离性、持久性;强调的是一致性。属于CP。

BASE是基本可用(Basically Available)软状态(Soft State)最终一致性(Eventually Consistent)软状态就是中间状态,例如同步延时时的分布式从节点的副本状态。从BASE的角度,高可用是优先保障的。属于AP。

如何在这两种状态保持平衡,就需要从业务逻辑,用户需求,业务需求出发。

3.现在巨杉数据库分社区版和企业版,社区办是否有阉割,这两种分别适用哪些场景?

开源的社区版和企业版的数据库内核源码都是一致的,相较于企业版,社区版只是可视化上操作以及SparkSQL这部分有限制。

其他的就是专业的服务,企业版有一些我们专用的调试工具等,便于服务,但是对社区影响不大。

4. 巨杉数据库是怎么与Spark进行结合的?不用普通sql查询,那是利用什么方法查询?

Spark适合低并发,大数据量复杂查询。

巨杉数据库专门为spark开发了一套连接器,可以支持为spark 提供原数据。Spark SQL 的语法基本沿用了Hive SQL 的语法,大家基本可以通过查阅hive SQL 语法进行编写。

5.spark sql与普通sql区别在哪里?语法不一样还是语言不同?

Spark SQL是类似于标准SQL的语言,写得时候基本没有障碍,但是毕竟不是做OLTP(On-Line Transaction Processing联机事务处理过程)的,一些语法不支持,属于SQL子集。

6.巨杉数据库的瓶颈在哪里?

目前最大的瓶颈在隔离机制,巨杉SDB主要追求高可用、高性能的,就是ACID和BASE机制中,在BASE机制上巨杉SDB的优势更明显。

ACID和BASE分别推动了关系型数据库和NoSQL的发展,现在大家所主张的NewSQL就是在寻找更好的平衡点,在高可用的基础上,尽量支持ACID。

对于现在的业务来说,高可用的场景远大于OLTP场景。

7.nosql 和newsql 的区别?

这个要从nosql讲起,在互联网时代激发了大量用户,高可用变得非常重要,所以就退出了BASE机制

BASE是基本可用(Basically Available)软状态(Soft State)最终一致性(Eventually Consistent)软状态就是中间状态,例如同步延时时的分布式从节点的副本状态。从BASE的角度,高可用是优先保障的。属于CAP中的AP,主要目的就是为了保障业务迭代的便捷性和高可用。Newsql就是在BASE基础上,尽量满足ACID。

8.巨杉数据库支持分布式文件存储吗?

支持的,巨杉有SequoiaCM产品专门用于非结构化存储,分布方式相同,存储结构不同,是块存储。

目前SDB 是支持双存储的,一个是行存的BSON结构,另外一个块存储结构, SDB 对于块存储的功能称为 LOB(大对象),支持存储任意大小的非结构化文件。所以大家可以使用SDB 的LOB 功能来存储文件,并且该文件将会被切分成256KB(默认)的块大小分布式存储在整个数据库集群中,数据的冗余依赖数据分区组的方式进行。

?【巨杉解决方案】ECM企业内容管理

9.SDB目前有官方docker镜像吗?

目前没有官方docker。

主要原因是我们目前从性能角度考虑,docker对于内存管理和i/o的使用上有很多技巧,但是从小项目,易用性角度来说,我们会考虑推出docker。

我们近期在青云会提供镜像版本的APP,对于其他云,我们也考虑使用docker部署。

10.如果我是一个视频文件,性能会有什么变化?

如果用户持续对SDB写入一些大的非结构化文件,性能的变化主要取决于你的服务器I/O。

对于SDB、分布式数据库你有什么疑问吗?添加“杉杉”为微信好友来聊聊吧~

时间: 2024-10-09 20:14:10

【巨杉答疑】巨杉数据库和mongodb有什么关系吗?的相关文章

NoSql数据库初探-mongoDB读操作

MongoDB以文档的形式来存储数据,此结果类似于JSON键值对.文档类似于编程语言中将键和值关联起来的结构(比如:字典.Map.哈希表.关联数组).MongoDB文档是以BOSN文档的形式存在的.BSON是JSON附加了类型信息的一种二进制的表现形式. 文档中的字段可以是任何BSON类型,比如(文档类型.数组.文档数组) MongoDB将所有文档存储在collection中,collection是一组相关的文档集合,这一组文档集合拥有共同的索引,collection类似于关系型数据库中的表.

【MongoDB数据库】MongoDB 命令入门初探

MongoDB是一款NoSql数据库,使用了"面向集合"(Collection-Oriented)原理,意思是数据被分组存储在数据集中,被称为一个集合(Collection).每个集合(Collection)在数据库中都有一个唯一的标识名,并且可以包含无限数目的对象(BasicDBObject). 集合(Collection)的概念类似关系型数据库(RDBMS)里的表(table),对象(BasicDBObject)的概念类似于RDBMS中表的一条数据,关系数据库里插入一条数据等价于在

NoSql数据库初探-mongoDB环境搭建

NoSQL数据库一改关系型数据库的缺点,更容易的集成.分布式.无模式.故障恢复等特点,正在一步步餐食关系型数据库的市场,作为一个与时俱进的码农了解一下新技术是必须的,尤其是在读了<NoSql精粹>之后,更是想体验一下NoSql数据库的威力. MongoDB是一种文档数据库,也就是说对于领域模型中的每一个聚合来讲,都会作为一个文档来存储. MongoDB有如下优点: 面向文档存储.全索引支持.同步机制和高访问性.自动分片.查询.灵活的聚集和数据处理.映射化简.文件存储.   第一步:安装 从版本

node.js操作数据库之MongoDB+mongoose篇

前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件存储的开源数据库系统.本文为大家详细介绍了如何用node.js + mongoose 玩转MongoDB.希望能帮到有需要的人. 由于我用Mac开发,以下所有操作都是在Mac下进行. 一. 环境搭建 安装Node.js 有 node 环境的可以跳过. nodejs官网提供了 macOS 安装包,直接

全局数据库名称.数据库名称.SID是什么关系?

关于数据库名(db_name).实例名(instance_name).ORACLE_SID 最近因看到论坛有人问起这方面的东西,将自己的理解加上查阅相关资料整理如下,如果不全或不当的地方,望指正并补全它. 数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).

SharePoint 2010/2013/2016内容数据库与网站集的关系

总得来说,内容数据库和网站集的关系是: 一个内容数据库里可以有多个网站集,但是一个网站集只能存在于一个内容数据库. 那么问题来了 问题1:我能否在创建网站集时指定内容数据库呢?或者说我能在指定的内容数据库里创建网站集吗? 答案是你当然可以.具体教程可以bing一下Create Site Collection in a Specific Content Database ? 问题2:如果我知道内容数据库的名字,我怎么查看在此内容数据库里有几个网站集么? 嗯,你可以执行下面命令:Get-SPSite

数据库和表之间的关系

数据库: 数据库即数据的仓库.在数据库中提供了专门的管理系统.对数据库中的数据进行集中的控制和管理.能高效的对数据库进行存储.检索. 关系型数据库: 关系模型把世界看作是由实体(Entity)和联系(Relationship)组成的. 关系模型数据库是一种以表做为实体,以主键和外键关系作为联系的一种数据库结构. 在关系数据库中,相类似的实体被存入表中.表(table)是关系型数据库的核心单元,它是数据存储的地方. 关系数据库管理系统: 关系型数据库只是一个保存数据的容器,大多数数据库依靠一个称为

MySQL8.0数据库基础教程(二)-理解&quot;关系&quot;

1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据. 现实世界中的各种实体以及实体之间的各种联系均用关系模型表示.现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准.标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作. 关系模型由关系

巨杉金融级数据库多活架构实践

今年以来,公有云事故频发,大有"黑天鹅"不断爆发之势头.近期,北京一初创公司清博数控表示,在使用国内某厂商云服务器8个月后,放在云服务器上包括备份的数据全部丢失,导致公司几年来的平台数据全部丢失,造成"近千万元损失".此后,该云平台对此回应称,向该公司表达歉意,愿意赔偿该公司在平台产生的实际消费共计3569元,本着帮助用户迅速恢复业务的目的,承诺为该公司提供13.29万元现金或云资源的额外补偿,赔偿加补偿金额总计13.64万元达到其在平台中用云金额的37倍. 此外,