Couchbase中的数据库相当于什么
What is the equivalent of database in Couchbase
MongoDB有3层:
- 服务器
- 数据库
- Collection
但是,在 Couchbase 中我发现缺少了一些东西;图层是这样的:
- 集群(一组服务器)
- 数据库(丢失!!!)
- 桶
我需要部署 2 个数据库,1 个用于开发,1 个用于生产。缺少的数据库层让我陷入困境。
终于发现Couchbase中Cluster层和Bucket层之间没有任何东西
我使用的唯一解决方案是为所有存储桶名称添加前缀。例如
databasename.users
databasename.articles
...
Couchbase 中有一个名为 'pool' 的东西,但将来可能会添加:What is a couchbase pool
P.S.
My latest layer mapping for Couchbase:
Server
A cluster, a server, eg. localhost
DB
A bucket, eg. mybucket
Table
A document design, eg. dev_users, and a group of
documents with doc.type=="user" forms the 'users' table.
Pre-select
A view, eg. dev_users/all_users
您可以粗略地将 Couchbase 存储桶视为类似于 MongoDB 中的数据库,尽管在 Couchbase 中似乎更常见的是存储桶较少并且在一个存储桶中包含多种类型(通过使用类型来区分每个 JSON 存储的对象上的字段)。
我真的建议不要将您的开发和生产存储桶放在同一个集群上,它们应该不惜一切代价分开。一旦你 运行 两个集群就不会出现上述问题,你甚至可以 运行 一个本地虚拟机集群进行开发,然后在 运行 上拥有一个真正的生产集群云提供商。
您将拥有一个集群(组成集群的所有服务器作为一个集群)
然后是桶。类似于数据库。
CB中没有"Tables"。因为通常在行中的内容现在在文档中。
您可能在 SQL 中有单独的数据库,在 CB 中您可以将它们放在一个或多个存储桶中。桶更好地用作逻辑、用途、索引、安全等分离。看到这个:http://nosqlgeek.blogspot.de/2015/09/how-many-buckets.html
术语池是在 1.8 版中引入的,指的是集群中的节点。在该上下文中不再使用。最新版本是 4.1
您会看到术语 "pools" 与组结合使用。组是节点的逻辑分组,通常用于机架 awareness/transaction 区域。因此,如果您有六个节点,每个机架 2 个节点,您可能已经定义了组(池)1:机架 1 组 2:机架 2 组 3:机架 3 和 Couchbase 足够聪明,可以确保副本文档与主文档不在同一组中.
还有连接池,但我不认为那是你指的...
在较新版本的 Couchbase 中,不支持作用域和集合。所以,看来你的愿望实现了。
https://docs.couchbase.com/server/7.0/introduction/whats-new.html#whats-new-server-700
从 Couchbase 7(目前处于测试阶段,即将发布 GA)开始,有一些额外的“层”可能会对您有所帮助。
Cluster <-> Server
Database (Catalog) <-> Bucket
Schema <-> Scope
Table <-> Collection
Row <-> Document
这些是粗略的等价物,但根据您将 Couchbase 与哪个数据库进行比较,该翻译的“左侧”部分的名称可能会有所不同。
MongoDB有3层:
- 服务器
- 数据库
- Collection
但是,在 Couchbase 中我发现缺少了一些东西;图层是这样的:
- 集群(一组服务器)
- 数据库(丢失!!!)
- 桶
我需要部署 2 个数据库,1 个用于开发,1 个用于生产。缺少的数据库层让我陷入困境。
终于发现Couchbase中Cluster层和Bucket层之间没有任何东西
我使用的唯一解决方案是为所有存储桶名称添加前缀。例如
databasename.users
databasename.articles
...
Couchbase 中有一个名为 'pool' 的东西,但将来可能会添加:What is a couchbase pool
P.S. My latest layer mapping for Couchbase: Server A cluster, a server, eg. localhost DB A bucket, eg. mybucket Table A document design, eg. dev_users, and a group of documents with doc.type=="user" forms the 'users' table. Pre-select A view, eg. dev_users/all_users
您可以粗略地将 Couchbase 存储桶视为类似于 MongoDB 中的数据库,尽管在 Couchbase 中似乎更常见的是存储桶较少并且在一个存储桶中包含多种类型(通过使用类型来区分每个 JSON 存储的对象上的字段)。
我真的建议不要将您的开发和生产存储桶放在同一个集群上,它们应该不惜一切代价分开。一旦你 运行 两个集群就不会出现上述问题,你甚至可以 运行 一个本地虚拟机集群进行开发,然后在 运行 上拥有一个真正的生产集群云提供商。
您将拥有一个集群(组成集群的所有服务器作为一个集群) 然后是桶。类似于数据库。 CB中没有"Tables"。因为通常在行中的内容现在在文档中。
您可能在 SQL 中有单独的数据库,在 CB 中您可以将它们放在一个或多个存储桶中。桶更好地用作逻辑、用途、索引、安全等分离。看到这个:http://nosqlgeek.blogspot.de/2015/09/how-many-buckets.html
术语池是在 1.8 版中引入的,指的是集群中的节点。在该上下文中不再使用。最新版本是 4.1 您会看到术语 "pools" 与组结合使用。组是节点的逻辑分组,通常用于机架 awareness/transaction 区域。因此,如果您有六个节点,每个机架 2 个节点,您可能已经定义了组(池)1:机架 1 组 2:机架 2 组 3:机架 3 和 Couchbase 足够聪明,可以确保副本文档与主文档不在同一组中.
还有连接池,但我不认为那是你指的...
在较新版本的 Couchbase 中,不支持作用域和集合。所以,看来你的愿望实现了。
https://docs.couchbase.com/server/7.0/introduction/whats-new.html#whats-new-server-700
从 Couchbase 7(目前处于测试阶段,即将发布 GA)开始,有一些额外的“层”可能会对您有所帮助。
Cluster <-> Server
Database (Catalog) <-> Bucket
Schema <-> Scope
Table <-> Collection
Row <-> Document
这些是粗略的等价物,但根据您将 Couchbase 与哪个数据库进行比较,该翻译的“左侧”部分的名称可能会有所不同。