数据仓库面试题-数仓-五

1.理解维度数据仓库——事实表、维度表、聚合表

参考自

1.1 事实表

  1. 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”。
  2. 事实表中的每个列通常要么是键值列,要么是度量值列,但也可能包含其他参考目的的列——例如采购订单号或者发票号。
  3. 事实表中,每个度量值都有一个列不同事实表将有不同的度量值
  4. 事实表中对每个维度的最详细的项目成员都有数据行
  5. 事实是事实表几乎总会使用一个整数值来表示(维度)成员,而不使用描述性的名称。因为事实表往往会包含数量多得无法想象的数据行——在一个中等大小的数据仓库中,事实表动辄包含上百万行数据——使用整数键值可以有效地减小事实表的大小
  6. 事实表中使用整数键值时,维度成员的名称需要放到另一种表中——也就是维度表。通常,事实表中的每个维度都有一个维度表。
  7. 归纳:
    1)每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务。
    2)所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据
    3)包含在事实数据表中的“度量值”有两中:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息,例如。可以汇总具体时间段内一组商店的特定商品的销售情况。非累计的度量值也可以用于事实数据表,单汇总结果一般是没有意义的,例如,在一座大厦的不同位置测量温度时,如果将大厦中所有不同位置的温度累加是没有意义的,但是求平均值是有意义的。
    4)一般来说,**一个事实数据表都要和一个或多个纬度表相关联,**用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。

1.2 维度表

  1. 维度表包含了维度的每个成员的特定名称。维度成员的名称称为“属性”(Attribute)
  2. 在数据仓库中,维度表中的键属性必须为维度的每个成员包含一个对应的唯一值。用关系型数据库术语描述就是,键属性称为主键列。每个维度表中的主键值都与任何相关的事实表中的键值相关。在维度表中出现一次的每个键值都会在事实表中出现多次
  3. 在事实表中,键值列(它是一对多关系的“多”的一方)称为外键列。关系型数据库使用匹配的**主键列(在维度表中)和外键列(在事实表中)**值来联接维度表到事实表。
  4. 维度信息移动到一个单独的表中,除了使得事实表更小外,还有额外的优点——可以为每个维度成员添加额外的信息
  5. 维度属性可以是可分组的,也可以是不可分组的。不可分组的属性通常称为成员属性(member property)。
  6. 某些可分组的属性可以组合起来创建一个自然层次结构(natural hierarchy)。例如假设Product有Category和Subcategory属性,在多数情况下,单个产品只会属于单个Subcategory,并且单个Subcategory只会属于单个Category。这将形成一个自然层次结构。在报表中,可能会显示Categories,然后允许用户从某个Category钻取到Subcategories,以及最终钻取到Products。

1.3 结论:

1、事实表就是你要关注的内容;
2、维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。

1.4 聚合表

数据是按照最详细的格式存储在事实表中,各种报表可以充分利用这些数据。一般的查询语句在查询事实表时,一次操作经常涉及成千上万条记录,但是通过使用汇总、平均、极值等聚合技术可以大大降低数据的查询数量。因此,来自事实表中的底层数据应该事先经过聚合存储在中间表中。中间表存储了聚合信息,所以被称为聚合表,这种处理过程被称为聚合过程。

2. 数据库三范式

  1. 第一范式,又称1NF,它指的是在一个应中的数据都可以组织成由行和列的表格形式,且表格的任意一个行列交叉点即单元格,都不可再划分为行和列的形式,实际上任意一张表格都满足1NF;
  2. 第二范式,又称2NF,它指的是在满足1NF的基础上,一张数据表中的任何非主键字段都全部依赖于主键字段没有任何非主键字段只依赖于主键字段的一部分。即,可以由主键字段来唯一的确定一条记录。比如学号+课程号的联合主键,可以唯一的确定某个成绩是哪个学员的哪门课的成绩,缺少学号或者缺少课程号,都不能确定成绩的意义。
  3. 第三范式,又称3NF,它是指在满足2NF的基础上,数据表的任何非主键字段之间都不产生函数依赖,即非主键字段之间没有依赖关系,全部只依赖于主键字段。例如将学员姓名和所属班级名称放在同一张表中是不科学的,因为学员依赖于班级,可将学员信息和班级信息单独存放,以满足3NF。

3.如何检验数据仓库模型构建是否合理–京东面试题

  1. 数据是否完善,指标是否健全,维度表、事实表是否能涵盖所有的业务
  2. 规范度,模型、表名、字段名、格式
  3. 复用度。表格的复用度来衡量数仓的模型的好坏
  4. 其他:数据治理,配置生命周期,全量/增量减少存储,如果中间表可以通过其他表复现,可把中间表生命周期调短。

4.数据质量管理–京东面试题

1)正常
时效减少,优化方式
降低存储(设置增量表/全量表/拉链表)
设置合理的生命周期,数据回溯可找回/或者通过其他表复现
2)异常
资源紧张–》日常数据监控
数据倾斜问题–》缓解数据倾斜

5.数据仓库、数据湖、数据集市的了解

你可能感兴趣的:(数据库,数据库,大数据,数据分析,mysql)