标签: nosql

NewSQL 一降一换?

最近在研究和阅读 NewSQL 实现,例如 ScaleDB、Clusterix、VoltDB 等……根据这个术语,它是一个可扩展的关系数据库,支持类似于 MySQL/Oracle 的 SQL 语言。

这是否意味着它是 MySQL/Oracle 的替代品?复杂的查询呢?

它似乎很有前途,并宣传自己作为替代品的下降,其中多少实际上是事实。我的猜测是,类似于 NoSQL,这将位于传统的 RDBMS 系统(如 Oracle)之前,仅用于提供高事务性数据,但仍依赖更稳定的后端系统来维护/保存数据?

对这个主题的洞察力和想法将不胜感激。

mysql oracle nosql

0
推荐指数
1
解决办法
699
查看次数

如何在 cassandra 中创建 @OneToMany 表

我想使用 cassandra,但我没有使用关系 @onetomany 或 @ManyToMant。我使用 java 和 cassandra-core 驱动程序。我如何使用这些关系

java one-to-many nosql cassandra-2.0

0
推荐指数
1
解决办法
1333
查看次数

如何在数据库中存储无限标签?

我正在一个网站上工作,要求用户为他们新创建的内容提供标签(类似于stackoverflow标签).但是如何存储这个标签?,如果使用mysql数据库,那么我必须设置列数限制和标签本身数量.既然我希望为用户提供无限制的标记选项,应遵循哪种方法?

php mysql database tags nosql

0
推荐指数
1
解决办法
226
查看次数

PouchDB / CouchDB中_id的最佳做法

TL; DR:如果选择使用文档的addresslastname中的字段_id,您将如何处理在多设备(有时是脱机)环境中的扩展address以及lastname扩展方式。


在文档_id中使用将来可能会更改的字段时,我正在寻找最佳实践。例如,address和/或lastname。不仅客户的地址可以更改,而且如果用户错误输入了错误的地址怎么办?如果在跨设备复制文档并在多个设备上更新文档之后才发现错误,该怎么办?

有没有办法处理_ids的更新?例如,用一个新文件创建一个全新文件_id并删除旧文件?但这是否可以在多设备,有时甚至是离线世界中扩展?

例如:

{
  "_id": "Jane-Smith",
  "address": "44 street, Boston, MA 93999",
  "telephone": "8888888888"
}
Run Code Online (Sandbox Code Playgroud)

要处理有多个同名客户的情况,在客户名中添加一些内容是否有意义?

{
  "_id": "Jane-Smith-7ae78c",
  "address": "44 street, Boston, MA 93999",
  "telephone": "8888888888"
}
Run Code Online (Sandbox Code Playgroud)

优点:

  1. 节省空间
  2. 由于_id是主键,因此使用_id的搜索速度更快

缺点:

  1. 如果_id更改中使用了属性该怎么办?搜索将对陈旧的数据执行。如果使用更新后的文档创建新文档,则_id可能已进行脱机更改的同步数据库的实现是什么?

更新:

这篇文章很有帮助:

https://davidcaylor.com/2012/05/26/can-i-see-your-id-please-the-importance-of-couchdb-record-ids/

我没有意识到_ids可以由address 组成lastname但是,如果客户的地址和/或名称发生变化怎么办?

我正在设法把正确的方法存储customer在PouchDB / CouchDB中。

couchdb nosql pouchdb

0
推荐指数
1
解决办法
969
查看次数

如何构建DocumentDB数据库

我是NoSQL的新手,所以我可能只是有一个基本的误解......

我阅读了本教程,讲授如何使用Firebase制作聊天应用程序.例如,直接消息聊天的JSON如下所示:

