database - NOSQL 中的存储过程

标签 database nosql

我们使用 PostgreSQL 开发了一个 Web 应用程序。我们最近决定利用 Hadoop/MapReduce 的优势迁移到 NOSQL 世界(我们选择 cassandra 作为数据库)。这将使我们能够迁移到大数据世界:我们正在处理来自不同来源的大量(数十亿条记录)数据。

我们的应用程序包含一些非常复杂的计算算法。在实际版本中(使用 postgresql),这些算法是在存储过程中实现的。现在,我们想把这个存储过程迁移到cassandra。

我也有问题:

1- 这在技术上是否可行? 2- 测试可行性的最佳方法是什么? 3- 我们是否必须期望通过执行此迁移来大幅提高性能。

感谢您的支持。 瓦利德

最佳答案

在 Cassandra 中没有真正等同于存储过程的东西,但是新创建的 Triggers可能会帮助你。触发器可以写在任何 JVM language并且可以直接放置在 Cassandra 节点上——它们在语句执行的BEFORE 被触发,因此您可以将您的逻辑放在此处。如果触发器不符合您的需求,我认为唯一的选择是将逻辑直接放在应用程序中。

至于第 3 个问题,则视情况而定。 Cassandra 提供线性可扩展性,这意味着如果 X 节点支持 Y 事务/秒,则 NX 节点可以达到 NY 事务/秒——但是没有所有信息就无法预测性能增强(或降低)(并且,即使在这种情况下,它不容易)

HTH,卡罗

关于database - NOSQL 中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25040046/

相关文章:

MongoDB概念直接访问文件或访问导入数据(访问RAW数据)

elasticsearch - NoSQL,ElasticSearch甚至是老式的关系数据库?

node.js - db.collection 不是一个函数

mysql - 按两列分组,反之亦然

linux 和文本编辑器中的 java.lang.ClassNotFoundException : com. mysql.jdbc.Driver 异常

nosql - 如何从 Cassandra 的时间序列中选择最后一条记录?

MongoDB:如何使用_id 获取集合中的最新文档?

go - 如何确保 NoSQL 记录中属性的唯一性(Golang + tiedot)

cassandra - cassandra 2.1.2 中的 "Number of Keys"输出中缺少 "nodetool cfstats"。现在如何获取行数?

asp.net - 编码练习 : how to avoid hard coding?