如何愉快地实施数仓模型,对比下厨做饭

2024-06-11 23:36

本文主要是介绍如何愉快地实施数仓模型,对比下厨做饭,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
一般我们建设数仓,有一个链路:

比如这样的
image.png
数据从原始层到DWD、DWS层、然后ADS层。

嘿,未来的大数据专家们!当我们开始实施数据模型时,不妨参考《大数据之路》这本宝藏书。

让我们一起简化流程,注重细节,同时保持愉快的心情!

以如下加工数据为例

ADS层
DWD层
left join
left join
ads1
ads2
dwd: 订单表
dwd: 流量曝光表
DWS用户订单表
DIM商户信息表
agg

1. 方案设计

方案设计是数据模型实施的第一步,主要考虑以下几个方面:

  • 数据产出:设计数据链路的拓扑图(也就是上面👆的加工数据图),明确每个表的产出时间,确保数据模型的及时产出。比如,可以通过一张漂亮的拓扑图展示数据从源表到聚合层的流转过程。这就像设计一个美味的披萨,从面饼到撒上芝士,每一步都要精心设计。

  • 链路设计:详细解释拓扑图中的每一步,包括聚合和连接操作,以及它们的具体逻辑。就像制作一杯复杂的咖啡,每一步的冲泡和添加糖浆都至关重要。

  • 源表说明:列出并描述拓扑图中使用的所有源表,以及从这些表中获取的数据。想象一下,这就像列出厨房里所有的调料和配料,准备好一切才能开始烹饪。

  • 口径说明:详细说明计算逻辑,包括where条件、group by字段和时间聚合范围等。这就像写食谱,要详细说明什么时候加盐、什么时候加糖。
    如:

SELECT
product_id,
SUM(quantity * price) AS total_revenue
FROM sales
WHERE sale_date >= ‘2024-05-01’ AND sale_date < ‘2024-06-01’
GROUP BY product_id;


- **表结构设计**:定义产出表的字段、数据类型、是否增量更新等信息。就像设计菜谱的最终成品,定义每道菜的配料和做法。## 2. 链路性能与耗时评估数据链路中每个节点的资源消耗(CPU、内存)和耗时,以及数据存储需求,确保系统性能满足需求。就像你在健身房锻炼,每一个动作都需要评估你的体力和时间消耗。## 3. 数据查询记录Hive表到ES或MySQL、ClickHouse的数据流转路径,为后端调用提供必要的SQL查询示例,确保数据能够被正确查询和使用。这就像给朋友推荐一家餐厅,不仅要告诉他们地址,还要给出点菜的建议。## 4. 数据回溯在开发完成后,对历史数据进行回溯,以验证模型的准确性和完整性。这一步骤需要考虑的问题较多,不仅仅是简单的运行历史分区。就像看一部时间旅行的电影,回到过去验证一切是否正常。## 5. 值域说明处理特殊情况,如分母为0的情况,以及空值的处理方法(NULL、0或其他)。如:```sql
SELECTCOALESCE(quantity, 0) * COALESCE(price, 0) AS total_sales
FROM sales;

这就像在烹饪时,遇到食材不足或调料用完的情况,必须灵活应对,确保最终菜肴不出错。

6. 数据完整性

确保数据的完整性,包括例行任务、自动回溯和手动回溯的数据一致性。

需要提前评估风险,与业务方沟通,必要时牺牲部分数据以避免更大的损失。

就像在厨房里做饭,偶尔可能要牺牲一两个烤焦的面包,但我们最终还是会有一桌美味佳肴。

通过上述步骤,我们可以愉快地确保数据模型的有效实施,同时保证数据的准确性和完整性。

实际中可能有更多问题,欢迎交流~

这篇关于如何愉快地实施数仓模型,对比下厨做饭的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052567

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}