IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据仓库问题整理 -> 正文阅读

[大数据]数据仓库问题整理

面试题整理

数据仓库是如何分层的?每一层的作用是什么?为什么要这么分层?

为什么要分层:
1 复杂问题简单化,容易定位问题
2 减少重复开发,利用中间层数据,大大减少重复计算,增加数据复用性。
3 隔离原始数据,将统计数据和原始数据隔离开。

如何分层:
1 ODS (operational data store)层:存放原始数据。
2 DWD (data warehouse detail)层: 数据清理(去空,脏数据,不合理数据),维度退化,脱敏等。
3 DWS (data warehouse summary)层:以Dwd 为基础,按天进行轻度汇总。
4 DWT 层:以 DWS 层为基础,按照主题(维度) 进行汇总。
5 ADS(application data store) 层:以 DWT 和 DWS 为基础,为报表提供数据。

什么是数据倾斜?如何处理大数据中的数据倾斜?

正常的数据分布理论上都是倾斜的,简单来说就是 数据key 的分化严重不均,造成了一部分数据很多,一部分的数据很少的局面。

表现
- hive 算数据的时候 reduce 阶段卡在99.99%
- 用 spark Streaming 做实时算法的时候,一直会出现 executor OOM 的错误。
- Flink 使用window group by distinct 等聚合函数的时候频繁出现反压,消费速度很慢,调大资源也无济于事。

数据倾斜的原理和解决方案
数据运算的时候会涉及到 count distinct group by join 等操作,都会触发shuffle 动作,一旦触发,所有相同的key 值就会拉到一个或者是几个节点,发生单点问题。

一个简单的场景就是,在订单中,北京和上海两个地区的订单数量比其他的地方要高出好几个数量级,那么进行聚合的时候,就会出现数据热点的问题。

解决数据倾斜的几个思路。
- 业务上:避免热点key 的设计或者是打散热点key,例如可以把北京和上海分成地区,然后单独汇总。
- 技术上:出现热点的时候,需要调整方案,避免直接进行聚合,可以借助框架本身的能力,例如进行 mapside-join
- 参数上 hadoop spark 还是 flink 都提供了大量的参数可以调整。

如何区分冷热数据的分离?如何处理冷数据?

根据存储数据对当前业务的重要性以及访问频率来区分级别,热数据需要经常被访问接近CPU,冷数据位于磁盘或远离数据中心的存储介质上。一般来说经常访问的数据需要响应比较快的设备来存储。冷数据可以存储在成本比较低的设备上。

如何区分冷/热数据

  • 按照该访问的热度:热存储是需要立即访问的数据。存储的信息对业务至关重要,需要及时的响应那么就是热数据。

  • 数据创建的时间:已经产生数月,数年,并且以后不再使用的数据。就是冷数据。比如想要统计昨天访问量,那么昨日之前的数据就不再重要。

冷数据的特点
数据量大:冷数据要求保存较长时间甚至所有时间的,这可能是热数据的数十倍到数百倍的数据量。
业务场景简单:只需要读取指定的数据即可,一般不会有复杂的查询。写入、删除都会批量处理,基本没有更新操作。
性能要求不高:不像一般应用要求查询数毫秒到数秒内返回,冷数据的查询可以容忍数十秒甚至更长时间才出结果,甚至可以做到异步处理,启动一个任务然后等待结果。
成本敏感:因为数据量庞大且访问频度低,不适合大量的投入。

冷数据的处理

  • 几乎不需要查询
    压缩备份,可以放到离线的存储设备中。

  • 极地频率的查询。
    使用对象存储,在需要查询的时候启动一个数据库实例进行查询。

  • 经常需要查询
    建立冷/热数据库,热库仅保留短时间的数据,超出的数据定时批量移到冷库中。应用系统内部做好区分,热数据可以直接通过应用系统访问,如果需要访问冷数据则需要走冷库查询。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 00:16:32  更:2021-07-28 00:16:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 0:05:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码