我面临的问题与存储和检索相当快的数百万条日志有关。我致力于从防火墙、入侵检测和预防系统、应用程序日志、用户活动等收集日常日志,将它们存储在数据库中,执行实时报告并将它们关联起来以识别入侵等。所以在使用 syslog 构建系统之后和 mysql 我发现目前的瓶颈是数据库。我只有在关系数据库方面的经验。另一方面,我完全迷失了所有这些现有的技术,并在数据库领域获得了我的知识。
那么 NoSQL 数据库(mongo、cassandra 等)会更好并且优于传统数据库(MySQL、Oracle、MSSQL 等)吗?从我所阅读的内容到现在,没有聚合函数,因此报告将不可行,对吗?
Dataware Houses 是否更符合我的需求?我知道它们用于报告,但不是实时的。这是真的吗,或者今天有任何支持可能接近实时的实现,这可能是可以接受的?我发现这或多或少是一种设计数据库模式的不同方式,而传统数据库可能是很好的选择。这是真的?
我还被提议创建表分区,但不使用数据库中存在的数据库功能。这个想法可能是根据大小使用单独的表,并创建存储和更新单独表的索引的过程,并且通常在我需要执行连接或聚合时操纵它们以加快速度。有没有人听说过或使用过类似的东西?因为起初它似乎完全不适用于我的这种解决方案。
到底有没有可能把上面的一些技术移植到更好更平衡的效果上呢?
我知道这是一个大问题。但是,我发现我在 RDBMS 方面的最新知识和经验不足以解决问题。而且由于技术如此之多,我需要听取意见,讨论它并由过去有一些经验的人指导。还讨论某些方法的优缺点。有没有可以对我有帮助的论坛?最后一件事是数据量的测量等级将是 TB,而不是 PB,因此这可能会排除一些技术,如 hadoop。