问题标签 [non-relational-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2493 浏览

django - 使用 GAE 数据存储的复杂查询

我正处于开发体育统计网站(终极飞盘)的早期阶段,如果 Google App Engine 适合我,我想知道您的意见。

我正在使用 Django 用 Python 编写它,并且多年来一直对标准 RDBMS 感到满意,但这个站点是一个长期项目,我期待大量数据,所以我想要 GAE 数据存储提供的“无限”扩展。对数据库的绝大多数查询将返回非常标准的结果,这将使数据存储看起来像是一个合乎逻辑的选择。但是,我希望将来能够进行极其复杂的查询,以提出新的统计指标或简单地提出有趣的结果。我计划在未来做很多这样的事情,但在收集到数据之前我不会知道这些查询是什么。

例如,你经常会看到棒球统计分析员提出荒谬的统计数据,例如“这只是过去 50 年来,两名姓氏以“Z”开头的左撇子投手背靠背投出一击即停的情况。天”。我希望将来可以灵活地进行任何查询。:)

但是,我的印象是,像 bigtable 这样的非关系数据库需要您事先提出包含冗余数据的模型,并且所有工作都发生在插入而不是提取上。我已经构建了 django 模型,其中几乎包含了我需要查询的所有数据,但我不知道从现在起一两年后我想要什么样的非规范化模型。因此,我觉得将来在 GAE 数据存储上进行复杂查询将非常困难,并且需要我从服务器上提取大量信息,然后再用 python 处理它。

谷歌应用引擎数据存储对于我想做的事情来说是完全错误的吗?或者我只是错过了一些东西。提前非常感谢!

更新: 感谢到目前为止的回复。我意识到我还应该提到很多这些复杂的查询是我希望用户能够执行的查询,因此离线数据库并不是一个真正的选择。例如,用户应该能够看到任何两个特定球员在特定比赛或赛季中同时在场上时的表现的各种统计数据。虽然这些查询不像标准聚合统计那样频繁,但它们仍然会定期发生。

拥有一个关系数据库和 GAE 数据存储会很棒,但是 django 默认不支持多个数据库,并且将解决方案修补在一起听起来既困难又混乱。Eric Florenzano 为两个都使用 django 模型的数据库提供了一个很好的解决方案,但是如果我要使用 GAE 数据存储,我将不得不使用应用程序引擎的 db 模型。在这一点上,像他为这个复杂的问题提出一个很好的解决方案有点超出我的技能水平。

现在,我最喜欢的两个选项是使用 GAE 任务队列来执行困难的查询,或者使用更标准的网络主机(如 webfaction),然后在我的数据增长并且我需要提高性能时对我的表进行非规范化。

0 投票
3 回答
2864 浏览

couchdb - 表示 couchDB 中的多对多关系

假设我正在编写一个日志分析应用程序。主域对象将是一个 LogEntry。此外。应用程序的用户定义了一个 LogTopic,它描述了他们感兴趣的日志条目。当应用程序接收到日志条目时,它会将它们添加到 couchDB,并根据系统中的所有 LogTopics 检查它们是否符合主题中的条件. 如果是,则系统应记录该条目与主题匹配。因此,LogEntries 和 LogTopics 之间存在多对多的关系。

如果我将其存储在 RDBMS 中,我会执行以下操作:

使用 CouchDB,我首先尝试只有两种文档类型。我有一个 LogEntry 类型,看起来像这样:

我会有一个 LogTopic 类型,看起来像这样:

您可以看到我通过matching_entries在每个 LogTopic 文档中使用一个字段来存储 LogEntry 文档 ID 列表来表示关系。这在一定程度上可以正常工作,但是当多个客户端都尝试将匹配条目添加到主题时,我遇到了问题。两者都尝试乐观更新,一个失败了。我现在使用的解决方案是从本质上重现 RDBMS 方法,并添加第三种文档类型,例如:

这有效,并且克服了并发更新问题,但我有两个保留意见:

  1. 我担心我只是在使用这种方法,因为这是我在关系数据库中所做的。我想知道是否有更类似于 couchDB(放松?)的解决方案。
  2. 我的视图无法再一次调用中检索特定主题的所有条目。我以前的解决方案允许这样做(如果我使用了 include_docs 参数)。

有人对我有更好的解决方案吗?如果我也发布我正在使用的视图会有帮助吗?

0 投票
1 回答
3563 浏览

database-design - 如何为消费者应用程序设计“NOSQL”数据库(例如社交书签)

我一直在阅读很多关于非关系数据库、整个 NOSQL 运动的帖子,并且围绕它有很多新的活动。这似乎是构建高度可扩展的 Web 应用程序的一种非常有趣的方法,但不幸的是(但在这个初期阶段也是一件好事)目前还没有一个明确的领导者/标准。

