数据平台之数仓模型设计

文章目录

    • 前言
    • 一、维度建模基本概念
      • 1.1 事实表
      • 1.2 维度表
    • 二、维度建模三种模式
      • 2.1 星型模型
      • 2.2 雪花模式
      • 2.3 星座模式
    • 三、ChatGPT代替Sql Boy
      • 3.1 简单案例
      • 3.2 复杂案例
    • 四、总结


前言

看到几篇不错的文章,自己总结合并了分享给小伙伴

金博尔和恩门共同开创的数仓建模的设计方法,这个方法对于后来基于数据湖的现代数据仓库的设计有重要的意义,所以你有必要了解:

恩门提出的建模方法自顶向下(这里的顶是指数据的来源,在传统数据仓库中,就是各个业务数据库),基于业务中各个实体以及实体之间的关系,构建数据仓库。比如,在一个最简单的买家购买商品的场景中,按照恩门建模的思维模式,首先你要理清这个业务过程中涉及哪些实体。买家、商品是一个实体,买家购买商品是一个关系。所以,模型设计应该有买家表,商品表,和买家商品交易表三个模型。

金博尔建模与恩门正好相反,是一种自底向上的模型设计方法,从数据分析的需求出发,拆分维度和事实。那么用户、商品就是维度,库存、用户账户余额是事实。

这两种方法各有优劣,恩门建模因为是从数据源开始构建,构建成本比较高,适用于应用场景比较固定的业务,比如金融领域,冗余数据少是它的优势。金博尔建模由于是从分析场景出发,适用于变化速度比较快的业务,比如互联网业务。由于现在的业务变化都比较快,所以我更推荐金博尔的建模设计方法。

一、维度建模基本概念

维度模型是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

维度建模是专门应用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种小型数据仓库。

1.1 事实表

发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。事实表表示对分析主题的度量。比如一次购买行为我们就可以理解为是一个事实。

图中的订单表就是一个事实表,可以理解他就是在现实中发生的一次操作型事件,每完成一个订单,就会在订单中增加一条记录。

事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。事实表包含了与各维度表相关联的外键,可与维度表关联。事实表的度量通常是数值类型(条/个/次),且记录数会不断增加,表数据规模迅速增长。

1.2 维度表

维度表示要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别进行分析,或按区域分析。这样的按…分析就构成一个维度。

上图中的用户表、商家表、时间表这些都属于维度表。这些表都有一个唯一的主键,然后在表中存放了详细的数据信息。

  • 例如:交易金额分析分析

男性用户的订单金额、联想商品的订单金额、第一季度的订单金额、手机的订单金额、家里下单的订单金额

  • 例如:学生分析

姓张的同学有多少、男性的同学有多少、江苏的同学有多少、身高小于170cm的同学有多少、年龄小于23岁的同学有多少。

每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。

总的说来,在数据仓库中不需要严格遵守规范化设计原则。因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。

事实表的设计是以能够正确记录历史信息为准则。

维度表的设计是以能够以合适的角度来聚合主题内容为准则。

二、维度建模三种模式

2.1 星型模型

星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:

维表只和事实表关联,维表之间没有关联;
每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键;
以事实表为核心,维表围绕核心呈星形分布;

2.2 雪花模式

雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。

2.3 星座模式

星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。
前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模型

三、ChatGPT代替Sql Boy

ChatGPT是一个基于自然语言处理和机器学习技术的人工智能模型,可以用于生成文本、回答问题、翻译等任务。在数据库管理和数据分析领域中,SQL是一种常用的查询语言,用于从关系型数据库中检索和操作数据。生成SQL语句可以帮助用户快速有效地提取数据,提高工作效率。

利用ChatGPT生成SQL的背景是基于自然语言查询数据库的需求。对于那些不熟悉SQL的人来说,学习SQL的成本比较高,而且SQL语法繁琐,容易出错。ChatGPT可以为用户提供一种更为自然的交互方式,让用户可以使用日常语言进行查询,将查询需求转化为SQL语句,并执行查询操作。这种方式更加方便,也可以帮助用户提高查询效率和准确性。因此,利用ChatGPT生成SQL可以帮助用户快速实现数据库查询和数据分析的需求,提高工作效率和准确性。

3.1 简单案例

假设有一家销售公司,需要查询销售额最高的产品和对应的销售额。公司的数据库中有两个表:产品表(Product)和订单表(Orders),它们之间通过产品编号(ProductId)建立了一对多的关系。现在,公司的销售经理想要查询销售额最高的前5个产品及其对应的销售额。为了实现这个查询,可以使用ChatGPT生成SQL语句。
首先,销售经理可以向ChatGPT提供以下自然语言查询:

“查询销售额最高的前5个产品及其对应的销售额”

ChatGPT可以将这个查询转化为以下SQL语句:

SELECT p.ProductName, SUM(o.Quantity * o.UnitPrice) AS SalesAmount
FROM Product p
INNER JOIN Orders o ON p.ProductId = o.ProductId
GROUP BY p.ProductName
ORDER BY SalesAmount DESC
LIMIT 5;

3.2 复杂案例

