• Metabase学习教程:模型-2


    事实表分析引擎

    如何根据实际分析用例为事实表建模。

    目标数据建模是为了快速(用于处理查询的引擎),以及容易(针对编写这些查询的人)获取数据。

    大多数数据仓库实践是为了强调速度。分析引擎(一个术语 popularized by dbt,有时也会捆绑到术语中全栈分析)是为可用性数据建模的过程。即使这不是你所说的,无论何时当你需要把一个策展数据集,一个分段或指标,或仪表板与他人协同,都可以实践分析引擎。

    本教程将向您展示如何将分析引擎方法应用于数据仓库更具体地说,对于一种称为事实数据表.

    介绍

    维度表包含一个时间点的数据快照,例如在工作日结束时,您拥有的部分完成的杯子的数量。

    | time                   | total mugs |

    |---------------------|------------|

    | 2022-08-16 17:30:00 | 3            |

    事实数据表包含一个历史信息,比如你一天喝咖啡的速度。

    | time                   | mug       | coffee remaining |

    |---------------------|----------|------------------|

    | 2022-08-16 08:00:00 | 1        | 100%             |

    | 2022-08-16 08:01:00 | 1        | 0%               |

    | 2022-08-16 09:00:00 | 2        | 100%             |

    | 2022-08-16 12:00:00 | 3        | 100%             |

    | 2022-08-16 12:30:00 | 3        | 99%              |

    | 2022-08-16 17:30:00 | 3        | 98%              |

    事实表和维度表依据星型模型(或密切相关的雪花模型)在数据仓库中组织信息。

    如果出现以下情况,您可能需要构建事实表:

    • 您的数据源(生成数据的系统,如应用程序数据库)只存储当前信息快照,方法是将其保存在前一个快照上。
    • 你正在创建一个支持嵌入式分析的数据集为您的客户。独立的事实表非常适合自助分析,因为它们可以覆盖广泛的用例不依赖连接。

    但是在我们开始之前,让我们在你每天的咖啡因总量中再加一杯,我们还有很多要做的!

    | time                   | total mugs |

    |---------------------|------------|

    | CURRENT_TIMESTAMP() | n+1        |

    概述

    在本教程中,我们将使用维度表account,例如从CRM中获取的维度表。让我们假设一下account维度表存储客户的当前状态,当前状态由应用程序更新。

    这个account表如下所示:

    | id               | country     | type       | status    |

    |------------------|-------------|------------|-----------|

    | 941bfb1b2fdab087 | Croatia     | Agency     | Active    |

    | dbb64fd5c56e7783 | Singapore   | Partner    | Active    |

    | 67aae9a2e3dccb4b | Egypt       | Partner    | Inactive  |

    | ced40b3838dd9f07 | Chile       | Advertiser | Test      |

    | ab7a61d256fc8edd | New Zealand | Advertiser | Inactive  |

    第1部分:设计事实表

    基于account,我们需要考虑人们可能会问的关于客户帐户随时间变化的分析问题。自从account表包含status字段,我们可以回答以下问题:

    第2部分:实现事实表

    从数据存储在account创造fact_account,我们将编写一个SQL脚本:

    1. 初始化fact_account今天的account数据。
    2. 获取中的行的快照account(假设它被另一个系统更新)。
    3. 比较每天的account中的历史数据快照fact_account.
    4. 在中插入新行fact_account对于自前一天快照后更改的每个帐户。

    第3部分:使用常见用例测试事实表

    为了检查我们的事实表在实践中是否有用,我们将使用Metabase设置它,并尝试回答我们所有的三个示例分析问题。

    第4部分:改进事实表性能

    本教程的最后一节将让您了解在扩展事实表以容纳更多历史记录(和更多问题!)时迭代它的外观。

    如何遵循本教程

    如果您想将下面的步骤应用于您自己的数据,我们建议您使用由源系统定期更新的维度表,以及

  • 相关阅读:
    学习笔记-MongoDB(命令增删改查,聚合,权限管理,索引,java使用)
    UG\NX二次开发 获取基准平面的点和方向 UF_MODL_ask_datum_plane
    <Java>一把王者的时间,带你认识String类
    iOS 17.4 Not Installed
    Python实战项目6-后端多方式登录接口/手机登录接口
    Nginx动静分离、缓存配置、性能调优、集群配置
    Cloudfront HTTPS 性能优化
    【Qt炫酷动画】7.浅谈动画设计的一些思考
    Codeforces Round #476 (Div. 2)——D. Single-use Stones(二分做法)
    11.25学到的东西==命令行
  • 原文地址:https://blog.csdn.net/weixin_38030820/article/details/128132951