首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该构建事实和维度表,还是应该在高度标准化的ODS上使用视图?

在数据仓库设计中,构建事实表和维度表与在高度标准化的操作数据存储(ODS)上使用视图是两种不同的策略,它们各有优势和适用场景。

事实表和维度表

基础概念

  • 事实表:存储业务过程的量化数据,通常包含数值型数据,用于度量和分析。
  • 维度表:存储描述性属性,用于对事实表中的数据进行分类和标记。

优势

  • 灵活性:事实表和维度表的设计使得数据易于理解和查询,支持复杂的分析需求。
  • 性能:通过适当的索引和分区,可以提高查询性能。
  • 可维护性:结构化的数据模型便于数据维护和更新。

类型

  • 星型模式:一个中心事实表连接多个维度表。
  • 雪花模式:维度表进一步规范化,减少数据冗余。

应用场景

  • 复杂的业务分析需求。
  • 需要高性能的数据查询。

高度标准化的ODS上使用视图

基础概念

  • ODS:操作数据存储,存储原始业务数据,通常高度标准化。
  • 视图:基于ODS数据创建的虚拟表,提供特定的数据视角。

优势

  • 简化查询:视图可以隐藏复杂的查询逻辑,提供简化的接口。
  • 数据一致性:通过视图可以确保数据的一致性和准确性。
  • 灵活性:视图可以根据需求快速调整,无需修改底层数据结构。

类型

  • 物化视图:预先计算并存储结果,提高查询性能。
  • 普通视图:仅存储查询定义,查询时动态生成结果。

应用场景

  • 需要快速响应业务变化。
  • 简化复杂的数据查询。

选择建议

  • 如果你的业务分析需求复杂,需要高性能的数据查询,并且数据模型相对稳定,那么构建事实表和维度表可能是更好的选择。
  • 如果你的业务数据变化频繁,需要灵活应对查询需求的变化,并且希望简化数据访问接口,那么在高度标准化的ODS上使用视图可能更适合。

遇到的问题及解决方法

问题:数据冗余和不一致性。 原因:过度规范化或视图定义不当。 解决方法

  • 确保事实表和维度表的设计合理,避免过度规范化。
  • 使用物化视图来减少查询时的计算量,提高数据一致性。

问题:查询性能下降。 原因:数据量过大或索引不当。 解决方法

  • 对事实表和维度表进行适当的索引和分区。
  • 使用物化视图预先计算并存储查询结果。

参考链接

通过以上分析,你可以根据具体需求选择合适的数据存储和查询策略。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据仓库和数据集市详解:ODS、DW、DWD、DWM、DWS、ADS「建议收藏」

Schema或雪花型schema 高度标准化静态schema 数据存储 使用列式存储进行了优化,可实现轻松访问高速查询性能 针对在单行型物理块中执行高吞吐量写入操作进行了优化 数据访问 为最小化I/...为了提高数据明细层易用性,该层通常会才采用一些维度退化方法,将维度退化至事实中,减少事实关联。...维表层Dimension(DIM) 维度(Dimension Table)或维,有时也称查找(Lookup Table),是与事实表相对应一种;它保存了维度属性值,可以跟事实做关联,相当于将事实经常重复出现属性抽取...问:还是不太明白 ods dwd 层区别,有了 ods 层后感觉 dwd 没有什么用了。...问:感觉DWS层是不是没地方放了,各个业务DWS应该在 DWD还是在 app?

5.1K12

经验分享实时数仓实战命名规范分层设计~~

