1

我正在尝试从一堆二进制文件构建 OLAP 数据源,而我们当前的模型无法正常工作。我们使用 SSAS 作为结果的分析/报告模型,但无法从 SQL 中获得我们想要的性能。

我们的主要限制是:

  1. 数据库非常大。我们有数百万行的巨大维度表和几个较小的事实表(<1,000,000 行)。

  2. 我们有一个动态多维数据集。B/C 事实表是动态构建的,并且通常(可能每天多次),在设置多维数据集时不会有任何巨大的开销。当前在多维数据集上的部署时间可能超过 24 小时,我们需要将性能提高几个数量级,而硬件无法提供给我们。

基本上,我们想要一个快速的设置和部署,它本身并不适合使用 SQL Server 2005 的 SSAS,但是我们想要使用 SSRS 进行报告,并且我们想要一个 OLAP 模型在 Excel 中进行分析,所以我们仍然想如果可能,使用 SSAS 构建多维数据集。

SSAS 中用于快速部署的常见解决方案是 ROLAP,但我们会在较大的 ROLAP 查询中遇到执行错误,而且我们也不喜欢将二进制数据转换为 SQL 并将其加载到多维数据集中所涉及的所有开销。

有没有人在 SSAS 可以使用的自定义 OLAP 数据源上做过工作?我们正在寻求创建我们自己的 ROLAP 引擎,它将直接查询二进制源文件。

4

4 回答 4

2

如果您需要一个低延迟多维数据集(即显示最新数据的多维数据集),则此类事物的规范架构是:

  • 使用来自源的更改数据增量加载事实表。
  • 使用每天或其他合适时间生成新分区的进程构建分区多维数据集。多维数据集以 ROLAP 模式设置了最新的分区,并将较旧的分区构建为 MOLAP。
  • 设置一个更新分区并将旧分区从 ROLAP 更改为 MOLAP 的进程,因为它会生成新的前沿分区。

针对多维数据集的查询将针对最新数据针对相对较小的 ROLAP 分区,针对历史数据针对 MOLAP 分区。MOLAP 分区可以有聚合。该过程不断在前沿 ROLAP 分区上打勾并转换其前身。AS 将保留旧分区并使用它,直到替换分区建成并上线。

如果这种类型的架构符合您的要求,您可以考虑这样做。

于 2008-09-25T15:04:02.073 回答
1

感谢您的回复,奈杰尔。

我想我需要更好地解释一下。我的源数据采用专有格式,而不是数据库,因此获取事实表本身需要相当多的时间。然后我们需要尽快(最好在几分钟内)部署多维数据集并获得快速的查询响应,即使在使用 SQL 的小型数据集上我们目前也看不到。

因为多维数据集的结构是动态的,我们经常不得不重建多维数据集的各个方面,我们不会在事后引入新数据,因此将其部分划分为 MOLAP 和 ROLAP 的其他部分并没有真正的帮助。我们正在寻找“全流程”的性能。

我们开始意识到我们不能使用 SQL 进行查询,并且想知道是否有人创建了分析服务(或任何 OLAP 工具)可以读取的自定义 ROLAP 数据源。

我们可以快速处理创建结果集;我们只需要弄清楚如何从 SSAS 获取查询并将这些结果反馈给它。我们实际上只是希望将 SSAS 用作我们的系统与 Excel、SSRS 等之间的中介,而不是使用它来处理或聚合数据。

于 2008-09-25T15:35:25.553 回答
1

您能否将R之类的东西与自制库(它支持C 扩展)一起使用来连接您的数据集。R 将为您提供相当大的灵活性来构建复杂的报告或数据预处理库。它还有一个Excel接口。

这是与传统 DB/OLAP 模型有些不同的工具链,但您可以相当轻松地用 C 语言编写快速数据集加载器,并跳过加载到数据库的中间步骤。

于 2008-09-25T19:19:14.377 回答
0

我还没有运气。我们正在走的路线是构建我们自己的数据提供程序并构建用于 excel 的插件来模拟 olap 行为,或者使用 CLR 表值函数来模拟我们的数据源并以此构建多维数据集。我在 CLR 上进行的一次尝试性能很差,但由于构建多维数据集时 SSAS 运行的查询量很大,但结果却失败了。我正在等待在 SQL 08 环境中获得更新更快的机器,看看这是否可行。祝斯科特好运。

于 2009-02-11T20:26:44.437 回答