目录 1.数仓与关系数据库区别?2.数仓为什么需要分层?优缺点?2.1 什么是数仓?2.2 数据仓库建模的意义,为什么要对数据仓库分层? 3.数仓链路很长怎么保证任务有序执行?4.消息队列(了解)5 触发器5.1 是什么?5.2 触发器有如下作用:5.3 分类 6.表之间依赖是怎么触发的?(时间触发、版本触发)7.维度建模的方法?优缺点?7.1 什么是维度建模?7.2 优缺点 8.事实表、维度表怎么建立?-设计原则9.建模过程中逻辑模型和物理模型的区别?10.哔哩哔哩yxdhj投稿,对于看稿件这一行为怎么去建模?
1.数仓与关系数据库区别?
联系:数据仓库是由数据库以一种方式组织起来的。
区别:
(1)数据库强调范式,尽可能减少冗余;
数据仓库强调查询分析的速度,优化读取的操作,主要目的是做大量数据的查询。
(2) 数据库是行存储,数据仓库是列存储。
(3)数据库面向事务的,在线交易处理(OLTP)
数据仓库是面向主题的、集成、相对稳定、反应历史变化,存储历史数据(OLAP)。
(4)数据仓库定期写入新数据,而不覆盖原有数据,而是给数据加上时间戳。
(5)数据仓库两个基本元素:事实表和维度表
事实表存储要查询的数据;维度是看待问题的角度,如时间、部门等。
面向主题的、集成的、相对稳定的、反映历史变化的数据集合
为企业所有级别的决策制定过程,提供所有类型数据支撑的战略集合,主要是用于数据挖掘和数据分析,以建立数据沙盘为基础,为消灭消息孤岛和支持决策为目的而创建的。
https://blog.csdn.net/qq_39093097/article/details/100126722
版本二:
只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。
1、清晰数据结构:
每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
2、数据血缘追踪:
简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
3、减少重复开发:
规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低存储和计算成本。
4、用空间换时间,把复杂问题简单化。
讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
5、屏蔽原始数据的异常。屏蔽业务的影响,不必改一次业务就需要重新接入数据。
在业务或系统发生变化时,可以保持稳定或很容易扩展,提高数据稳定性和连续性。
扩展内容见:https://blog.csdn.net/qq_22473611/article/details/103278799 3.数仓链路很长怎么保证任务有序执行? 4.消息队列(了解)
消息队列
1.什么是消息队列?
可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ
2.使用消息队列好处?
1.通过异步处理提高系统性能(削峰、减少响应所需时间);
2.降低系统耦合性。
学习链接
可在写入数据表前,强制检验或转换数据。
触发器发生错误时,异动的结果会被撤销。
部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
可依照特定的情况,替换异动的指令 (INSTEAD OF)。
SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。
来自百度百科
触发器
1、什么是触发器?
触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。
2、触发器的作用?
(1)可以强化约束,来维护数据的完整性和一致性;可以跟踪数据库内的操作,从而不允许未经许可的更新和变化。
(2)可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
3、触发器分类
触发时间:有before,after.
触发事件:有insert,update,delete三种
触发类型:有行触发、语句触发
2.2 特点:星型模型:关联关系简单、方便解耦,关联查询方便适用于大数据环境的数据模型建。但表中存在冗余数据。查询效率比雪花型高。雪花模型:层级较多,关联不方便,但冗余数据较少。星座模型:在星型模型基础上共享维表。更适合复杂的数据环境。
应用:
雪花模型在**应用系统的表设计(关系型数据库)**中涉及的会比较多,
**分析系统偏向于(大数据系统的数据库hadoop)**星型模型 7.2 优缺点
优点
简化查询-每次需要从数据库中获取一些信息时,可以不用编写冗长的查询优化读取-针对读取进行了优化,可以写更少的JOIN,更快地返回结果缺点对数据进行非规范化意味着一次性插入或更新会导致数据异常。在实践中,星型模型是通过批处理实来弥补这一问题分析灵活性有限。星型模型通常是为特定目的而设计的。在分析需求方面,它不像规范化数据模型那样灵活 8.事实表、维度表怎么建立?-设计原则 事实表:事实表存储了从业务活动或事件提炼出来的性能度量,它主要包含维度表的外键和连续变化的可加性数值或半可加事实。事实表产生于业务过程中而不是业务过程的描述性信息。在维度模型中也有表示多对多关系的事实,其他都是维度表。维度表:维度表是对业务过程的上下文描述,主要包含代理键、文本信息和离散的数字。它是进入事实表的入口,丰富的维度属性给出了对事实表的分析切割能力。
如果属性值是离散的,用于过滤和标记的,就放到维度表里,如果是属性值是连续取值,用于计算的,就放到事实表中。
首先,明确一个定义:
代理键:维度表中的主键。
创建维度表的规则:
主键(代理键,自动增加编号,数据仓库中只有唯一编号)
业务键(业务键可以链接回数据源,具有业务含义)
属性(来自数据源的描述性信息)
有两种数据:主数据和事务数据。
主数据是指实体(例如员工),而交易数据是指使用该实体执行的所有交易。
主数据有限,而交易数据可能是数十亿。
在维度表中,大多数数据是主数据。
创建事实表的规则:
主键(代理键/备用键,自动增加编号)
外键(维度表中的主键/代理键/备用键)
度量(addictive number/semi-addictive number)
提示:事实表中没有描述性数据。
转载自 9.建模过程中逻辑模型和物理模型的区别?
1、概念模型:就是从现实世界到信息世界的第一层抽象,确定领域实体属性关系等,使用E-R图表示,E-R图主要是由实体、属性和联系三个要素构成的。
2、逻辑模型:是将概念模型转化为具体的数据模型的过程,即按照概念结构设计阶段建立的基本E-R图,按选定的管理系统软件支持的数据模型(层次、网状、关系、面向对象),转换成相应的逻辑模型。这种转换要符合关系数据模型的原则。目前最流行就是关系模型(也就是对应的关系数据库)
E-R图向关系模型的转换是要解决如何将实体和实体间的联系转换为关系,并确定这些关系的属性和码。这种转换一般按下面的原则进行:
(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。
(2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但是关系的码会根据联系的类型变化,如果是:
1:1联系,两端实体的码都成为关系的候选码。
1:n联系,n端实体的码成为关系的码。
m:n联系,两端实体码的组合成为关系的码。
3、物理模型就是根据逻辑模型对应到具体的数据模型的机器实现。物理模型是对真实数据库的描述。如关系数据库中的一些对象为表、视图、字段、数据类型、长度、主键、外键、索引、约束、是否可为空、默认值。
4、三者关系:由上到下,先要概念设计,接着逻辑设计,再是物理设计,一级一级设计。
1. 数据模型的建立一般分为四步:
需求分析(客户交流、理解需求、形成实体)
概念模型设计 (形成E-R图)
逻辑模型设计(对实体进行细化,细化成具体的表,同时丰富表结构。)
物理模型设计
实施运行维护
2. 一般情况下,面对比较复杂的数据库建模, 规范的做法是:
第一步: 需求分析,获得业务流程图,数据流图和数据字典
第二步:根据数据流图和数据字典建立E-R图
第三步:E-R图转换成为物理数据模型
第四部:实施物理数据模型