如果想从技术上理解HFM需要对以下几个方面有些了解:
1 基本的财务知识,例如学习下初级财务的会计实务。
2 了解一些关于长期投资收益和合并报表编制的财务知识,可以学习下中级财务的相关章节。作为技术人员,不需要像财务一样真正掌握,但是要了解,明白基本概念和流程。
3 了解多维数据库的相关理论和知识,这些在编制数据表单脚本和规则时是需要的。
4 VBSCRIPT的基本语法。
前面两条可以听一些财务方面的课程,本系列从多维数据库开始记录学习过程。
多维数据库的理论依据
HFM的很多概念都来自于多维数据库,例如维度,交叉等,而多维数据库的理论模型其实是n维向量映射到数值的模型。n维向量用来从多角度描述事物。至于n维向量的概念可以参考线性代数中的定义,下面只贴下线性代数中的向量的定义和n维向量的实际意义。
多维数据库中常用的基本概念
这里主要以ESSBASE中的概念介绍
维度和成员-Dimension and Member
维度指的就是前面数学定义中的a1,a2, …aN, 对应到HFM即ACCOUNT,PERIOD,YEAR等维度
维度是由成员组成的集合
成员之间的关系
维度是一个树型结构,维度中的成员按照层次组织,形成父子级关系,其中的每个成员可包含若干个子成员。贴一张oracle官方文档中的图作为例子
涉及到的关系如下:
父子,同辈 (Parents, Children, and Siblings)
后代,祖先(Descendants and Ancestors)
根,叶子(Roots and Leaves)最底层的成员没有子成员,称作叶成员(Leaf Member)或基成员(Base Member)
Generations and Levels
数据存储-Data Storage
Data Value
各个维度中的成员各取一个值的组合对应一个Data Value
再贴张官方文档中的例子
各维度成员的组合是数据存储的最小单位,称为单元格(cell),一般用 (->) 作为维度交叉的符号,例如Sales->Jan->Actual 表示 Sales, Jan, Actual 对应的value,这里的交叉实际上就是各个维度的所有组合,也可以用数学上的笛卡尔乘积来理解。
当固定其中的一个或者几个维度,与其他维度交叉被称为切片(slice)
Data Blocks and the Index System
Essbase中用data block来表示所有维度组合的集合