你提到的 多维库(比如 OLAP 多维数据立方体)和 二维表(普通的关系表、Excel、CSV、DataFrame)之间的转换,本质上就是 把维度展开、度量汇总拆开 的过程。DataMapping 工具通常就是做这种“结构映射”的。
我给你分步骤解释一下思路:
1. 多维库数据的特点
-
维度(Dimension):时间、地区、产品、客户等。
-
度量(Measure):销售额、利润、数量等。
-
多维库存储方式:以立方体(Cube)或星型/雪花模型存储,数据是聚合过的。
举例:
2. 二维表的目标
二维表就是普通表格:行和列。
例如:
时间 | 地区 | 产品 | 销售额 | 数量 |
---|---|---|---|---|
2025-09 | 北京 | 手机 | 100万 | 2000 |
3. DataMapping 转换思路
用 DataMapping 工具时,一般会有以下步骤:
-
源定义:选择多维库中的 cube 或视图作为数据源。
-
字段映射:
-
把维度字段映射成二维表的列(如 时间→表列“time”,地区→表列“region”)。
-
把度量指标映射成表格中的度量列(销售额→sales,数量→qty)。
-
-
展开规则:
-
如果度量是多个指标(比如销售额、数量、利润),DataMapping 会帮你把这些度量列“平铺”在二维表中。
-
-
输出定义:指定目标表结构(关系型数据库表、CSV 文件或 DataFrame)。
4. 示例流程
假设 cube 有三个维度:时间、地区、产品,一个度量:销售额。
在 DataMapping 里操作就是:
-
输入源:Cube_Sales
-
映射:
-
time_dim
→ 列time
-
region_dim
→ 列region
-
product_dim
→ 列product
-
sales_amt
→ 列sales
-
-
输出:二维表
sales_flat_table
得到结果表:
time | region | product | sales |
---|
5. 常见转换规则
-
维度展开:多维度 → 多列。
-
度量拆分:度量字段 → 单独列。
-
聚合处理:如果 cube 是预聚合的,DataMapping 只要直接平铺;如果是明细数据,可能要指定聚合函数(SUM、AVG 等)。