宽表(Wide Table) 是数据仓库和大数据分析领域中非常核心的一个概念。 简单来说,宽表就是一张包含了很多很多字段(列)的表。它通常是将业务中的“事实数据”和相关的“维度数据”提前关联(Join)好,形成的一张扁平化的大表。 为了让你更透彻地理解,我们可以从“什么是宽表”和“为什么要建设宽表”两个方面来详细拆解。 --- 一、 什么是宽表? 在传统的数据库设计(如 MySQL 业务库)中,为了减少数据冗余,我们遵循“三范式” (3NF) 设计原则,把数据拆散存放在不同的表中。 举个电商场景的例子: 如果要查询“北京地区 25 岁男性用户的 iPhone 销量”,在传统模式下,你可能需要关联三张表: 1. 订单表(存了订单ID、用户ID、商品ID、金额) 2. 用户表(存了用户ID、姓名、性别、年龄、所在城市) 3. 商品表(存了商品ID、商品名称、品牌、类目) 而宽表,就是把这三张表“捏”在一起: 它不遵循三范式,而是采用“反范式化”设计。在宽表中,每一行数据不仅包含订单信息,还直接包含该订单对应的用户详情和商品详情。 宽表的结构看起来是这样的: | 订单ID | 支付金额...