我们有一个API服务器正在运行,每天处理大约500.000个请求。我们希望将所有这些规则保存在数据库中,以便能够分析数据。我们记录的内容如下:
我们希望将这些日志保存3个月,这将在数据库中产生大约45.000.000条记录。当记录超过3个月时,它们将被删除。
将这4500万条记录存储在sql数据库中是可能的,但是对这些数据执行任何分析都非常缓慢。我们想要做广泛的分析,例如-一个特定的用户今天做了多少次请求,与上周的同一天相比?与其他任何一天相比,今天有多少请求失败了?请参阅趋势图,显示请求的数量是上升还是下降。查看在给定时间被请求的前10位资源。你明白了-我们想做这样的分析。
你能建议把这些日志存储在哪里,以便在实时(或接近实时)中进行这样的分析吗?任何nosql数据库对此都有好处吗?阿祖尔?我看到有一种叫做的东西,它能用于这个吗?我看过Microsoft,它可能很适合对这些数据进行分析,但我将把数据存储在哪里。
如果有人能给我一些建议,我会非常感激的。
发布于 2016-06-28 23:53:18
Power可能是一个很好的解决方案。它实际上在内存中扩展了一个实例,这实际上是一个"OLAP数据仓库“。当您在免费的PBI桌面工具中设计并为PBI Web用户发布到Microsoft的云时,基础设施需求是最小的。
可以发布的数据有限制-请参阅下面的链接。请注意,PBI使用非常有效的Vertipac压缩,因此数据集通常比原始数据小得多。我经常看到每MB 10K-50k行,所以45m应该可以通过一个Pro许可证来实现。无情地过滤您的列列表在PBI桌面优化这一点。
使用PBI Pro许可证,您可以每小时刷新一次,每天最多刷新8次:
https://powerbi.microsoft.com/en-us/documentation/powerbi-refresh-data/
在过去的20年中,构建SQL数据库和OLAP/SSAS解决方案对我来说是一个很好的职业。这仍然是“劳斯莱斯”的解决方案,如果你有时间和金钱。但20年过去了,我仍然在学习,因为这是一个技术上具有挑战性的领域。如果您还没有这些技能,我建议Power将是一条更有效率的道路。
发布于 2016-06-28 09:30:27
您绝对希望将日志存储在SQL数据库中。日志表的本质是事务性的,您将不断更新它,并将受益于提交的速度。
您提到的报告速度问题可以通过在日志数据库之上构建OLAP数据仓库来解决。您的数据模型似乎非常简单,因此它并不是很难实现的开发工作。
获得实时报告的唯一方法是在OLTP数据库之上构建报表。如果你能忍受一个小的延迟,大多数地方选择在一夜之间重建他们的立方体,这将提供关于24小时延迟的几乎即时报告。
对于概念上的响应表示歉意,但没有为您设计基础结构,我认为这是问题&A格式所能做到的。
https://stackoverflow.com/questions/38067777
复制相似问题