例如,假设销售经理需要查询在2021年第一季度(1月1日至3月31日)中,销售额最高的5个产品及其对应的销售额和销售数量。为了实现这个查询,需要向ChatGPT提供更为详细和精准的自然语言描述:

“查询2021年第一季度(1月1日至3月31日)中,销售额最高的5个产品及其对应的销售额和销售数量。订单表(Orders)中包含订单创建日期(OrderDate)字段,订单状态(Status)字段,产品表(Product)中包含产品名称(ProductName)字段,产品单价(UnitPrice)字段和产品数量(Quantity)字段。”

ChatGPT可以将这个查询转化为以下SQL语句:

SELECT p.ProductName, SUM(o.Quantity) AS SalesQuantity, SUM(o.Quantity * o.UnitPrice) AS SalesAmount
FROM Product p
INNER JOIN Orders o ON p.ProductId = o.ProductId
WHERE o.OrderDate BETWEEN '2021-01-01' AND '2021-03-31' AND o.Status = 'Completed'
GROUP BY p.ProductName
ORDER BY SalesAmount DESC
LIMIT 5;

四、总结

数仓的建模理论是非常有必要掌握的。

每一个指标的计算,往往都是通过指标的审核->模型的建立->指标的开发

以流程的方式进行数仓开发。

接着就是sql的编写,不管是简单的SQL或者复杂的SQL,我们都可以借助GPT进行编写

即使不是很完善,但是在我们修改提示词之后,我相信也能够给我们一个基础的SQL代码框架。

ChatGPT可以根据用户提供的自然语言查询,自动生成相应的SQL语句,从而简化数据查询和分析的过程。

但是我们需要注意以下:

  • 1.为了确保生成的SQL语句的准确性和可靠性,用户需要提供清晰、简洁和准确的自然语言描述,以及数据表结构和相关字段信息。
  • 2.ChatGPT生成的SQL语句的精度和准确性受到模型的训练数据和算法的影响。因此,在使用ChatGPT生成SQL语句时,需要进行必要的检查和验证,以确保结果的准确性和可靠性。
  • 3.ChatGPT可以帮助用户快速生成简单的SQL语句,但在处理复杂的查询需求时,可能需要用户的参与和进一步的修改优化。
  • 4.ChatGPT的出现使得数据查询和分析工作更加便捷和自动化,但并不代表人工智能技术可以完全替代人类的工作。在实际工作中,程序员仍然需要掌握SQL语法和数据库管理技能,以确保数据分析和查询的准确性和可靠性。

总之,ChatGPT可以帮助我们快速生成SQL语句,从而简化数据查询和分析的过程。但是,在使用ChatGPT生成SQL语句时,需要注意保证自然语言描述的准确性和数据表结构的清晰性,以确保结果的准确性和可靠性。

同时,我们也需要持续学习和提高自己的SQL语法和数据库管理技能,以适应变化的市场需求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据迁移工具,用这8种就够了!

