16

我们正在设计一个 OLTP 财务系统。它应该能够支持每秒 10.000 笔交易并具有报告功能。

所以我们想到了使用:

  • 一个 NoSQL DB 作为我们的主要存储
  • 一个 MySQL 数据库(实际上是 Percona 服务器)从 NoSQL 数据库生成一些 ETL 以存储报告数据

我们正在考虑将 MongoDB 和 Riak 用于 NoSQL 作业。我们读到 Riak 比 MongoDB 更平滑地扩展。我们想听听您的意见。

  • 您会将哪个 NoSQL DB 用于 OLTP 金融系统?
  • 您扩展 MongoDB/Riak 的经验如何?
4

9 回答 9

18

在任何与金融有关的事情上,我都不会使用 NOSQl 数据库。您根本没有所需的数据完整性或内部控制。Dow Jones 使用 SQL Server 来执行其事务,如果他们能够正确设计一个高性能、高事务的关系数据库,那么您也可以。你将不得不投资一些知道自己在做什么的人。

于 2011-06-02T21:27:37.933 回答
7

人们必须以不同的方式思考问题。事务一致性的概念源于 CRUD(创建、读取、更新、删除)中的 UD(更新)。noSQL DB 是面向 CRAP(创建、复制、追加、处理)的,通过增加时间戳数据来工作。使用正确的域模型,没有理由不能实现可审计性和引用完整性的等价物。

于 2013-09-16T18:45:04.143 回答
6

基于全球存储的 NoSQL 数据库——来自 InterSystems 的 Cache 和来自 FIS 的 GT.M——被广泛用于金融服务并且已经使用了很多年。缓存尤其用于核心数据库和 OLTP。

于 2011-06-06T08:52:04.823 回答
4

我可以回答关于我扩展 Riak 的经验。

Riak 平滑地扩展至极端。扩展就像向集群添加节点一样简单,这本身就是一个非常简单的操作。您可以通过简单地添加节点来实现近乎线性的可扩展性。就扩展性而言,我们使用 Riak 的经验令人惊叹。

另一方面是它在许多方面都缺乏。一些例子:

  • 你不能在生产集群上做类似的count(*)事情。list keys如果您想从 Riak 到 MySQL 进行 ETL,那么这将需要解决 - 或者您如何知道要 (E)xtract 什么?(一种可能的解决方法是维护一个具有已知键序列的存储桶,该键序列映射到包含您插入到其他存储桶中的键的值)。
  • Riak 的免费版本没有让您知道发生了什么的管理控制台,企业版中包含的管理控制台并没有太大的改进。
  • 您将需要您希望通过 WAN 复制数据的企业版(例如,用于 DR/高可用性)。如果您不介意付款,那也没关系,但请记住,Basho 的定价非常高。
于 2011-06-02T18:12:28.877 回答
1

我使用 Starcounter(所以我有偏见),但我认为我可以肯定地说,对于处理金融交易的系统,您必须担心交易一致性。不幸的是,这就是 Facebook 和 Twitter 所使用的引擎不得不放弃的东西,允许他们的横向扩展策略提供性能。这并不是因为 MongoDb 或 Cassandra 等引擎设计不佳;相反,它自然地遵循 CAP 定理 (http://en.wikipedia.org/wiki/CAP_theorem)。简而言之,如果您在数据库中所做的更改及时发生,它们将覆盖其他更改。状态更新和新推文还可以,但如果您处理金钱或其他数量,那将是灾难性的。当许多读取和写入并行完成时,这些数量最终会出错。因此,对于您需要的吞吐量,

于 2011-06-22T19:59:37.580 回答
1

如果您使用来自 DDD 的事件溯源和概念来实现您的应用程序,您可以使用一些 NoSQL 数据库(Cassandra、EventStore)作为金融服务的存储。我建议你阅读这本迷你书http://www.oreilly.com/programming/free/reactive-microservices-architecture.html

于 2016-06-19T15:31:12.540 回答
1

OLTP 可以使用带有自定义实现的 NoSQL 来实现,

有两件事,1. 你将如何实现 RDBMS 提供的 ACID 属性。2.提供自定义的阻塞或非阻塞并发和事务处理机制。

为了让您更接近解决方案,Apache Phoenix、apache trafodion 或 Splice 机器。

于 2017-09-23T17:07:08.623 回答
0

Trafodion 对 HBase 有完整的 ACID 支持,你应该看看。

于 2017-10-21T01:42:31.397 回答
-4

Cassandra 可用于 OLTP 和 OLAP。良好的复制和最终的数据一致性使您可以选择。需要正确设计系统。毕竟它是免费的,但不是免费的,试一试

于 2014-09-20T19:36:33.787 回答