每个大中型企业都需要一个数据库。 大型跨国企业通常需要全球分布的数据库,并且当将其数据库用于财务或库存应用程序时,它们需要高度的一致性。 很少有数据库可以满足这两种需求。

信息世界

Couchbase Server是一个内存优先,分布式,灵活的JSON文档数据库,在本地集群中具有高度一致性。 Couchbase Server还支持跨数据中心复制,最终实现了跨集群的一致性。

[您应该使用哪个数据库? 让InfoWorld成为您的指南。 最好的分布式关系数据库 。 • 最好的NoSQL数据库 。 • 最好的图形数据库 。 | 通过InfoWorld大数据和分析报告时事通讯深入了解分析和大数据。 ]

Couchbase Lite是一个嵌入式移动数据库,可脱机工作并在联机时与Couchbase Sync Gateway同步。 Sync Gateway与Couchbase Server以及多个Couchbase Lite实例同步。

Couchbase Server可以部署在本地,云, Kubernetes或混合配置中。 它有开源版本和企业版本。

Couchbase Server查询语言N1QL是为JSON文档数据库设计的SQL超集,具有分析扩展。 Couchbase还支持键值数据访问和全文搜索。

[ 点击此处注册免费的三个小时的Kubernetes入门课程,该课程由Pluralsight和InfoWorld提供。 ]

Couchbase是该数据库的幕后公司,该公司是在2011年将Membase(内存中缓存的集群键值数据库的制造商)和CouchOne(Apache CouchDB文档数据库的开发人员)合并而成的。值层,在2012年添加了JSON文档层,然后在2014年添加了移动数据库,在2015年添加了类似SQL的查询,在2017年添加了全文搜索并在2018年添加了分析功能。

Couchbase替代品和竞争对手

Couchbase的替代品包括另一个灵活的文档数据库MongoDB ; MongoDB与Redis结合用于缓存 ; Oracle数据库 ,一种高端关系数据库; 以及Microsoft的关系数据库产品SQL Server。 关系数据库系统是为在单个大型服务器上使用而设计的,很难扩展它们。 MongoDB旨在执行主-从复制,该复制可以稍微扩展,但是需要分片才能很好地扩展。 Redis有助于加快MongoDB的速度,但引入了另一个活动部分,这可能会使组合系统的管理复杂化。

Couchbase的其他近期替代方案包括CockroachDB , Azure Cosmos DB , Amazon Aurora , Aerospike ,Amazon DocumentDB和Amazon DynamoDB。 在先前的评论中,我已经讨论了关系和NoSQL选项。

Couchbase服务器架构

Couchbase Server执行多个角色:数据服务,索引服务,查询服务,安全性,复制,搜索,事件,分析和管理。 这些服务可以分别在一个或多个节点上运行。

Couchbase Server的设计基于三个基本原则:内存和以网络为中心的体系结构,工作负载隔离以及对所有内容的异步方法。

写入将提交到内存,然后持久存储到磁盘并异步索引,而不会阻止读取或写入。 最常用的数据和索引透明地保存在内存中,以实现快速读取。 尽管增加了Couchbase的RAM需求,但这种大量使用内存对于延迟和吞吐量很有好处。

Couchbase Server可以独立扩展其每项服务,以提高其效率。 查询服务可以从更多的CPU资源中受益,索引服务可以使用SSD,数据服务可以使用更多RAM。 Couchbase将此称为多维缩放(MDS),它是Couchbase Server的与众不同的功能之一。

异步操作可帮助Couchbase Server避免阻止写入,读取或查询。 开发人员可以在需要时在持久性和一致性与延迟之间取得平衡。

Couchbase JSON数据模型支持基本数据类型和复杂数据类型:数字,字符串,嵌套对象和数组。 您可以创建规范化或非规范化的文档。 Couchbase Server不需要甚至不支持架构。 相比之下,MongoDB不需要架构,但是如果开发人员选择,则可以支持和执行它们。

