0

我想汇总我们的 IIS 日志并能够快速对它们执行简单的查询(例如,在过去的一个月中,页面 x 被点击了多少次等)

我想将这些数据(在时间维度上可能降低到 10 分钟左右的粒度)聚合到一个 SSAS 多维数据集中。

我们已经通过 SSIS 将日志导入到表中。表变得非常大,我想开始删除旧数据(比如 3 个多月前),同时将历史记录保留在多维数据集中(所以我仍然可以查询超过 3 个月)。这是一个合理的做法吗?显然,如果我希望更改它,我将无法轻松地重建我的多维数据集......而且我想我需要开始备份多维数据集,就好像它是一个数据库一样?

目前我没有关于数据的 PK - 添加标识列或创建过期、时间和 url 的复合 PK 会更好吗?

任何成功实施这一点的人的反馈都会很棒:)

谢谢!

4

1 回答 1

1

我还没有完全做到这一点,但我会尽可能多地给你意见:

表变大了,为什么会出现这个问题 - 是存储空间还是速度?

如果速度快,请考虑使用表分区来拆分大型表。您可以按日期范围对它们进行分区,然后将分区切换到另一个表(减少原始大小),这是一个纯元数据操作,并且是即时的。然后,如果您需要重建,SSAS 可以在处理时使用合并两个表的视图。

如果存储空间,您是否查看过 SQL Server 中的压缩(2008 年可用,不确定您使用的是哪个版本?)。

就我个人而言,如果没有重建多维数据集的能力,我会不高兴 - 还要记住,多维数据集会复制源数据(或者更确切地说是根据 DSV 使用的部分),因此您可能不会像您想的那样节省如果您删除旧数据并将多维数据集视为“存储设备”。您的多维数据集是否只使用表的一部分?与基础数据相比,它的大小是多少?

SSAS 并不严格要求对数据进行 PK - 但是 - 我总是使用它们,主要是为了防止重复加载(我也按时间加载 - 检查数据是否比上次加载的数据更新)但最好有一个 PK 约束来防止重复加载.

对于您的 PK、日期、时间、URL 听起来不错,但取决于您的站点的繁忙程度。您的示例不允许两个人同时查看同一个 URL。您可以将 IP 地址添加到 PK 吗?如果访客快速刷新怎么办?您会/能否将其视为重复项,并在 SSIS 数据流中将其删除?

祝你好运,如果您对我所说的内容有任何疑问,请告诉我。

于 2011-03-01T17:41:00.823 回答