{
  "userMessages": {
    "userid1": {
      "userid2": {
        "messageId1": {
          "uid": "userid1",
          "body": "Hello!",
          "timestamp": firebase.database.ServerValue.TIMESTAMP
        },
        "messageId2": {
          "uid": "userid2",
          "body": "Hey!",
          "timestamp": firebase.database.ServerValue.TIMESTAMP
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请求消息时,您将查看userMessages/UserId1/UserId2.这将给出两个用户之间的所有消息.

我决定使用DocumentDB尝试类似的东西,我不知道该怎么做.看起来我应该能够创建一个名为UserMessages的容器并将所有数据放在上面,但似乎DocumentDB只允许检索和更新顶级文档.所以在这种情况下,我需要将所有内容都放在userid1下,并且每当我添加消息时,我都需要更新整个userid1文档,包括所有未更改的消息.

我能看到这项工作的唯一方法就是将这种设计弄平.但是展平应用程序的其余部分(包含许多更复杂的对象)似乎需要创建更多的容器(每个都要花钱)当我应该能够拥有更多分层设计并仅更新我需要的层或者仅推送需要推送的其他数据.

长话短说,我对NoSQL应该如何构建有一个根本的误解,或者DocumentDB与其他NoSQL解决方案有什么不同?谢谢!

azure nosql azure-cosmosdb

0
推荐指数
1
解决办法
455
查看次数

Cassandra数据模型 - 列族

我在这里查了一些问题,比如理解Cassandra数据模型Column-family概念和数据模型,以及一些关于Cassandra的文章,但我还不清楚它的数据模型是什么.

Cassandra遵循列族数据模型,类似于键值数据模型.在列族中,您有行和列中的数据,因此二维结构,除此之外,您还有列族中的分组?我想这是在列族中组织的,以便能够跨多个节点对数据库进行分区?

行和列如何分组为列族?为什么我们有列系列?

例如,假设我们有消息数据库,如行:

id: 123, message: {author: 'A', recipient: 'X', text: 'asd'}
id: 124, message: {author: 'B', recipient: 'X', text: 'asdf'}
id: 125, message: {author: 'C', recipient: 'Y', text: 'a'}
Run Code Online (Sandbox Code Playgroud)

我们如何以及为什么围绕列族数据模型组织这个?

注意:如有必要,请更正或扩展示例.

database data-modeling cassandra nosql column-family

0
推荐指数
1
解决办法
117
查看次数

MUMPS到缓存数据库的迁移

客户希望从其MUMPS数据库中提取信息并将其传输到缓存数据库,我应该从哪里开始,应该牢记哪些最佳实践?(我对MUMPS还是比较陌生,并且已经参加了这个项目)

caching intersystems database-migration mumps nosql

0
推荐指数
1
解决办法
242
查看次数

在CosmosDb的Datediff

嗨有没有办法在cosmosdb中实现dateiff?

Select Datediff(day,c.datea, c.dateb) from c
Run Code Online (Sandbox Code Playgroud)

显然,约会者不是一个受支持的关键词,我无法找到一个等价物.

提前致谢

azure nosql azure-cosmosdb

0
推荐指数
2
解决办法
398
查看次数

MongoDB 根据条件按计数分组

我有以下 mongo DB 架构:

 {
    "_id" : "5b76c3c037548390fdb5b40e",
    "userId" : "4601",
    "modified" : ISODate("2018-08-21T19:13:43.301+05:30"),
    "rStatus" : "started",
},
{
    "_id" : "5b76c3c037548390fdb5b40e",
    "userId" : "13",
    "modified" : ISODate("2018-08-21T19:13:43.301+05:30"),
    "rStatus" : "completed",
},
........
Run Code Online (Sandbox Code Playgroud)

需要通过修改日期和 rStatus 字段的计数来获取数据组,例如

{
    modified:"2018-08-21",
    count :{"completed":1,"ongoing":4}
},
{
    modified:"2018-07-23",
    count :{"completed":2,"ongoing":5}
},
Run Code Online (Sandbox Code Playgroud)

我正在使用 $group 但它按修改日期计数,而不是按内部键的值。

mongoose mongodb nosql mongodb-query nosql-aggregation

0
推荐指数
1
解决办法
3767
查看次数

如何在 Firebase 实时数据库上为聊天应用程序建模?

我正在尝试为聊天应用程序设计一个结构,包括私人消息和组我使用实时 firebase 我不知道如何设计结构任何帮助请我尝试做这样的事情是真的 聊天应用程序结构

Users
     |
     |_USER1
     |     |
     |     |__FRIENDS
     |     
     |_USER2
           |
           |__FRIENDS
Run Code Online (Sandbox Code Playgroud)

database nosql firebase firebase-realtime-database

0
推荐指数
1
解决办法
2337
查看次数