我是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的大小?
Category和Subcategory的映射是静态的,不需要为它维护一个表。
我可以在Cube中创建/定义DimensionTb(将其存储在报表中,使用Subcategory创建派生元素)?
我们希望限制多维数据集的大小以将其维护在内存中,并确保报告始终在数据库上命中多维数据集。
答案 0 :(得分:0)
多维数据集只是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
)。
使用这种方法,Dimension表中的值将存储在内存中,但与事实分开,节省了空间。
最后,为了确保您的用户总是使用多维数据集,允许/教他们创建直接点击多维数据集(或选择它)的报表和仪表板。
这是一种安全的方式,MicroStrategy还提供了一种将报表映射到多维数据集的动态方式(满足条件时),但即使是最全面的设计人员,用户也会感到惊讶。