01ODS层规范 一. 命名规范 通常命名方式是:ODS_应用系统名(或缩写)_数据库类型_(数据库名称可省略)_数据名_加载方式(增量还是全量),名不能太长,一般不超过30字。...如果DWDDWS层没有沉淀ODS层数据,则通过ODS层创建视图方式访问。命名规范遵从DWD或者DWS命名规范,视图必须使用调度程序进行封装,保持视图可维护性与可管理性。...realtime_ods_binlog_ihap_fangyuan 2.2 DWD 明细层建设 根据顺风车业务过程作为建模驱动,基于每个具体业务过程特点,构建最细粒度明细层事实;结合顺风车分析师在离线侧数据使用特点...在顺风车券相关汇总指标加工中我们使用Hbase版本机制来构建一个衍生维度拉链表,通过事件流Hbase维关联方式得到实时数据当时准确维度 命名规范:DWM层命名使用英文小写字母,单词之间用下划线分开...同一主题域内对于DWT生成DWT,原则要尽量避免,否则会影响ETL效率。 DWT、DWAAPP中禁止直接使用ODSODS只能被DWD引用。

4.2K31
  • -数据仓库ETL开发

    设计物理模型,ODS物理模型一般包括源系统所有字段审计字段,但是源系统最主要区别是ODS层加了逻辑删除标记增量时间戳。...DW层 DW层是清洗、规范化,提交一致化维度事实工作区,建立反规范化维度模型。...主要步骤: 1.数据标准化 从数据内容、格式、命名、计算规则等输出为唯一版本数据,把各个源系统相同描述对象但是不同取值进行统一,比如:性别字段,有的源系统用01或ManWonen。...2.用代理键替换主键 根据事实中维业务主键关联查找维替换成代理键,如果关联不设置为-1。...3.物化视图,创建物化视图定时刷新聚合。 创建缩小维度 由于聚合事实粒度基础事实粒度不同,需要创建和聚合表相同粒度维度,这些维度只是基础维度缩小版。

    1.3K30

    数仓建模理论(一)

    第一个阶段 : 完全应用驱动时代,构建在Oracle/mysql,以满足报表需求为目的,将数据以与源结构相同方式同步到 Oracle (称作ODS 层),基于ODS数据进行统计,基本没有系统化模型方法体系...其中,明细事实数据、维数据一般根据ODS层数据加工生成,公共指标汇总数据一般根据维数据明细事实数据加工生成。...可以结合企业数据使用特点,将维度退化至事实中,减少事实关联 ,提高明细数据易用性,即宽化处理。...图片1.2 体系架构:OneModel方法论是以维度建模为理论基础,构建总线矩阵,划分定义业务板块、数据域、业务过程、维度、度量/原子指标、业务限定、时间周期、派生指标,设计出维度、明细事实、汇总事实过程...模型设计:以维度建模理论为基础,基于维度建模总线架构,构建一致性维度事实,同时在落地表模型时,基于阿里自身业务特点, 设计出一套规范命名体系。

    2K93

    数据仓库(四)之ETL开发

    ODS作用 开发步骤 设计Mapping文档。 设计物理模型,ODS物理模型一般包括源系统所有字段审计字段,但是源系统最主要区别是ODS层加了逻辑删除标记增量时间戳。...2.用代理键替换主键 根据事实中维业务主键关联查找维替换成代理键,如果关联不设置为-1。...2.优化更正事实主要有 在事实中新增事实,历史数据设置为默认值。 在事实中新增维度,历史数据设置为-1。 维度中新增属性,历史数据为默认值。 修改维事实粒度大小。...创建聚合方法 1.增量加载,创建聚合,增量加载聚合。 2.聚合导航,用户通过报表分析工具,根据用户请求把基础事实自动生成聚合数据。 3.物化视图,创建物化视图定时刷新聚合。...2.创建缩小维度 由于聚合事实粒度基础事实粒度不同,需要创建和聚合表相同粒度维度,这些维度只是基础维度缩小版。

    3.7K30

    关于构建数据仓库几个问题

    可以结合企业数据使用特点,基于维度建模思想,将明细事实某些重要属性字段做适当冗余,也即宽化处理,构建明细宽。...DWD层 DWD层数据一般存放明细事实,为了提升访问便利性访问性能,在维度模型事实基础,将部分常用维度冗余到事实,从而形成宽模型。...避免多个层级数据应该避免将不同层级数据放在一起,比如,如果存在7天30天事实,我们可以选择用两列存放7天30天事实,但是需要在列名字段注释上说明清楚。...公共处理逻辑下沉及单一 越是底层公用处理逻辑更应该在数据调度依赖底层进行封装与实现,不要让公共处理逻辑暴露给应用层实现,不要让公共逻辑在多处同时存在。...比如商品维度商品ID商品标题,类目ID类目名称等。ID一般用于不同之前关联,而名称一般用于报表标签。 区分数值型维度属性 数值型字段是作为事实还是维度属性,取决于该字段作用。

    98520

    数仓建模与分析建模_数据仓库建模与数据挖掘建模

    数据明细层(DWD) 数据明细层对 ODS数据进行清洗、标准化维度退化(时间、分类、地域) 满足 3NF 模型,用于数据分析 数据汇总层(DWS) 对 DWD 层数据,按照主题进行计算汇总,存放是便于分析...维度: 对事实描述信息。 每一张维度对应现实世界中一个对象或者概念,如用户、商品、日期、地区。 通常使用维度事实数据进行统计、聚合运算。...维度建模:模型相对清晰、简洁。维度模型以数据分析作为出发点,不遵循三范式,故数据存在一定冗余。维度模型面向业务,将业务用事实维度呈现出来。 4....数仓建模方法 ODS: 数据类型:用户行为数据、业务数据 规划处理 保持数据源不做修改,起到备份数据作用 数据采用压缩,减少磁盘存储空间 创建分区,防止后续扫描 DWD: DWD层需构建维度模型...,数据多累计写入(修改),新增及变化同步 DWD层构建维度模型策略: 确认维度模型中事实 声明事实(最小)粒度,及声明每行数据是什么 确认事实维度外键有哪些 确实事实度量值字段 --

    1.3K20

    【万字长文】数仓最全知识点整理(建议收藏)

    在划分数据域、构建总线矩阵时,需要结合对业务过程分析定义维度构建明细事实DWD,将原始数据各个维度进行关联,生成事实。...其维度层级维度信息都存储在数据模型之中。星形模型是反规范化数据,数据存在冗余,维度直接关联事实维度层级清晰明了。 3、雪花模型在设计更加复杂,由于附属维度限制,ETL复杂且不能并行化。...星形模型加载维度,不需要添加附属维度层级,ETL相对简单,可以实现高度并行化。 4、雪花模型使得维度分析更加容易,比如“针对特定广告主,有哪些客户或者公司是在线?”。...对于空气温度、行驶速度这些状态型指标,由于它们值往往是连续,我们无法捕获其变动原子事务操作,所以无法使用事务型事实统计此类需求。而只能定期对其进行采样,构建周期型快照事实。...但是,在建立第一个数据集市前,架构师首先要做就是设计出在整个企业内具有统一解释标准化维度事实,即一致性维度一致性事实。而开发团队必须严格按照这个体系结构来进行数据集市迭代开发。

    11.8K715

    数据仓库架构建设方法论

    1.3.2.数据仓库优势 数据整合后信息流简化 共享数据利用率提高 数据集中管理,来源唯一 形成业务单一视图,数据标准化 数据管控体系,数据质量得以保证 1.3.3.数据仓库组成 多种多样数据源 数据抽取...DW主要用于高层战略决策,供挖掘分析使用。 ⑤使用者不同:ODS主要使用者是企业中层管理人员,他们使用ODS进行企业日常管理控制。DW主要使用者是企业高层和数据分析人员。...事务事实:一行对应空间或时间某点度量事件。原子事务粒度事实维度化及可表达事实,这类健壮维度确保对事务数据最大划分片分块。...基础事实层(detail):基础层数据粒度比较细,通常与ods粒度相似,只是在ods数据基础做了清洗、规范化为了方便分析而作一些整合,有可能需要结合维度。...集市款表层(topic):集市宽主要是在轻度汇总层基础之上创建,由于轻度汇总层数据有所偏向,所以按照这些事实粒度公共维度,通过更高等级视图将它们整合起来。

    3K20

    关于数据建模之思考(三)

    印象最深是一张客户信息足足阅读代码分析了整整三个月,这张前前后后涉及到七八十个上游,五六十个存储过程,层级大概有七八级,关键是层级还有些乱;还好代码注释写还是比较规范,代码排版也还好,...数据明细层:DWD(Data Warehouse Detail) 该层一般保持ODS层一样数据粒度,并且提供一定数据质量保证,在ODS基础对数据进行加工处理,提供更干净数据。...同时,为了提高数据明细层易用性,该层会采用一些维度退化手法,当一个维度没有数据仓库需要任何数据时,就可以退化维度,将维度退化至事实中,减少事实关联。...就像前文所述,数据分层要结合当下数据量技术,同时也是个不断探索过程,窃以为移动经营分析系统经过了十几年耕耘,在数据分层结构还是比较合理。...dwctr 汇总层 融合多个中间层数据,基于主题形成事实,比如用户事实、渠道事实、终端事实、资产事实等等,事实一般是宽,在本层实现企业级数据一致性。

    42030

    数据仓库开发教程 (DW) 之数据模型架构&编码规范

    主要作用是完成数据加工与整合、建立一致性维度构建可复用面向分析统计明细事实以及汇总公共粒度指标。 DWD:Data Warehouse Detail,明细数据层。...在进入到CDM层后,由以下几部分组成: 公共维度层:基于维度建模理念思想,建立整个企业一致性维度。 明细粒度事实层:以业务过程为建模驱动,基于每个具体业务过程特点,构建最细粒度明细层事实。...您可以结合企业数据使用特点,将明细事实某些重要维度属性字段做适当冗余,即宽化处理。...公共汇总粒度事实层:以分析主题对象为建模驱动,基于上层应用产品指标需求,构建公共粒度汇总指标事实,以宽化手段来物理化模型。...公共处理逻辑下沉及单一 底层公用处理逻辑应该在数据调度依赖底层进行封装与实现,不要让公用处理逻辑暴露给应用层实现,不要让公共逻辑在多处同时存在。

    69950

    数据仓库模型全景

    ; 物理设计:从库类型、库分区、索引、主键设计等维度,主要针对性能,可扩展性进行物理模型设计审查 二、什么是数仓数据模型 数据仓库模型构建宗旨能够直观地表达业务逻辑,能够使用实体、属性及其关系对企业运营逻辑规则进行统一定义...、编码命名,是业务人员开发人员之间沟通一套语言,数据仓库数据模型作用: 统一企业数据视图; 定义业务部门对于数据信息需求; 构建数据仓库原子层基础; 支持数据仓库发展规划; 初始化业务数据归属...; 常用数据模型是关系模型维度模型,关系模型从全企业高度设计一个3NF模型方法,用实体加关系描述数据模型描述企业业务架构,在范式理论符合3NF,其站在企业角度进行面向主题抽象,而不是针对某个具体业务流程...其根据业务需求可以继续构建ADS层(Application Data Store)和面向指标报表高度汇总层。...,Hbase能够提供半结构化文档快速检索能力,MPP能够提供强大高压缩比基础快速查询能力; 二、MPP数仓特性 在MPP解决方案中目前已接触过是verticaGP,在teradata实习期间没有用到

    1.2K20

    所谓数据模型

    数据层次划分 ODS: Operational Data Store,操作数据层,在结构其与源系统增量或者全量数据基本保持 一致。...它主要作用是完成数据加工与整合、建立一致性维度构建可复用面向分析统计明细事实以及汇总公共粒度指标。 DWD: Data Warehouse Detail,明细数据层。...明细粒度事实层: 以业务过程为建模驱动,基于每个具体业务过程特点,构建最细粒度明细层事实。 您可以结合企业数据使用特点,将明细事实某些重要维度属性字段做适当冗余,即宽化处理。...公共汇总粒度事实层: 以分析主题对象为建模驱动,基于上层应用产品指标需求,构建公共粒度汇总指标事实,以宽化手段来物理化模型。 数据处理流程架构 ?...公共处理逻辑下沉及单一 底层公用处理逻辑应该在数据调度依赖底层进行封装与实现,不要让公用处理逻辑暴露给应用层实现,不要让公共逻辑在多处同时存在。

    99330

    数据模型架构设计规范

    数据层次划分 ODS: Operational Data Store,操作数据层,在结构其与源系统增量或者全量数据基本保持 一致。...它主要作用是完成数据加工与整合、建立一致性维度构建可复用面向分析统计明细事实以及汇总公共粒度指标。 DWD: Data Warehouse Detail,明细数据层。...明细粒度事实层: 以业务过程为建模驱动,基于每个具体业务过程特点,构建最细粒度明细层事实。 您可以结合企业数据使用特点,将明细事实某些重要维度属性字段做适当冗余,即宽化处理。...公共汇总粒度事实层: 以分析主题对象为建模驱动,基于上层应用产品指标需求,构建公共粒度汇总指标事实,以宽化手段来物理化模型。...公共处理逻辑下沉及单一 底层公用处理逻辑应该在数据调度依赖底层进行封装与实现,不要让公用处理逻辑暴露给应用层实现,不要让公共逻辑在多处同时存在。

    98921

    详解数据模型设计方法

    数据中台模型设计核⼼是追求模型复⽤共享,通过元数据中⼼数据⾎缘图,可以看到,⼀个⽐较差模型设计,⾃下⽽是⼀条线。⽽⼀个理想模型设计,它应该是交织发散型结构。...是不是所有维度属性都要整合到⼀个⼤中,也不⻅得,给你⼏个 建议。 1. 公共维度属性与特有维度属性拆成两个维。在⾃营平台中,通常也会有⼀些第三⽅商家⼊驻,但是数 量很少。...来看⼀个例⼦: 在数据中台构建前,供应链部⻔、仓储部⻔市场部⻔都有⼀些重复事实,我们需要将这些重复内容进⾏去除,按照交易域仓储域,主题域⽅式进⾏整合。...对于仓储部⻔供应链部⻔都有的库存明细,因为仓储部⻔统计粒度是商品加仓库,⽽供应链部⻔只有商品,所以原则两个是不能合并,⽽是应该独⽴存在。...对于市场部⻔供应链部⻔两张下单明细,因为统计粒度都是订单级别,都归属于交易域下下单业务过程,所以可以合并为⼀张事实。 除此之外,还应该考虑将不全数据补⻬。

    98912

    数据中台实战(06)-数据模型无法复用,归根结底还是设计问题

    一个规范命名应包括: 主题域 分层 是全量快照,还是增量 等信息 若A中用户ID命名UserID,B中用户ID命名ID,就会困扰使用者:这是一个玩意?...ODS数据须和数据源结构、表记录数一致,高度无损,对ODS命名方式: ODS_业务系统数据库名_业务系统数据库名 如ods_warehous_stock。...案例 数据中台构建前,供应链部门、仓储部门市场部门都有一些重复事实,要去除这些重复内容,按交易域仓储域,主题域方式整合。...仓储部门、供应链部门都有的库存明细,因为仓储部门统计粒度是商品加仓库,而供应链部门只有商品,所以原则两个是不能合并,而是应该独立存在。...完善度、复用度规范度构成衡量数据中台模型设计度量体系,可助你评估数仓设计好坏 维度设计是维度建模灵魂,也是数据中台模型设计基础,维度设计核心是构建一致性维度 事实统计粒度须保持一致,不同统计粒度数据不能出现在同一事实

    66740

    数据模型⽆法复⽤,归根结底还是设计问题

    ⼀个规范命名应该包括主题域、分层、是全量快照,还是增量等信息。 除此之外,如果在A中⽤⼾ID命名是UserID,在B中⽤⼾ID命名是ID,就会对使⽤者造成困扰,这到底是不是⼀个东西。...是不是所有维度属性都要整合到⼀个⼤中,也不⻅得,给你⼏个 建议。 1. 公共维度属性与特有维度属性拆成两个维。在⾃营平台中,通常也会有⼀些第三⽅商家⼊驻,但是数 量很少。...在数据中台构建前,供应链部⻔、仓储部⻔市场部⻔都有⼀些重复事实,我们需要将这些重复内容进⾏去除,按照交易域仓储域,主题域⽅式进⾏整合。 ?...对于仓储部⻔供应链部⻔都有的库存明细,因为仓储部⻔统计粒度是商品加仓库,⽽供应链部⻔只有商品,所以原则两个是不能合并,⽽是应该独⽴存在。 ?...对于市场部⻔供应链部⻔两张下单明细,因为统计粒度都是订单级别,都归属于交易域下下单业务过程,所以可以合并为⼀张事实。 除此之外,还应该考虑将不全数据补⻬。

    87070

    数仓建设 | ODS、DWD、DWM等理论实战(好文收藏)

    为了提高数据明细层易用性,该层通常会才采用一些维度退化方法,将维度退化至事实中,减少事实关联。...维表层Dimension(DIM) 维度(Dimension Table)或维,有时也称查找(Lookup Table),是与事实表相对应一种;它保存了维度属性值,可以跟事实做关联,相当于将事实经常重复出现属性抽取...在数据结构,数据仓库是面向主题、集成数据集合。而数据集市通常被定义为星型结构或者雪花型数据结构,数据集市一般是由一张事实几张维组成。 七、问题总结 1. ODS与DWD区别?...问:还是不太明白 ods dwd 层区别,有了 ods 层后感觉 dwd 没有什么用了。...问:感觉DWS层是不是没地方放了,各个业务DWS应该在 DWD还是在 app?

    71340

    马蜂窝数据仓库架构、模型与应用实践

    DWD:这一层是整合后业务过程明细数据,负责各业务场景垂直与水平数据整合、常用公共维度冗余加工,以及明细业务标签信息加工; DWS:汇总数据层按照主题对共性维度指标数据进行轻度、高度聚合; DIM:对维度进行统一标准化定义...面向主题:采用范式模型理论中主题划分方法对业务数据进行分类。 2. 一致性保证:采用维度模型理论中总线结构思想,建立统一一致性维度一致性事实来保证一致性。 3....数据质量保证:无论范式建模还是维度建模都非常重视数据质量问题,综合使用两个理论中方法保证数据质量。 4. 效率保证:合理采取维度退化、变化维、增加冗余等方法,保证数据计算查询效率。 ?...其中,ODS 选择保持贴源范式模型,不做进一步模型抽象,只是从节省存储角度考虑,对该层采取拉链处理。DWD 与 DWS 基于对构建成本、性能,易用性角度考虑,主要采取维度模型一些宽模型。...宽模型本质是基于维度模型扩展,对整个业务以及全节点信息进行垂直与水平方式整合;同时采用退化维度方式,将不同维度度量放入数据不同列中,实现业务全流程视图构建,来提升宽模型易用性、查询效率

    1.1K41

    马蜂窝数据仓库架构、模型与应用实践

    DWD:这一层是整合后业务过程明细数据,负责各业务场景垂直与水平数据整合、常用公共维度冗余加工,以及明细业务标签信息加工; DWS:汇总数据层按照主题对共性维度指标数据进行轻度、高度聚合; DIM:对维度进行统一标准化定义...面向主题:采用范式模型理论中主题划分方法对业务数据进行分类。 2. 一致性保证:采用维度模型理论中总线结构思想,建立统一一致性维度一致性事实来保证一致性。 3....数据质量保证:无论范式建模还是维度建模都非常重视数据质量问题,综合使用两个理论中方法保证数据质量。 4. 效率保证:合理采取维度退化、变化维、增加冗余等方法,保证数据计算查询效率。...其中,ODS 选择保持贴源范式模型,不做进一步模型抽象,只是从节省存储角度考虑,对该层采取拉链处理。DWD 与 DWS 基于对构建成本、性能,易用性角度考虑,主要采取维度模型一些宽模型。...宽模型本质是基于维度模型扩展,对整个业务以及全节点信息进行垂直与水平方式整合;同时采用退化维度方式,将不同维度度量放入数据不同列中,实现业务全流程视图构建,来提升宽模型易用性、查询效率

    1.1K50
    领券