标签: nosql

Cassandra:如何在分页中跳过行?

我们可以在不使用分页状态的情况下在Cassandra中使用分页吗?我的意思是,例如,如果我们想对第一页之后的第三页进行随机访问(跳转),该怎么办?

paging cassandra nosql

4
推荐指数
1
解决办法
1575
查看次数

使用max子字段查询文档

假设我们有一些文件如下:

{
  "_id": {
    "title": "ABC",
    "version": 1
   },
  "status": "Submitted",
  ....
}

{
  "_id": {
    "title": "ABC",
    "version": 2
   },
  "status": "Submitted",
  ....
}

{
  "_id": {
    "title": "XYZ",
    "version": 1
   },
  "status": "Submitted",
  ....
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得version每个不同的最大文件title

对于上面的数据集,结果应该是:

{
  "_id": {
    "title": "ABC",
    "version": 2
   },
  "status": "Submitted",
  ....
}

{
  "_id": {
    "title": "XYZ",
    "version": 1
   },
  "status": "Submitted",
  ....
}
Run Code Online (Sandbox Code Playgroud)

mongodb nosql aggregation-framework

4
推荐指数
1
解决办法
343
查看次数

Firebase实时数据库规则(所有人都可以读取,但只能编辑所有者)

到目前为止,我一直在使用此规则配置

{
  "rules": {
    "items": {
      ".read" : true,
      "$uid": {
        ".read" : true,
        ".write": "auth != null && auth.uid == $uid"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

验证和其他目录被省略。/ items / user1 / item1 / items / user2 / item1

全部可以读取项目目录和所有用户项目(无私有项目)

我需要什么?

平面项目

"items" : {
     "item1": {},
     "item2": {}
}
Run Code Online (Sandbox Code Playgroud)

以userId作为属性

"item1" : {
    "uid": "userId"
}
Run Code Online (Sandbox Code Playgroud)

只有用户创建的项目可以编辑/删除,但所有人都可以看到。

我在考虑不同目录中的重复项,例如

"public_items": {
         "item1": {},
         "item2": {}
}


"items": {
   "userId": {
      "item1": {},
      "item2": {},
   }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不是一个好主意。

规则以原子方式应用。这意味着,如果该位置或父位置没有授予访问权限的规则,则读取或写入操作将立即失败。即使可以访问每个受影响的子路径,在父位置的读取也将完全失败。 https://firebase.google.com/docs/database/security/securing-data#read_and_write_rules_cascade

如果不能将规则应用于每个项目,则如何用不同的所有者构建项目目录?

nosql firebase firebase-realtime-database

4
推荐指数
1
解决办法
866
查看次数

什么是多态数据?NoSQL数据库

引自MongoDB架构指南

开发人员正在使用创建大量新的,快速变化的数据类型的应用程序 - 结构化,半结构化,非结构化和多态数据.

什么是多态数据?请为具有SQL背景的人解释.

database mongodb nosql

4
推荐指数
1
解决办法
2874
查看次数

Azure DocumentDB ARRAY_CONTAINS嵌套文档

看起来ARRAY_CONTAINS嵌套文档上的函数永远不会匹配任何文档.

例如,使用Azure DocumentDB Query Playground尝试以下简单查询将不返回任何结果,即使某些嵌套文档应与此查询匹配.

SELECT *
FROM food
WHERE ARRAY_CONTAINS(food.tags.name, "blueberries")
Run Code Online (Sandbox Code Playgroud)

Stack Overflow上的这个过去的问题也暗示这种嵌套查询是有效的.

谢谢

nosql azure-cosmosdb

4
推荐指数
1
解决办法
1325
查看次数

DynamoDb - 如何进行批量更新?

来自关系背景,我习惯于写下这样的东西:

UPDATE Table Set X = 1 Where Y = 2
Run Code Online (Sandbox Code Playgroud)

然而,在类似Dynamodb的db中,这样的操作似乎很难实现.假设我已经对Y = 2的项目进行了查询.

我看到它的方式,提供API有两个选项:

  • 做很多很多个人update请求,或者
  • 做一个batch write和写入所有数据的回,应用了更新.

这两种方法看起来都很糟糕,性能也很差.

我错过了一些明显的东西吗?或者非关系型数据库不是为了按照这种规模处理"更新"而设计的 - 如果是这样的话,我可以在不增加性能成本的情况下实现类似的东西吗?

nosql amazon-dynamodb

4
推荐指数
1
解决办法
3053
查看次数

只允许用户访问自己在Firebase数据库中的数据?

我正在尝试拥有这样的数据结构,并确保用户只能提取自己的数据,因为所有处理都是在客户端完成的。

我必须使用什么数据库安全规则,以便User1可以访问自己的帖子,但不能访问User2的帖子?

(我正在使用Firebase网站)

示例数据库结构:

{
  "posts" : {
    "001" : {
      "text" : "note 1",
      "userID" : "User1"
    },
    "002" : {
      "text" : "note 2",
      "userID" : "User1"
    },
    "003" : {
      "text" : "note 3",
      "userID" : "User2"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

示例数据库查询:

firebase.database().ref('/posts/').once('value').then(function(snapshot) {
  console.log(snapshot.val()); // Returns all 3 posts
});
Run Code Online (Sandbox Code Playgroud)

database hierarchical-data nosql firebase firebase-realtime-database

4
推荐指数
1
解决办法
2116
查看次数

documentdb中的齐次与异构

我正在使用Azure DocumentDB,我在NoSql中的所有经验都在MongoDb中.我查看了定价模型,每个集合的成本.在MongoDb中,我会为我使用的东西创建3个集合:用户,公司和电子邮件.我注意到这种方法每月收费24美元.

我和我一起工作的人告诉我,我做错了.我应该将所有这三个东西存储在一个集合中,并带有一个字段来描述数据类型.每个集合应该按日期或地理区域相关联,因此世界上有一部分要搜索的部分较小.并:

"将不同类型的文档合并到一个集合中,并在所有文档中添加一个字段,以便像搜索类型字段或其他内容一样将它们分开"

我永远不会梦想在Mongo中这样做,因为它会使索引,分片键和其他难以理解的东西.

可能没有可能在对象之间重叠的字段(例如:电子邮件和公司对象)

我可以这样做,但我似乎找不到任何其他人这样做的例子 - 这向我表明可能是不对的.现在,我不需要一个例子,但是有人可以指向某个位置来描述哪个是"正确"的方法吗?或者,如果您为所有数据创建单个集合 - 除了Azure的定价模型之外,这样做的优点/缺点是什么?

关于DocumentDb架构设计的任何好文章?

azure nosql azure-cosmosdb

4
推荐指数
1
解决办法
1296
查看次数

为什么Cassandra用于Kong Api Gateway

Kong使用Cassandra或Postgres.Cassandra知道用于编写繁重的应用程序.我没有看到Kong api网关那么重写,也没有一个表使用Cassandra重要的功能分区键之一.我怀疑是为什么Cassandra用于Kong,有什么特别的原因吗?我们不能使用RDBMS来实现这一点.

postgresql cassandra nosql system-design kong

4
推荐指数
1
解决办法
2174
查看次数

具有大量数据的SQL与NoSQL性能

在我自己的服务器和AWS服务器上进行了多天的研究和多次负载测试后,我决定向社区提问.

我正在开发一个图像跟踪平台.在此平台上,用户可以关注图像和其他图像,这些图像是作为对后续图像的回复而发送的.

基本方案

示例模式

"跟踪"表可在未来12个月内达到1,000,000,000条记录.我们担心,每个用户访问我们的家必须咨询所有照片,并通过他们加入照片来显示.在跟踪表中,不进行DELETE和UPDATE,仅进行INSERTS.

我已经使用Spawner数据生成器执行测试生成虚拟数据,在"跟踪"表中放置了1亿条记录.在完成三个必需的JOIN时,我得到了一个非常好的respio时间(或者我认为)~35ms,但是当我执行100个或更多并发查询时,系统运行速度非常慢,甚至需要25秒才能回答.

我开始认为MongoDB至少可以帮助每个用户(文档)有一系列照片跟随(子文档),但其中一个问题是16mb的限制,另一个是带来每个"回复" "(带有字段photo_id的文件).我还试图做一个除了跟踪之外的集合(带有user_id和photo_id的文档)以避免16mb的问题,但仍然存在带来"回复"的问题(我不认为这是一个最佳解决方案,除了我理解对于Relational数据,不使用NoSQL.您必须使用适当的工具)

问题:

1 - SQL是设计用于进行此类查询还是我对技术的使用不当?

2 - 在这种情况下不应使用MongoDB,因为它依赖于关系数据.我对吗?

3 - 你有什么建议吗?

老实说,我非常关心性能,特别是公寓达到了一排排

为什么你不应该使用MongoDB - Sarah Mei:感兴趣的文章引起了标题的巨大轰动.我已经阅读了有关该文章的几个意见,我变得更加困惑

用于测试的服务器:

第一:

与MariaDB的-AWS免费套餐.

第二:

-CPU:Celeron J1900

-RAM:4GB 1666mhz

-SSD:32 GB

-OS:Ubuntu服务器16.04

- 软件:MariaDB

第三:

-CPU:i7 7700

-RAM:16GB 2133mhz

-SSD:512

-OS:Windows 10

- 软件:MariaDB

mysql sql mongodb nosql

4
推荐指数
1
解决办法
1941
查看次数