没有合适的资源?快使用搜索试试~ 我知道了~
项目介绍12.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 11 浏览量
2023-08-08
15:07:47
上传
评论
收藏 658KB DOCX 举报
温馨提示
试读
28页
大数据项目+项目介绍+面试辅导
资源推荐
资源详情
资源评论
1.自我介绍
大家好,面试官好!
我叫 XXXX,之前在 XXX 工作 3 年,一直从事的是 IT 行业,一开始是 Java 后端开发,
后来转岗到大数据方向做大数据开发;
刚转行道大数据开发的时候开始比较困难,主要是相比大数据的存储计算核心框架
Hadoop ,Spark,Flink 等等。 Java EE 主要的核心框架的 SSM 相对容易理解和操作。大数据的
核心框架在分布式的场景下 一般有者:1. 计算向数据移动 2. 并行计算 3.本地化读取 等
概念的实现使用更为复杂。 我离职前主要是做平台的搭建已经各种指标的分析: 实时和离
线都做;
2. 工作职能
2.1 项目需求
1. 用户行为数据采集平台搭建
2. 业务数据采集平台搭建
3. 数据仓库维度建设
4. 分析, 设备、会员、商品、地区、活动等电扇核心主题,统计报表指标近 100 个。
5. 为 JavaEE 相关统计业务提供数据源
2.2 工作范围
平常大数据开发工作范围主要包括 3 块
1.数据仓库的搭建
2.实时计算系统
3.离线计算系统
2.3 使用框架
数据存储: Hadoop 3.1.3 , MySql 5.7.x
数据传输: Flume 1.9 , Kafka 2.4.1 ,Sqoop 1.4.6,Canle 1.1.2, Hbase 2.0.5 ,Redis 3.2.5
数据计算: Hive 3.1.2 , Tez , Spark 2.4.5 ,Flink 1.10.0
2.4 集群规模
1.例如
1. 日活 100 万 , 每人一天平均 100 条数据:
100 万 * 100 条 = 1 亿条
2. 每条日志 1K ,每天就是 1 亿条:
100 000 000 / 1024 /1024 = 约 100G
3. 半年内不扩容服务器来算: 100 G *180 天 = 约 18T
4. 保存 3 个副本: 18T * 3 = 54T
5. 预留 20% ~30% = 54T / 0.7
6. 算到这: 约 8T * 10 台服务器
3. 数据仓库介绍
3.1 数据分层
3.1.1 分为那几层和为什么要分层
a. ods 层 : 直接存放原始数据,直接加载原始日志,
数据,数据保持原貌不做处理 。
b. dwd 层 : 对 ODS 层数据进行清洗(去除空值,
赃数据,超过极限范围的数据)维度退化,脱敏。
c. dws 层 : 以 DWD 为基础按照天为轻度汇总
d. dwt 层 : 以 DWS 为基础 ,按主题进行汇总
d. ads 层 : ADS 层;为各种统计报表提供数据
3.2 数据仓库为什么要分层
1. 把复杂问题简单化
将复杂的任务分解成多层来完成,每一层值处理简单
任务,方便定位问题
2. 减少重复开发 规范数据分层,通过中间层数据,能够
减少极大的重复值计算,增加一次计算结果的复用性
3. 隔离原始数据
不论是数据的异常还是数据的敏感性,使真是数据用
统计数据解耦开。
3.2 维度建模
3.2.1 类型分为: 星型模型、雪花模型、星座模型。
星座模型基于多个事实表。就想是 多个星型模型、和雪花模型的公用事实表的形式。
3.2.2 模型的选择
选星型 性能优先考虑。选雪花 灵活度优先考虑。不会绝对选一种,组合使用,整
体来说选,大多数选择维度更少的星型结构。尤其是 Hadoop 体系,减少 Join 就是减少
shuffle,性能影响巨大。
3.3 维度表和事实表
2.3.1 维度表
维度表:一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。
例如:用户、商品、日期、地区等。
维表的特征:
1.维表的范围很宽(具有多个属性、列比较多)
2.跟事实表相比,行数相对较小:通常< 10 万条
3.内容相对固定:编码表
时间维度表
2.3.2 事实表
事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等)。“事实”这个
术语表示的是业务事件的度量值(可统计次数、个数、金额等),例如,订单事件中的下单
金额。
每一个事实表的行包括:具有可加性的数值型的度量值、与维表相连接的外键、通常具
有两个和两个以上的外键、外键之间表示维表之间多对多的关系。
事实表的特征:
➢ 非常的大
➢ 内容相对的窄:列数较少
➢ 经常发生变化,每天会新增加很多。
1)事务型事实表
以每个事务或事件为单位,例如一个销售订单记录,一笔支付记录等,作为事实表里的
一行数据。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量
更新。
2)周期型快照事实表
周期型快照事实表中不会保留所有数据,只保留固定时间间隔的数据,例如每天或者
每月的销售额,或每月的账户余额等。
3)累积型快照事实表
累计快照事实表用于跟踪业务事实的变化。例如,数据仓库中可能需要累积或者存储
订单从下订单开始,到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪
订单声明周期的进展情况。当这个业务过程进行时,事实表的记录也要不断更新。
4.数仓分层需要使用的函数
4.1 系统函数
4.1.1 get_json_object 函数使用
1)数据
[{"name":" 大 郎 ","sex":" 男 ","age":"25"},{"name":" 西 门 庆 ","sex":" 男
","age":"47"}]
2)取出第一个 json 对象
select get_json_object('[{"name":"大郎","sex":"男","age":"25"},{"name":"西
门庆","sex":"男","age":"47"}]','$[0]');
结果是:{"name":"大郎","sex":"男","age":"25"}
3)取出第一个 json 的 age 字段的值
SELECT get_json_object('[{"name":" 大 郎 ","sex":" 男
","age":"25"},{"name":"西门庆","sex":"男","age":"47"}]',"$[0].age");
4.1.2 concat 函数
concat 函数在连接字符串的时候,只要其中一个是 NULL,那么将返回 NULL
hive> select concat('a','b');
ab
hive> select concat('a','b',null);
NULL
剩余27页未读,继续阅读
资源评论
AI+Maynor
- 粉丝: 7w+
- 资源: 167
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功