正如我稍后将更详细讨论的那样,您可以通过四种机制访问Couchbase Server文档:键值,基于SQL的查询,全文本搜索和JavaScript事件。 如果您的JSON文档包含子文档或数组,则可以直接使用路径表达式访问它们,而无需传输和解析整个文档。 事件模型可以触发数据更改( OnUpdate )或计时器。 此外,您可以通过与Couchbase Mobile同步来访问Couchbase Server文档。

Couchbase Server被组织为存储桶,vBucket,节点和集群。 值区包含JSON文档。 vBucket实质上是在节点之间自动分布的分片。 节点是承载Couchbase Server单个实例的物理机或虚拟机。 群集是节点组。 同步复制发生在群集中的节点之间。

Couchbase Server部署选项

您可以在本地,云和Kubernetes上安装Couchbase Server 。 Couchbase Server企业版可免费进行开发和测试,并且可以通过订购进行生产。 开源的Couchbase Server社区版可免费用于所有目的。 除了一些省略的功能外 ,Couchbase Server社区版还与Couchbase Server企业版API兼容。

我在Google Cloud Platform上创建了一个云测试驱动器会话,该会话(经过五分钟的部署延迟)使我得到了三个节点的Couchbase Server群集和一个Sync Gateway节点,它们都运行了三个小时。 我花了大约一个小时来阅读这四个Couchbase教程,这使我有一种查询服务器的感觉。

IDG

Couchbase Server仪表板。 加载航空公司旅行样本存储区之后,这是Google Cloud Platform中的测试驱动器。

Couchbase自治运算符

仅在企业版中受支持的Couchbase Autonomous Operator提供了Couchbase Server与开源Kubernetes和Red Hat OpenShift的本机集成。 操作员通过创建自定义资源定义并将其注册为自定义Couchbase Server控制器来管理Couchbase Server集群,从而扩展了Kubernetes API。 这减少了在Kubernetes上运行Couchbase集群所需的开发工作量,并使您可以自动管理常见的Couchbase Server任务,例如Couchbase Server集群的配置,创建,扩展和恢复。 该操作员还可以与Azure Kubernetes服务,Amazon Elastic Kubernetes服务和Google Kubernetes Engine一起使用。

跨数据中心复制(XDCR)

如前所述,Couchbase Server执行同步复制,并且在群集中具有很强的一致性。 它跨群集,数据中心和可用性区域执行异步,主动-主动复制,以避免产生高写入延迟。 XDCR允许Couchbase成为全局分布的数据库,但代价是允许群集之间实现最终(而非强大)的一致性。

所有Couchbase Server版本均支持Basic XDCR。 XDCR筛选,限制和基于时间戳的冲突解决都是Enterprise Edition的功能。

Couchbase查询工具

您可以使用键查询Couchbase Server来检索关联的值,该值可以是JSON文档或Blob。 您也可以使用类似SQL的N1QL语言或全文搜索来查询它。 如果存储桶具有支持查询的索引,则N1QL查询和全文查询的运行速度都会更快。

N1QL

N1QL,发音为“镍”,非常类似于标准SQL,带有JSON扩展名。 鉴于我已经使用SQL数十年了,所以我发现它比MongoDB的聚合管道容易得多。

实际上,N1QL有两种类似的变体:一种用于Couchbase服务器查询服务,另一种用于Analytics服务(这是企业版功能)。 N1QL for Analytics基于SQL ++ 。

N1QL的某些扩展是USE KEYSNESTUNNESTMISSINGUSE KEYSUSE HASHJOIN的查询提示。 NESTUNNEST打包UNNEST压缩数组。 MISSING是JSON特定于NULL替代方法; IS NOT MISSING表示文档中存在特定值或NULL 。 值为NOT MISSINGNOT NULL的关键字为KNOWN 。 N1QL查询可以使用路径,该路径也适用于全文搜索。

IDG

这是针对Couchbase Server的航空公司旅行样本存储区的简单N1QL查询。 请注意,N1QL与SQL有多么相似。

IDG

我们正在查看Couchbase Server中按节点细分的航空旅行样本存储区的索引列表。 def_type索引对于上一个屏幕截图中的WHERE t.type = …子句是必需的。

