2013-11-26 72 views
0

我有一个每秒处理大量事务的ESB(5000)。它以不同类型的格式接收所有类型的请求(xml,json,csv,有些是无格式的)。正如你可以想象的那样,很多请求正在被处理。记录和查询大量事务数据的最佳方式是什么?

问题是由于要求,我必须记录每一个这种数据的审核/问题的解决方案。这些数据必须可以使用请求数据的任何部分进行搜索,这些数据来自用户的想法。目前主要问题是:

  • 的数据(XML)对我们的RDBM (SQLServer的2008年)重又引起插入锁定。

  • 查询这些大数据(XML和其他非结构化数据)需要大量的时间,尤其是当它们未被优化时。 (免费文字搜索没有解决我的问题,它仍然太慢)。

  • 数据增长非常快(预计 - 我希望有数据库可以优化保存的数据以节省空间)。几个月的数据消耗了数百GB。

问题是,什么数据库甚至设计原则最能解决我的问题:NoSQL,RDBMS,其他?我想要一些可以记录速度更快,并且可以使用任何部分存储数据快速搜索的记号。

+0

请问你有什么解决方案? –

+0

我遵循ryan1234建议(ElasticSearch)。请注意,对于我的用例,交易完整性不是必需的。 – Lekkie

+0

我可以问,每秒收到多少个请求?以及我们在此讨论的服务器环境或ES群集是什么?和你一样,但是想要实现自己的解决方案或Mongodb。 –

回答

1

我会考虑弹性搜索:http://www.elasticsearch.org/

为您的使用情况下的优点:

  1. 能规模很大。随着数据的增长,您只需将节点添加到群集。
  2. 基于Lucene,所以你知道这是一个经过时间考验的搜索引擎。
  3. 它是无模式的,因此您不必执行任何ETL来存储数据。按原样存储。
  4. 它得到了良好社区的支持,并有许多企业使用它(包括堆栈溢出)。
  5. 它是免费的!
  6. 它很容易搜索,并提供很多的控制,如何提高某些结果,所以你可以调整它的你的域名。

我会考虑在它前面放一个队列,以防你试图写得比它能处理的速度快。

相关问题