新上线今天0 投票
Amazon QuickSight 多数据集关系的数据建模最佳实践
从预连接表到运行时关联:QuickSight 数据建模的范式转变
商业智能分析师在启动每个分析项目时,几乎都会遇到同样的困境:回答一个业务问题所需的数据分散在多个表中。销售交易、客户人口统计、产品属性、退货、预测和运营指标各自占据不同的数据源。以往,在 Amazon QuickSight 中组合这些表需要在分析开始前将所有数据预连接成宽表、反范式化的数据集。这种做法虽然可行,但迫使数据建模决策前置,导致不同粒度的度量重复、维护开销增加,并且通常需要为几乎每个报表场景准备不同的数据集。
今天,Amazon QuickSight 正式推出多数据集关系功能。这项新能力允许用户在 QuickSight 数据集之间定义逻辑关系,并在查询时执行运行时连接。您不再需要提前扁平化表,而是将每个表保留为独立的 QuickSight 数据集,然后在 QuickSight Topic 中声明这些数据集之间的关联关系。QuickSight 会根据可视化、计算字段、筛选器或自然语言问答的需求,动态构建所需的连接。
核心优势
- 更少的前期数据准备:关系只需定义一次,QuickSight 在分析时仅连接相关表。
- 保留原始粒度:每个数据集维持自身的细节级别,避免跨粒度重复度量。
- 跨分析复用:一个包含已定义关系的 Topic 可服务于多个分析场景,无需重建数据集。
- 简化治理:在单个数据集级别管理权限、转换和业务逻辑。
- 独立刷新调度:根据数据变动频率,按不同节奏(小时、天、月)分别摄取数据。
- 运行时行级安全:行级安全(RLS)规则在运行时连接时执行,确保数据访问策略跨数据集一致。
数据建模最佳实践
为了充分发挥多数据集关系的价值,建议遵循以下设计原则:
- 以主题域划分数据集:将业务实体(如客户、产品、销售)分别建模为独立数据集,以保持逻辑清晰和复用性。
- 明确关系类型:根据业务逻辑使用一对多、多对一或多对多关系。例如,一个客户可以有多个订单(一对多),一个订单属于一个客户(多对一)。
- 避免循环依赖:在定义关系时确保无闭环,防止查询歧义或性能问题。
- 优先使用星型模式:事实表(如销售)与维度表(如时间、客户)建立关系,这是分析型查询的最优模式。
- 处理粒度和聚合:当数据集粒度不同时,在计算字段中明确聚合逻辑,例如使用 SUM 或 AVERAGE 处理事实表度量。
支持的模式
QuickSight 多数据集关系支持以下常见模式:
- 星型模式:一个事实表关联多个维度表。
- 雪花模式:维度表进一步关联子维度表。
- 多事实表:多个事实表共享维度,例如销售和退货表都关联时间维度。
结语
Amazon QuickSight 的多数据集关系功能标志着 BI 工具在数据建模灵活性上的重要进步。通过将连接逻辑从 ETL 阶段转移到查询运行时,分析师可以更敏捷地响应业务需求,同时保持数据治理的简洁性。对于希望减少数据准备时间、提升分析复用性的团队来说,这是一个值得投入的方向。
关于每种模式的具体实现和高级技巧,可以参考本系列的第二篇文章:《Amazon QuickSight 多数据集关系的数据建模模式》。