全文搜索

Couchbase支持外部全文搜索引擎,例如Solr ,但它也有自己的基于Go的全文搜索引擎Bleve。 Bleve包含在Couchbase Mobile和Couchbase Server中,并且支持您期望的大多数搜索语法。

IDG

我们正在使用Couchbase Server的Bleve引擎进行全文搜索。 此查询需要全文索引。

Couchbase SDK

所有主要的Couchbase服务都可以通过SDK进行编程。 SDK适用于C / C ++ 、. Net(C#,F#和Visual Basic .Net),Go,Java,Node.js,PHP,Python和Scala。

除了SDK之外,Couchbase还提供与以下框架的紧密集成:Spring Data,.NET LINQ和Couchbase自己的Ottoman Node.js ODM。 例如,以下示例查询使用Linq2Couchbase :

{     Servers = new List<Uri> {new Uri("http://localhost:8091/")}});

var context = new BucketContext(ClusterHelper.GetBucket("travel-sample"));var query = (from a in context.Query<AirLine>()               where a.Country == "United Kingdom"               select a).               Take(10);

query.ToList().ForEach(Console.WriteLine);ClusterHelper.Close();

Couchbase Mobile

Couchbase Mobile有两个部分:在移动设备上运行的Couchbase Lite和在服务器节点上运行的Couchbase Sync Gateway。 Couchbase Lite可在iOS,Android,.Net和Xamarin上运行,并支持Swift,Objective-C,Java,Kotlin和C ++语言。

例如,以下Java代码定义了要在Android上运行的查询:

Database database = DatabaseManager.getDatabase();Query searchQuery = QueryBuilder  .select(SelectResult.expression(Expression.property("airportname")))  .from(DataSource.database(database))  .where(    Expression.property("type").equalTo(Expression.string("airport"))      .and(Expression.property("airportname").like(Expression.string(prefix + "%"))));

Couchbase基准

尽管InfoWorld尚未对Couchbase Server进行基准测试,但第三方(Altoros)已使用YCSB JSON和键值测试以及TPCx-IoT测试进行了测试 。 下表是JSON文档基准测试。 如您所见,Couchbase Server的性能优于MongoDB和DataStax。 您可以自己重新运行这些基准测试,因为Altoros已提供了所有必需的脚本。

阿尔托罗斯

Altoros运行的JSON Benchmark,比较了Couchbase Server,MongoDB和DataStax。 如您所见,在此测试中,Couchbase提供了更高的吞吐量和更低的延迟,这随着数据和服务器的扩展而得到了改善。

总体而言,Couchbase Server可以很好地与具有类似SQL的查询语言和全文搜索引擎的NoSQL JSON文档数据库堆叠在一起,Couchbase Mobile可以将价值主张扩展到移动设备。 Couchbase是否适合您取决于您​​的应用程序和要求。

如果您需要关系数据库的可靠架构结构或图数据库的连接方向,则Couchbase不会做您想要的事情。 但是,如果您需要全球可扩展的文档数据库,那么Couchbase是一个不错的选择。

-

费用: Couchbase Server社区版:免费。 Couchbase Server企业版:年度订阅按节点定价,并根据节点所需的内核和RAM以不同的价格提供。 开发和测试节点是免费的。 企业版云部署按小时可用,Couchbase Server在AWS上的典型软件价格为$ 0.662 /节点/小时,对于Mobile Sync Gateway,典型软件价格为$ 1.641 /节点/小时,其标准模板最初使用四个服务器节点和两个同步节点,具有自动缩放功能。 在Microsoft Azure和Google Cloud Platform上,价格大致可比。 您还可以携带自己的许可证,并只为云资源付费。

平台: Couchbase服务器:Linux,Windows Server 2012 R2及更高版本; Kubernetes,OpenShift; AWS,Azure,GCP。 Couchbase Server开发和测试:MacOS 10.11和更高版本,Windows 10周年更新和更高版本; 码头工人 Couchbase Lite:iOS,Android,.Net。 Couchbase Sync Gateway:Linux,Windows Server 2010和更高版本,MacOS 10.12.6和更高版本; AWS,Docker,OpenShift。

