微策略数据模型

Microstrategy Data Model

我是 MSTR 新手。

我们正在努力从 Essbase 迁移到 Microstrategy 10.2。 迁移后,我们希望业务用户能够在 MSTR 多维数据集之上创建报告,并像他们使用 Essbase 和 Excel 那样处理数据。 我需要帮助来为给定场景设计数据模型:

FactTb:

Subcategory Revenue

1   100

2   200

3   300


DimensionTb:

Category    Subcategory

A   1

A   2

B   1

B   2

B   3

C   2

C   3

用户希望按类别或子类别查看收入。

FactTb 有 3 行。假设每一行的大小为 10 个字节,则 FactTb 的大小为 30 个字节。

如果它与 DimensionTb 连接,将有 7 行,大小将增长(大约)到 70 字节。

有没有办法限制Cube的大小?

类别和子类别的映射是静态的,不需要为其维护 table。

我可以 create/define 多维数据集外的 DimensionTb(将其存储在报告中,使用子类别创建派生元素)吗?

我们希望限制多维数据集的大小以将其保存在内存中并确保报表始终通过数据库访问多维数据集。

多维数据集只是 SQL 查询的结果,复制到内存中以便更快地访问。正如您无法想象的那样,将查询分成两部分的结果,对于多维数据集也是如此。

内存中的多维数据集由 MicroStrategy 使用多种算法压缩(根据列数据类型和值分布使用最佳压缩),但多维数据集还包含根据查询自动创建的内部索引(以加速数据访问)用于立方体。

VLDB 设置有助于减小多维数据集的大小。 如果你查看技术说明 TN32540: Intelligent Cube Population methods in MicroStrategy 9.x,你会看到不同的选项,根据我的经验,最后一个设置 (Direct loading of dimensional data and filtered fact data.) 对加速立方体加载和减小大小很有帮助,但你也可以尝试其他个 (Normalize Intelligent Cube data in the Database).

使用这种方法,维度表中的值将存储在内存中,但与事实分开,从而节省 space。

最后,为了确保您的用户始终使用多维数据集,allow/teach 他们可以直接在多维数据集上单击(或选择它)来创建报告和仪表板。

这是安全的方式,MicroStrategy 还提供了一种将报表映射到多维数据集的动态方式(当满足条件时),但即使是最周密的设计人员也会让用户感到惊讶。