父子结构维度
传统的层次结构(Hierarchy)有一组严格的层级(Level),以及遵循这些层级的成员(Member). 例如, 在 Product
层次结构中, Product Name
的层级的任何成员都有一个 Brand Name
层级的父节点, 而此父节点又有 Product Subcategory
层级的父节点, 以此类推. 这种结构有时过于严格,无法对真实世界的数据进行建模(例如财务科目, 产品线分类等).
父子层次结构只有一个级别(不包括特殊的"All"级别),但任何成员都可以在同一级别拥有父级。一个经典的例子是员工 Employees 的主管报告上下级结构, 下面我们以Demo - FoodMart Model数据模型中的 employee
表创建 Employees 维度做演示.
创建员工父子结构维度
用数据表 employee
进行创建员工维度, 输入维度名称为 Employees
, 标签为员工, 点击应用创建成功后转到员工维度界面.
- 点击导航栏员工页签上的更多按钮, 选择(编辑)层次结构, 会打开层次结构属性编辑界面, 将主键(PrimaryKey)设置为
employee_id
; - 打开
employee
表结构, 找到employee_id
列将其托至层级区域, 可以看到相应的数据预览; - 选中 employee_id 层级, 打开层级属性编辑界面, 输入以下层级信息:
- 名称(Name): Employee Id
- 标签(Caption): 员工
- 字段(Column):
employee_id
- 成员唯一:
true
- 名称字段(Name Column):
full_name
- 父级字段(Parent Column):
supervisor_id
- 父字段空(nullParentValue): '0'
- 保存
添加到多维模型
以数据表salary
创建薪资(Salary)模型, 并添加度量 salary_paid
, 然后将员工维度添加到薪资模型, 更改其共享维度外键属性为 employee_id
.
保存后即可使用员工维度上级关系对薪资的度量进行上下级统计.
添加属性
还可以为员工上下级层级添加属性, 打开层级属性编辑界面, 在属性区域点击添加, 新增如下属性:
- // 格式 名称:
字段
- Marital Status:
marital_status
- Position Title:
position_title
- Gender:
gender
- Salary:
salary
- Education Level:
education_level
- Management Role:
management_role
Parent Child 层次结构不能设置 Caption 列, 有 bug 暂时没有解决.
闭合表
编辑 Employee Id 层级属性, 启用闭合表, 为其选择表为 employee_closure
, 然后选择父级字段为 supervisor_id
, 选择子字段为 employee_id
.
创建科目父子层次结构
再以财务科目表 Account 维度为例创建父子层次结构.
- 使用数据表
account
创建科目维度 - 输入信息:
- 名称(Name): Account
- 标签(Caption): 科目
- 表(Table):
account
- 点击应用, 转到维度页面
- 打开 层次结构 属性编辑页面, 输入信息:
- 主键(Primary Key):
account_id
- 主键(Primary Key):
- 保存
创建费用模型
使用数据表 expense_fact
创建费用多维模型.
- 创建模型, 输入以下信息:
- 类型: Cube
- 名称: Expense
- 标签: 费用
- 点击应用
- 添加度量
amount
- 将科目维度添加到此模型
- 保存
验证数据.