俗话说“实践是检验真理的唯一标准”,天天在企业里说数据转型,结果自己连数据中台长什么样都没见过,真是印证了那句话“没吃过猪肉,甚至没见过猪跑”,与其一天把理论知识挂在嘴边,不如按照敏捷的思路带领团队硬着头皮走一朝。于是在很快做完现状分析后,我们便从中台底层出发,开启了数据体系建设的第一站--搭建数据仓库。
搭建数据仓库当然是复杂的过程,涉及汇集,清洗、转化、存储、管理和分析等一系列过程,我们先对其中最核心的“维度建模”进行举例学习,便于团队达成共识。
数据仓库维度表建模举例
假设我们经营一家在线书店,想要分析图书销售数据以优化库存和营销策略。在这个例子中,我们可以将图书、作者、出版社、读者和销售渠道等作为维度,而销售额、销售数量等作为事实。
1. 确定维度
首先,我们确定分析的维度:
- 图书维度:包括图书ID、书名、作者ID、出版社ID、ISBN号、类别等属性。
- 作者维度:包括作者ID、作者姓名、作者国籍、作者出生日期等属性。
- 出版社维度:包括出版社ID、出版社名称、出版社所在地等属性。
- 读者维度:包括读者ID、读者姓名、读者年龄、读者性别、读者所在地等属性。
- 销售渠道维度:包括销售渠道ID、销售渠道名称、销售渠道类型(如在线商店、实体书店、第三方平台等)等属性。
2. 创建维度表
接下来,为每个维度创建维度表:
图书维度表
图书ID | 书名 | 作者ID | 出版社ID | ISBN号 | 类别 |
---|---|---|---|---|---|
1 | 《书A》 | 1 | 1 | 978-123-4567-890 | 小说 |
2 | 《书B》 | 2 | 2 | 978-234-5678-901 | 历史 |
3 | 《书C》 | 1 | 1 | 978-345-6789-012 | 科技 |
作者维度表
作者ID | 作者姓名 | 作者国籍 | 作者出生日期 |
---|---|---|---|
1 | 作者A | 中国 | 1980-01-01 |
2 | 作者B | 美国 | 1975-05-15 |
出版社维度表
出版社ID | 出版社名称 | 出版社所在地 |
---|---|---|
1 | 出版社A | 北京 |
2 | 出版社B | 纽约 |
读者维度表
读者ID | 读者姓名 | 读者年龄 | 读者性别 | 读者所在地 |
---|---|---|---|---|
1 | 读者1 | 30 | 男 | 北京 |
2 | 读者2 | 25 | 女 | 上海 |
销售渠道维度表
销售渠道ID | 销售渠道名称 | 销售渠道类型 |
---|---|---|
1 | 渠道A | 在线商店 |
2 | 渠道B | 实体书店 |
3. 创建事实表
接下来,创建一个销售事实表,用于存储度量值和维度键:
销售事实表
销售ID | 图书ID | 作者ID | 出版社ID | 读者ID | 销售渠道ID | 销售额 | 销售数量 | 销售日期 |
---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 100 | 5 | 2023-10-01 |
2 | 2 | 2 | 2 | 2 | 2 | 150 | 3 | 2023-10-02 |
3 | 1 | 1 | 1 | 1 | 1 | 200 | 10 | 2023-10-03 |
在销售事实表中,每一行代表一个销售记录,包含了图书ID、作者ID、出版社ID、读者ID和销售渠道ID等维度键,以及销售额、销售数量和销售日期等度量值。
4. 建立关系
最后,建立维度表与事实表之间的关系。这通常通过在事实表中添加与维度表相关联的外键来实现。在这个例子中,销售事实表中的图书ID、作者ID、出版社ID、读者ID和销售渠道ID都是外键,它们分别关联到图书维度表、作者维度表、出版社维度表、读者维度表和销售渠道维度表的主键。
通过这样的维度表建模,我们可以轻松地进行多维分析,比如查询某个作者的所有图书的销售情况、某个出版社在某个销售渠道的销售表现、某个地区读者的购买偏好等。这种模型为数据分析和决策提供了强大的支持。