Tag: nosql

ElasticSearch作为主要数据存储的可靠性如何,可以抵御写入损失,数据可用性等因素

我正在开发一个项目,要求提供一个通用仪表板,用户可以在其中进行不同types的分组,筛选和向下钻取。 为此,我们正在寻找一个允许切片和骰子数据的search商店。 将有多个数据源,并将其存储在search存储中。 源数据可能需要一些预先计算,这可以通过中间组件完成。 我已经浏览了几个博客,了解ES是否可以可靠地用作主数据存储。 它主要取决于我们正在寻找的用例。 关于用例的一些信息我们有: 每年大约有3亿条logging,1-2 KB。 假设存储1年的数据,我们现在有300 GB的数据,但随着数据的增长,用例可能会高达400-500 GB。 截至目前还不确定,我们将如何推动数据,但是大致上,每5分钟可以达到2-3百万条logging。 search请求很低,但需要复杂的查询,可以search过去6周到6个月的数据。 文档将在文档中的几乎所有字段中被索引。 有些博客表示,它足够可靠,可以用作主数据存储 – http://chrisberkhout.com/blog/elasticsearch-as-a-primary-data-store/ http://highscalability.com/blog/2014/1/6/how-hipchat-stores-and-indexes-billions-of-messages-using-el.html https://karussell.wordpress.com/2011/07/13/jetslide-uses-elasticsearch-as-database/ 有些博客说,ES有一些限制 – https://www.found.no/foundation/elasticsearch-as-nosql/ https://www.found.no/foundation/crash-elasticsearch/ http://www.quora.com/Why-should-I-NOT-use-ElasticSearch-as-my-primary-datastore 有没有人使用Elastic Search作为数据的唯一事实,而没有像PostgreSQL,DynamoDB或RDS这样的主存储? 我曾经看过ES有一些问题,比如分裂的大脑和索引腐败,那里可能会有数据丢失的问题。 所以我想知道是否有人使用过ES,并且遇到过数据上的麻烦 谢谢。

什么types的NoSQL数据库最适合存储分层数据?

什么types的NoSQL数据库最适合存储分层数据? 举个例子,我想存储一个树形结构的论坛post: original post + re: original post + re: original post + re2: original post + re3: original post + re2: original post

NoSQL最佳实践

NoSQL数据库,OODB或其他任何缩写词可能存在的最佳实践是什么? 例如,我经常看到一个字段“type”用于决定数据库文档(以couchDB / mongoDB术语)如何由客户端应用程序来解释。 在适用的情况下,使用PHP作为参考语言。 阅读:我也感兴趣的是如何在客户端最好地处理这些数据,而不仅仅是严格的数据库结构。 这实际上意味着我也在寻找像SQL数据库(活动logging,数据映射器等)的“ORM”模式。 不要犹豫,就如何这样一个数据库和PHP 5.3的新function可以最好地协同工作。

在MongoDB的精确元素数组中更新字段

我有一个这样的文档结构: { _id:"43434", heroes : [ { nickname : "test", items : ["", "", ""] }, { nickname : "test2", items : ["", "", ""] }, ] } 我可以$setembedded对象的items数组的第二个元素在数组heros与nickname "test" ? 结果: { _id:"43434", heroes : [ { nickname : "test", items : ["", "new_value", ""] }, // modified here { nickname : "test2", items […]

什么是BSON,和JSON有什么不同?

我刚刚开始与mongoDb和我已经注意到的一个事情是,它使用bson内部存储数据。但是文档不完全清楚什么BSON是什么,以及如何在mongoDb中使用它。有人可以解释它我好吗?

SQL与noSQL(速度)

当人们比较SQL和noSQL,总结每个人的优缺点时,我从来没有听到任何人谈论的是速度。 不是执行SQL查询通常比执行noSQL查询更快 ? 我的意思是,对我来说这将是一个非常明显的结论,因为如果你知道数据库的结构,那么你应该总能find更快的东西。 但是人们似乎从来没有提过这个,所以我想知道我的结论是对还是错。

从DynamoDB中删除大量项目的build议方法是什么?

我在DynamoDB中编写了一个简单的日志logging服务。 我有一个由user_id散列和timestamp(Unix纪元int)范围键入的日志表。 当服务的用户终止他们的帐户,我需要删除表中的所有项目,无论范围值。 做这种操作的推荐方式是什么(记住可能有数百万个项目要删除)? 就我所见,我的select是: 答:执行扫描操作,调用每个退回的项目的删除,直到没有项目剩下 B:执行BatchGet操作,再次调用每个项目的删除,直到没有剩余 这两个对我来说都很糟糕,因为他们需要很长时间。 我最想做的就是调用LogTable.DeleteItem(user_id) – 不提供范围,并删除所有的东西。

最终的一致性在简单的英语

我经常听说关于NoSQL,数据网格等不同演讲的最终一致性。似乎最终一致性的定义在许多来源中是不同的(甚至可能取决于具体的数据存储)。 任何人都可以简单地解释一下最终一致性是什么,与任何具体的数据存储没有关系?

NoSQL移动应用程序?

是否有任何已build立的noSQL数据库解决scheme用于开发原生移动应用程序(Android和/或iOs)?

面向列的NoSQL如何与面向文档的不同?

我读过的三种NoSQL数据库是键值,列导向和面向文档。 键值非常简单 – 一个明码标价。 我已经将面向文档的数据库描述为键值,但是值可以是一个结构,就像一个JSON对象。 每个“文档”可以具有全部,部分或不具有与另一个相同的密钥。 面向列似乎非常像面向文档,因为你没有指定结构。 那么这两者之间有什么区别呢?为什么你会使用一个呢? 我专门研究了MongoDB和Cassandra。 我基本上需要一个dynamic结构,可以改变,但不会影响其他值。 同时,我需要能够search/过滤特定的键和运行报告。 对于CAP,AP对我来说是最重要的。 数据可以“最终”跨节点同步,只要数据没有冲突或丢失即可。 每个用户将获得自己的“表”。