前言 最近有些小伙伴问我,ETL数据迁移工具该用哪些。 ETL(是Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业应用来说,我们经常会遇到各种数据的处理、转换、迁移的场景。 今天特地给大家汇总了一些目前…

Kyligence Zen 简直就是一站式指标平台的天花板

一、Kyligence Zen是什么? 1、Kyligence Zen是做啥的? Kyligence Zen是一款指标分析和管理的工具,是基于 Kyligence 核心 OLAP 能力打造,Kyligence Zen 提供集业务模型、指标管理、指标加工、数据服务于一体的一站式服务&#x…

一文讲清数据集市、数据湖、数据网格、数据编织

本文介绍数据仓库、数据集市、数据湖、数据网格和数据编织相关概念和使用案例,帮助你选择并利用好数据的力量来完成明智的决策。 微信搜索关注《Java学研大本营》 在今天的数字时代,企业每天都在应对来自四面八方的海量数据。随着对强大的数据管理和分析…

朱金宝:数据治理产品发展趋势及Datablau产品最新动态

在刚刚结束的2023数据治理新实践峰会上,Datablau数语科技联合创始人&CTO朱金宝先生分享了对数据治理产品发展趋势的深度思考及Datablau新产品预览,并在现场发布了两款最新工具。 以下是朱金宝先生的演讲实录,为了方便阅读,小…

AIGC文生图:stable-diffusion-webui部署及使用

1 stable-diffusion-webui介绍 Stable Diffusion Web UI 是一个基于 Stable Diffusion 的基础应用,利用 gradio 模块搭建出交互程序,可以在低代码 GUI 中立即访问 Stable Diffusion Stable Diffusion 是一个画像生成 AI,能够模拟和重建几乎…

Elastic 发布 Elasticsearch Relevance Engine™ — 为 AI 革命提供高级搜索能力

作者:Matt Riley 今天我们将向大家介绍 Elasticsearch Relevance Engine™(ESRE™),这是一种创建高度相关的 AI 搜索应用程序的新功能。ESRE 建立在 Elastic 在搜索领域的领导地位以及超过两年的机器学习研究和开发基础之上。Elas…

人工智能轨道交通行业周刊-第45期(2023.5.15-5.21)

本期关键词:动车洗澡、热备列车、火车司机室、无缝线路、图像分割、自动标注 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道…

利用ChatGPT完成深度学习分类任务

利用ChatGPT完成深度学习分类任务 一、任务背景 ​ 关于早期诊断NEC(坏死性小肠结肠炎(Necrotizing enterocolitis,NEC))和及时干预一直是临床关注的重点和难点问题。现在手上有相关的临床数据集,我们想要…

chatgpt赋能python:如何使用Python绕过反爬虫机制提高SEO排名

如何使用Python绕过反爬虫机制提高SEO排名 在现代互联网时代,网站把自己的内容都用高墙围了起来,就是防止别人复制内容或者爬虫程序对网站造成损害。但是, SEO优化却需要搜索引擎对网站爬取,并且通过搜索引擎渠道引入流量&#x…

识别「ChatGPT造假」,效果超越OpenAI,AI生成检测器来了!

Datawhale干货 AI生成检测器,编辑:机器之心 AI 造假的成功率很高,前几天「10 分钟骗 430万」还上了热搜。在最热门的大语言模型上,研究人员最近探索了一种识别方法。 随着生成式大模型的不断进步,它们生成的语料正逐步…

chatgpt赋能python:Python如何绕过检测封号的技巧

Python如何绕过检测封号的技巧 Python作为目前最受欢迎的编程语言之一,广泛应用于各种领域。在SEO领域中,Python也发挥着重要的作用,但是在不当的使用下,可能会被搜索引擎检测到并封号。在本文中,我们将介绍几种Pytho…

无际Ai官网ChatGPT4和3.5的真实功能测评

生活是我们每个人都必须面对的现实。它涵盖了各种方面,包括我们的工作、家庭、朋友和爱好等等。在这个充满挑战和机遇的世界中,我们必须学会如何平衡自己的需求和责任,并适应不断变化的环境。无论你处于生命的哪个阶段,生活都是一…

2022机器学习阶段性复盘

2022机器学习阶段性复盘 文章目录 2022机器学习阶段性复盘一、业务洞察1.1 业务调研1.2 采样策略 一、特征工程1.1 特征筛选之iv_psi1.2 特征筛选之启发式搜索1.3 时间特征的曲率变换1.4 多重共线性特征的剔除1.5 什么样的特征适合树模型或LR模型1.5 什么样的特征是稳定可泛化特…

音乐推荐算法+ChatGPT歌词创作

不知道有没有小伙伴喜欢这个项目,今天刚完成,哈哈哈。 体验地:http://make.forwardforever.top:614 账号:root 密码:123 账号:root2 密码:456 主页: 曲库: 评论功能: …

使用LSTM预测股价,特征:19个指标5天历史数据

LSTM介绍 LSTM是具有时间特性的神经网络,我们利用LSTM预测时间序列——股价。 从文本到股价,LSTM的输入特征和网络结构都有哪些变化呢? 我们先看一个简单的RNN结构。与普通的全连接层神经网络的权重更新沿着一层层隐藏层网络不同&#xff0c…

北大朱松纯教授:做智能时代的先知、先觉、先行者

本文转发自北京大学智能学院,文章根据朱松纯教授2023年7月1日在北京大学智能学院2023年毕业典礼上的即兴讲话整理而成。 做智能时代的 先知、先觉、先行者 ——在智能学院2023届毕业典礼上的讲话 朱松纯 2023年7月1日 尊敬的各位来宾、各位老师,毕业班同…

谷歌周彦祺:LLM浪潮中的女性科学家多面手丨智源大会嘉宾风采

导读 大模型研发竞赛如火如荼,谷歌紧随OpenAI其后推出PalM2、Gemini等系列模型。Scaling Law是否仍然适用于当下的大模型发展?科技巨头与初创企业在竞争中各有哪些优势和劣势?模型研究者应秉持哪些社会责任? 2023智源大会「基础模…

AI巨头争相推出,企业对话场景应用量暴增1000%,究竟发生了什么?

采访嘉宾 | 中关村科金AI 平台能力中心 作者 | 刘燕 大模型构建人机协同的新型生产关系 对话式 AI 产品拥抱大模型 一个大胆的决定 自 2014 年成立以来,中关村科金就选择专注于企业服务赛道提供对话场景服务,聚焦生成式 AI 技术,包括领域大…

深聊丨“紫东太初”大模型背后有哪些值得细读的论文(一)

原创:谭婧 没有人想等待,没有人想落伍。 新鲜论文时兴火热,成为大模型发展迅猛的标志之一,人们用“刷论文”这个游荡意味的动词替代另一个颇为严肃的动作,“读论文”。 论文被当作“教材”和“新知识”,在a…

紫东太初:造一个国产大模型,需用多少篇高质量论文?

原创:谭婧 “视觉自监督算法这轮,你是不是没跟上?” 我面前这位年薪近七十万,互联网大厂AI算法工程师的好友, 他用一个反问句回答了我的关心: “自监督这个玩意咋跟上?” 他抬了抬头&#xff0c…