数仓常问的问题

数据仓库的分层

  • 提高数据的复用性规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。
  • 数仓中常见的的是粒度和维度,维度的组合就是指标
  • ods 、 操作数据存储层,以采集、埋点、爬取等方式完成数据的导入
  • dwd 、公共基础建设 事实明细层
  • dws 、公共基础建设 数据聚合层
  • 流量域、设备用户域,内容消费、社交、搜索
  • 主题宽表层b包括核心业务对象为粒度的宽表,设备、生产、用户、视频。核心业务为主扩展相关业务的宽表有站外分享,视频生产、视频消费、直播生产、直播消费
  • 数据产品服务。管理看板类产品(KwaiBI)、专题分析类产品、透视预测、监督类产品
  • ads
    table – 人-- 业务部门(商业化-风控)
    成本控制策略:hdfs ec 减少副本数
    数据重分布,列式存储相似数据压缩在一起, 极限存储拉链表,相似数据压缩早一起,冷存储管理。生命周期管理:重点。
    数据有增无减,模型数量众多。
    ods长期保留。dwd短期保留,dws长期保留,topic,app

join的mr逻辑

在这里插入图片描述

select u.name,s.course,s.score from grade s join user u on s.uid = u.uid;
  • map阶段,map输出的key值为join的条件,map阶段对应的value值为select或者where条件后的字段相关信息,并且包含表的tag信息,用以标识相关字段是从哪个表出来的,并且输出按照key进行排序
    key 1 value<u,张三>
    key 1 value<s,英语,38>

  • shuffle阶段,根据map阶段输出的key进行hash,并把map阶段输出的key/value按照hash值推送到不同的reduce上,确保不同表相同的key在同一个reduce里;

  • reduce阶段,通过tag信息标识出数据的来源表,根据key值完成join操作,在这里是做了一个笛卡尔积的操作
    星型模型和雪花模型星座模型、维度冗余及三范式

  • 星型模型主要的数据都是在事实表中,只要扫描事实表就能进行大量的查询,不必精细大量的join 时间维度,商品维度

  • 雪花模型某些维度是规范化的,把数据进一步分解到附加表中,数据冗余少,但是需要多张表的join导致查询的效率下降。接近三范式

  • 星座模型包含多个事实表,维度表是共享的,星座模型并不和前两个模型冲突。

  • 1NF:属性不可再分割(例如不能存在5台电脑的属性,坏处:表都没法用)

  • 2NF:不能存在部分函数依赖(例如主键(学号+课名)–>成绩,姓名不依赖于学号姓名,所以姓名部分依赖于主键(学号+课名),所以要去除,坏处:数据冗余)

  • 3NF:不能存在传递函数依赖

数据仓库和传统数据库的区别

  • 1)数据存储位置 Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。
  • 2)数据更新 Hive中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的,
  • 3)执行延迟 Hive
    执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。
  • 4)数据规模 Hive支持很大规模的数据计算;数据库可以支持的数据规模较小
    hive数据存储格式、压缩格式,区别

HQL执行慢是怎么解决的

https://blog.csdn.net/love__water/article/details/117446916?spm=1001.2014.3001.5502

Hql 转换为MapReduce的过程

  • 1)解析器(SQL Parser):将 SQL 字符串转换成抽象语法树
    AST,这一步一般都用遍历抽象语法树,抽象成查询的基本组成单元queryBlock翻译成执行树的Operator tree,逻辑层对operator进行变换,优化,遍历operatortree翻译成mapreduce
  • (2)编译器(Physical Plan):将 AST 编译生成逻辑执行计划
  • (3)优化器(Query Optimizer):对逻辑执行计划进行优化。
  • (4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来说,就是 MR

SQL的MR实现原理

  • 主要通过map — shuffle ---- reduce

Spark
spark常用的算子
job、stage、task的关系
spark任务提交过程
spark常见算子
spark shuffle和mr shuffle的区别及优化
spark容错机制
sparkSQL的几种join实现
介绍下sparkstreaming
spark RDD的理解

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值