数据库分析架构[已关闭]

问题描述 投票:0回答:2

我们有一个架构,为每个客户的网站(互联网商家)提供类似商业智能的服务。现在,我需要在内部分析这些数据(用于算法改进、性能跟踪等),这些数据可能相当繁重:我们/客户/天有多达数百万行,我可能想知道有多少个查询我们在上个月、每周进行比较等等......这就是数十亿条目的顺序,如果不是更多的话。

目前的完成方式非常标准:每日脚本扫描数据库并生成大的 CSV 文件。我不喜欢这个解决方案有几个原因:

  • 与此类脚本一样,它们属于一次编写且不再触及的类别
  • “实时”跟踪事物是必要的(我们有一个单独的工具集来查询最近几个小时的 ATM)。
  • 这很慢并且不“敏捷”

虽然我在处理用于科学用途的大型数据集方面有一些经验,但就传统的 RDBM 而言,我完全是一个初学者。似乎使用面向列的数据库进行分析可能是一个解决方案(分析不需要我们在应用程序数据库中拥有的大部分数据),但我想知道对于此类问题还有哪些其他选项.

database scalability analytics data-mining
2个回答
8
投票

您需要通过谷歌搜索Star Schema。基本思想是以一种经过优化的方式对现有 OLTP 系统的特殊数据仓库/OLAP 实例进行建模,以提供您所描述的聚合类型。这个实例将由事实和维度组成。

在下面的示例中,对销售“事实”进行建模,以提供基于客户、商店、产品、时间和其他“维度”的分析。

alt text

您会发现Microsoft's Adventure Works示例数据库很有启发性,因为它们提供了 OLTP 和 OLAP 模式以及代表性数据。


3
投票

关于星型模式数据仓库的规范手册是 Raplh Kimball 的“数据仓库工具包”(同一系列中还有“Clickstream Data Warehousing”,但我认为这是 2002 年的,并且有些过时了,我认为如果Kimball 书有新版本,如果您在 google 上搜索“网络分析数据仓库”,它可能会提供大量示例模式可供下载和研究。

另一方面,现实生活中发生的许多 no-sql 都是基于挖掘点击流数据,因此可能值得看看 Hadoop/Cassandra/[latest-cool-thing] 社区的方式案例研究,看看您的用例是否与他们的功能相匹配。

© www.soinside.com 2019 - 2024. All rights reserved.