gpt4 book ai didi

database-design - 适用于存储日志、实时报告并用作日志关联引擎的数据库设计或架构

转载 作者:行者123 更新时间:2023-12-02 01:59:27 25 4
gpt4 key购买 nike

我面临的问题与合理快速地存储和检索数百万日志有关。我致力于从防火墙、入侵检测和预防系统、应用程序日志、用户事件等收集日常日志,将它们存储在数据库中,执行实时报告并将它们关联起来以识别入侵等。所以在使用 syslog 构建系统之后和 mysql 我发现目前的瓶颈是数据库。我只有关系数据库方面的经验。另一方面,我完全迷失了数据库领域中所有现有的和我所了解的技术。

那么 NoSQL 数据库(mongo、cassandra 等)会比传统数据库(MySQL、Oracle、MSSQL 等)更好并胜过传统数据库吗?从我读到的内容到现在,没有聚合函数,因此报告将不可行,对吗?

Dataware Houses 能更好地满足我的需求吗?我知道它们用于报告但不是实时的。是真的吗,或者今天有任何实现可能支持近乎实时的可能是可以接受的吗?我发现这或多或少是设计数据库模式的一种不同方式,而传统数据库可能是这种方式的绝佳选择。这是真的吗?

我还被建议创建表分区但不使用数据库中存在的数据库功能。我的想法是可能根据大小使用单独的表,并创建存储和更新单独表索引的过程,并通常在我需要执行连接或聚合时操纵它们以加快速度。有没有人听说过或使用过类似的东西?因为一开始我觉得这样的解决方案完全不适用。

到底有没有可能将上面的一些技术进行迁移,以获得更好更平衡的结果呢?

我知道这是个大问题。但是我发现我在 RDBMS 方面的最新知识和经验不足以解决问题。由于技术太多,我需要听取意见、讨论并接受过去有经验的人的指导。还要讨论某些方法的优缺点。有没有你可以推荐的对我有帮助的论坛?最后一件事是数据量的度量级别是 TB,而不是 PB,因此这可能会排除某些技术,例如 hadoop。

最佳答案

在确定存储方法之前,问题是您要进行哪种类型的分析。

对于面向聚合的工作负载和您所谈论的数据量,传统的 rdbms(如 oracle、sql server 或 postgresql 运行在强大的服务器上)应该可以。它们原生支持分区和其他 DWH 技术(例如物化 View ),这将节省您自己拼凑的时间。例如,Oracle 查询优化器在生成新的查询计划时会考虑分区。

作为报告前端,您可以选择市售的前端之一,也可以创建自己的前端。一些选项是 obiee、SQL 服务器报告服务、cognos 和 pentaho(免费)它们都在一定程度上支持跨数据库报告(结合 DWH + 运营商店)。

如果您需要对涉及大量(十亿行数据集)聚合的任意查询的即时答案,您可以查看 teradata、netezza、vertica 等。这些往往花费很多。

如果您经常希望即时回答涉及较小数据集聚合的任意查询,请查看 .他们有一个强大的内存分析工具。我相信单人使用是免费的。

如果这不仅仅是简单地累加数字,而是分析大量的复杂关系(类似图表的分析),那么您就不走运了。旧的解决方案不能很好地扩展或很昂贵,新的解决方案经常碰碰运气。无论哪种方式都会很昂贵。不知道你想如何关联事件,很难推荐任何东西。我不知道有任何通用解决方案。

就个人而言,我会选择 postgres(后端)+ pentaho 和 (都是前端)带有用于传统 ETL 和 hadoop 的水壶或自定义代码来预先计算结果以进行更复杂的分析。在 postgres 中,将您的数据拆分到一个运营商店和一个 DWH 中。

关于database-design - 适用于存储日志、实时报告并用作日志关联引擎的数据库设计或架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com