我的背景是 LAMP 堆栈(以 MySQL 作为 dB),我想了解会有哪些差异和限制 - 但使用现实生活中的 Web 应用程序示例。有很多关于 RDBMS 与非 RDBMS 的优缺点理论的好文章,但我还没有找到任何可以说明现有 Web 应用程序(例如社交书签)如何构建不同的示例新的 dB 结构的优势以及必须遗漏的功能 - NOSQL dB 可以是键值或以文档为中心或图形。

有人愿意对现实世界 Web 应用程序的 NOSQL 与 RDBMS 模型/架构进行高级比较(例如社交书签或任何其他可以很好地解释这些概念的示例)吗?

供其他人参考,以下是我遇到的一些文章:

0 投票
1 回答
829 浏览

ruby-on-rails - 推荐使用 Ruby on Rails 的非关系型数据库?

我想开始使用非关系数据库,但想要一些在 Rails 中普遍使用的东西。我正在考虑文章中的那些,并倾向于 Voldemort 或 CouchDB:

http://www.ithighlight.com/2009/07/list-of-companies-powered-by-non-relational-database/

有什么建议吗?

0 投票
3 回答
159 浏览

.net - 具有 .NET API 的良好非关系/准关系数据库?

有人对带有 .NET API 的非关系/部分关系数据库有什么建议吗?

0 投票
5 回答
1279 浏览

ruby-on-rails - 在 CouchDB 与 MySQL 中存储调查

我正在研究使用 Rails 将调查存储到数据库的最佳方法。我已经检查了这个很棒的Smerf Survey Plugin for Rails,它使用下表将调查存储到关系数据库中:

p>

查看 Smerf 附带的基本调查示例的日志,有一些数据库调用:

p>

我的问题是,使用 CouchDB(面向文档的数据库)而不是关系数据库存储调查是否会更好,因为调查是比其他任何东西都多的文档?沿着这些思路是这些问题:

  • 上面的输出没问题,是不是应该再优化一下?我的意思是,人们不会经常填写调查表,所以他们不需要像闪电一样快,所以我想知道 CouchDB 是否真的会更快
  • 它已经用这个插件很好地构建了,所以我应该只使用它还是在 CouchDB 中使用它会带来真正的好处。我想对此调查数据进行大量分析(大量搜索、排序、加入......)。

谢谢您的帮助。

仍在努力思考何时何地使用 CouchDB :)

0 投票
2 回答
222 浏览

sql - 用基于规则/声明性实现替换关系数据库(SQL Server)?

我已经开始从事金融服务行业的一个项目,该项目(主要)基于 SQL Server (2000)、ColdFusion (8) 和一些 Access/.NET 应用程序。这个项目从一些简单的 Access 表单/VBA 开始,然后慢慢转换为 Web 界面。

我可以说数据库设计和应用程序编码是由在工作中学习的人完成的,并且从一开始就没有机会学习好的设计原则。许多业务规则设置在无数级联函数和存储过程以及 Web 服务器模板中。在使用未注释常量的复杂 500 行 SQL UDF 中有大量特殊情况处理。跟踪查询中可能涉及的 10-20 个 UDF 之间的所有交互是非常困难的。一些查询似乎需要很长时间才能运行(最多 15 分钟)。

虽然这些表的索引相当好,但缺乏 FK 关系并且几乎没有参照完整性。数据库很少更新,每天都有少量的批量(多个表中的 1,000 条记录)。它主要用作数据存储库 - 我想是数据仓库。我们很少遇到死锁或延迟。

所以,我的问题是:如果我想重新实现整个项目,包括数据库和前端,看看非关系实现是否有意义?主数据库只有大约 1GB (.mdf),因此可以轻松放入内存中。我想从 SQL 查询结构转移到一些可以有效编译和执行的声明性模型。如有必要,我可以将 SQL DB 用作数据存储。

0 投票
2 回答
451 浏览

ruby-on-rails - 使用 Rails 从关系数据库切换到非关系数据库是否容易?

再会,

过去我一直在使用 Rails/Mysql,但我听说过 Cassandra、MongoDB、CouchDB 和其他文档存储 DB/非关系数据库。我计划稍后探索它们,因为它们可能是可扩展性的更好选择。

我打算很快开始申请。如果我从关系数据库迁移到非关系数据库,它会对 Rails 设计产生什么影响吗?我知道 Rails 迁移与数据库无关,但不确定迁移到非关系迁移是否会对设计产生影响。

0 投票
2 回答
753 浏览

ruby-on-rails - SimpleDB to ActiveResource. Rails

Im looking for a way to map an ActiveResource to SimpleDB

I want to avoid plugins/gems as all I have used are outdated/buggy/not mantained

It doesnt seem hard, I wonder if any of you have succesfully implemented a rails app with simpleDB as an Active Resource. How did you do it? Thanks.

0 投票
3 回答
1145 浏览

nosql - SimpleDB作为主数据库,例子

请问,您能举出使用 SimpleDB 作为主要持久存储的实际实现示例吗?