2013-03-14 95 views
3

我知道在该主题中提出了类似的问题,但我仍然没有看到任何完全包含我所有请求的人。NoSQL或RDBMS用于审计数据

我会开始说我只有RDBMS的经验,所以我很抱歉,如果我得到关于NoSQL的任何错误。

我正在创建一个可以容纳大量审计日志(大约1TB)的数据库。

我使用它:

  1. 快速数据写入(审计日志的巨量写入所有的时间)

  2. 搜索 - 进行了审计数据搜索(搜索行动由某个用户在某个时间或某个动作...数据库应支持搜索任何'列'非常快)

  3. 分析&报告 - 生成每日,每周,每月报告数据(这些都在一瞬间预定义。如果他们更有活力,它影响的解决方案,我应该选择?)

可靠性,可扩展性(故障切换,或任何类似的功能支持)(如果我增长到1TB以上到2TB,10TB或100TB - 是否有任何解决方案不能支持这一数据量?),当然性能(在我指定的用例中)对我来说非常重要。

我知道RDBMS,这将是我开始的简单方法,但我真的担心,过了一段时间,数据库根本无法跟上节奏。

我的问题是我应该选择一个RDBMS或NoSQL解决方案,为什么?如果NoSQL解决方案因为它们如此不同,您认为哪些解决方案符合我的需求?

回答

7

通常在这里没有正确或错误的答案。

快速数据写入,无论哪种解决方案都可以,尽管您没有说每秒存储多少音量。两种解决方案都有一些需要注意的事项。

搜索(非常快)所有列。对于较小的体积,比如说几百Gb,那么任何一种解决方案都会好(假设熟练的人将它们放在一起)。你实际上并没有说你的搜索速度有多快,所以如果每分钟多次这个考虑就变得更重要。快速搜索通常会减慢快速编写大量数据的能力,因为需要更新搜索所需的索引。

审计记录通常具有时间分量,因此搜索时间受到限制,例如最近7天内的搜索,与搜索所有记录相比,搜索次数会显着加快。

举报。当你达到100TB时,你需要一些真正的技巧或者大的预算来获得快速的报告。对于静态报告,您最终可能会创建一个程序来同时生成多个报告以节省I/O。动态报告将是一个棘手的问题。

我的看法?既然你知道RDBMS,我会以此为开始,并提供解决方案。这会让你花时间学习你将遇到的真正问题(没有任何过早的优化,许多人都热衷于此)。在此初始时间段内,您可以开始选择nosql解决方案并进行学习。我假设你想要运行你自己的硬件/数据库,如果你想使用云类型解决方案,那么马上去找他们。

+0

谢谢。我真正想要理解的一件事是让我们说我拥有1000万行NoSQL。我是否需要技巧和指数等来快速处理查询(秒)?由于我在该领域没有太多经验,我不确定MapReduce和其他NoSQL解决方案的速度规模如何。你能详细说明一下吗?我知道这是一个相当普遍的问题,但我一般都想了解NoSQL中的数量和查询速度......谢谢! – 2013-03-15 07:39:17

+1

这将取决于您使用的解决方案。列存储方法很容易处理10M行,但大多数RDBMS也是如此。您从查询中获得的速度更多受数据类型,索引,查询方式以及整体IO /内存带宽的影响。有关RDBMS基准测试,请参阅http://www.networkworld.com/news/tech/2012/102212-nosql-263595.html和http://www.tpc.org – rlb 2013-03-15 09:53:21