码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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部分:改进事实表性能

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

    如何遵循本教程

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

  • 相关阅读:
    MySQL面试真题(二十七)——RFM分析法对用户进行分类
    Windy数--数位dp
    (STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(1)
    圣普伦数字项目管理大师课:3重核心技能,2个月学会,这波很值
    .NET如何快速比较两个byte数组是否相等
    uImage的制作过程详解
    【Django】开发日报_13_Day:手机号码管理系统(11)
    JUC常见的线程池源码学习 02 ( ThreadPoolExecutor 线程池 )
    kafka如何保证消息不丢失?半分钟的答案和半个小时的答案有点不一样。
    自动化立体仓库AS/RS货架|分离式仓库货架与整体式仓库货架如何运用?
  • 原文地址:https://blog.csdn.net/weixin_38030820/article/details/128132951
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号