From: https://www.infoworld.com/article/3430716/couchbase-review-a-smart-nosql-database.html

Couchbase评论:智能NoSQL数据库相关推荐

  1. couchbase_Couchbase评论:智能NoSQL数据库

    couchbase 每个大中型企业都需要一个数据库. 大型跨国企业通常需要全球分布的数据库,并且当将其数据库用于财务或库存应用程序时,它们需要高度的一致性. 很少有数据库可以满足这两种需求. 信息世界 ...

  2. 对话Couchbase首席架构师:Couchbase是目前最好的NoSQL数据库平台

    2017年对于NoSQL来说是很有趣的一年,大数据市场充满着机遇同时也充满着变数.所以年末岁初,我们邀请了Couchbase的首席架构师Perry Krug来一起谈谈未来NoSQL的发展.市场动态以及 ...

  3. HBase、Redis、MongoDB、Couchbase、LevelDB 五款主流NoSQL数据库大比拼

    在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资 ...

  4. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  5. 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复

    文章目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchB ...

  6. 带你一文看懂 Blockchain + NoSQL数据库

    来源 | Tyler Mitchell 译者 | 火火酱,责编 | Carol 图源 | CSDN下载自视觉中国 NoSQL数据库和现代区块链分类账都受益于一套共同的原则.由于其二者平台可以相互补充, ...

  7. 开源NoSQL数据库介绍

    目录 一.概述 二.NoSQL数据库 1. MongoDB 2. Cassandra 3. CouchDB 4. Hypertable 5. Redis 6. Riak 7. Neo4j 8. Had ...

  8. NoSQL数据库探讨 - 为什么要用非关系数据库?

    源地址:http://robbin.javaeye.com/blog/524977 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传 ...

  9. Redis面试连环问:集群、复制以及与其他NOSQL数据库的区别?

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 面试官问:您熟悉redis?搭建过redis集群?rediscluster底层的主从复制rdb如何工作的?-- 接下来,就是一 ...

最新文章

  1. SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析
  2. MySQL大小写敏感的解决方案
  3. tomcat需要设置环境变量吗
  4. css 浮动在最上层_CSS编码规范
  5. @order注解_Spring Boot+OAuth2,一个注解搞定单点登录!
  6. Web安全相关(三):开放重定向(Open Redirection)
  7. jenkins 实践
  8. Setup the FD.io Repository - Centos 7
  9. 墨刀 vs Axure RP
  10. Perl 标量的操作符
  11. 红黑树相关定理及其证明
  12. myeclipse6_snv
  13. hmcl手机版_hmcl启动器手机版软件下载-我的世界hmcl启动器官网版最新下载v3.3.159-飘荡下载...
  14. Unity UniWebView内置浏览器插件
  15. excle自动查找,自动匹配数据;查找对比两个相同的但顺序错乱的表格内容。
  16. 0xc0000225无法进系统_0xc0000225无法进系统 - 卡饭网
  17. BZOJ 5109: [CodePlus 2017]大吉大利,晚上吃鸡! 最短路 拓扑 Dp
  18. JS中attr和prop区别
  19. 优动漫PAINT是什么?有哪些功能和特色
  20. 将UTC日期字符串转为本地时间字符串,如@yyyy-MM-dd'T'HH:mm:ssZ转换为本地时间

热门文章

  1. android百度网盘不限速,什么?百度网盘不限速?而且安卓和iOS都支持,开玩笑吧?...
  2. 2021高考成绩排名查询怎么,2021年高考分数一分一段位次表,高考个人成绩排名查询方法...
  3. 程序员创业必读的几本书
  4. 数据结构(王道版本,主讲人:闲鱼学长)P7-P18
  5. Arduino I2C任意更换SDA SCL GPIO引脚
  6. mac移动硬盘初始化
  7. 输入年,月,输出这一年的这个月有多少天
  8. 若依源码分析(6)——部门管理
  9. 炒股小白入门知识——黄金交叉与死亡交叉
  10. Wireshark(2)-协议分析的起点