记录和查询繁重的事务数据的最佳方法是什么?

时间:2013-11-26 09:29:20

标签: database search logging transactions auditing

我有一个每秒处理大量事务的ESB(5000)。它以不同类型的格式接收所有类型的请求(xml,json,csv,有些是无格式的)。正如您可以想象的那样,正在处理大量请求。

问题是由于需求,我必须记录每个数据以进行审核/解决问题。这些数据必须使用用户心中的请求数据的任何部分进行搜索。主要问题是:

  • 数据(XML)很重,导致我们的RDBM上出现插入锁定 (SQLServer 2008)。

  • 查询这些大数据(XML和其他非结构化数据)需要一个 很多时候,特别是当他们没有优化。 (自由文本搜索没有解决我的问题,它仍然太慢了。)

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

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

1 个答案:

答案 0 :(得分:1)

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

您的用例的好处:

  1. 可以扩大规模。您只需在数据增长时将节点添加到群集中。
  2. 基于Lucene,所以你知道它是经过时间考验的搜索引擎。
  3. 它是无模式的,因此您无需执行任何ETL来存储数据。只需按原样存储。
  4. 它得到了良好社区的支持,并且有许多企业公司使用它(包括Stack Overflow)。
  5. 它是免费的!
  6. 可以轻松搜索并提供对如何提升某些结果的大量控制权,以便您可以针对您的域进行调整。
  7. 我会考虑在它前面放一个队列,以防你试图写得比它能处理得快。