企业级大数据项目【3】数仓-流量域DWD-DWS开发篇

1DW层整体设计

建模思想:
DWD:放明细数据
DWS:数仓服务层;它的建模思想,就是为最终需求计算来提供支持服务,所以建模相对灵活

常见的建模套路有:
1.建大宽表(对应:维度建模思想中的维度退化)
2.轻度聚合
3.看具体需求(如,用户连续活跃区间记录表)

1.1技术选型概述

存储:HDFS
运算:HIVE/SPARK

1.2输入输出

数仓内部

输入dwd层事实表及dim层维度表
输出dws层聚合表

1.3主题模型举例

流量会话聚合天/月表
日新日活维度聚合表
事件会话聚合天/月表
访客连续活跃区间表

新用户留存维度聚合表
运营位维度聚合表
渠道拉新维度聚合表
访客分布维度聚合表

用户事件链聚合表(支撑转化分析,高级留存分析,)

2全局访客id表

需求:记录全局到目前为止出现过的所有guid,并且带一个自增的id
在这里插入图片描述

dwd.user_guid_global

计算的源表:

  • 设备账号 关联评分表
设备,账号,评分,首访时间,最近时间
device01,account01,2000,t1,t8
device01,account02,1000,t2,t8
device02,account03,2000,t1,t8
device04,account04,2000,t1,t8
device05,\NULL  ,\N,  t1,t8

实现逻辑
用T日的设备关联表,来获取所有guid,去LEFT JOIN T-1日的全局id表,获得T日新增guid

然后插入全局id表的T日分区,并带上row_number +(T-1的id最大值)

3基础指标分析主题

3.1会话聚合表

页面浏览事件的:一次会话一行
在这里插入图片描述

表名: dws.tfc_app_agr_session

Hive的向量化执行引擎,对parquet的支持尚不完善,如果报向量化相关的错误,可关闭向量化执行: SET
hive.vectorized.execution.enabled=false

3.2支撑的ADS报表

可以支撑的报表分析举例:

  • PV/UV[DAU]/DNU概况日报表,周报表,月报表
Pv日报表:  日期,pv总数
Uv日报表:  日期,uv总数
DNU日报表:  日期,nu总数


Pv周报表:  日期,周pv总数
Uv周报表:  日期,周uv总数
DNU周报表:  日期,周nu总数
  • 访问次数分析
    在这里插入图片描述

  • 访问深度分析
    在这里插入图片描述

  • 访问时长分析
    在这里插入图片描述

  • 访问入口页分析
    在这里插入图片描述

  • 访问跳出页分析
    在这里插入图片描述

  • 回头访客数分析
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 不同时段流量对比分析
    在这里插入图片描述

不同地域的流量情况

不同地域的访问次数情况

不同地域的新、老用户分布情况

不同手机型号的活跃用户数

3.3补充:多维数据立方体cube

3.3.1概述
实际生产中,各种指标的报表统计,往往都会涉及到多维分析
,比如,统计日活数,日会话次数,日回头访客数,日新,日用户平均访问时长,访问深度……都可以从如下维度来进行分析:
时间段
省市区等地域维度
设备类型
操作系统
App版本
App下载安装渠道
……
而数据分析师,可能会提出各种各样的“维度组合”下的指标统计需求:
,比如:
省,日活总数
省,市,日活总数
手机型号,日活总数
省,手机型号,日活总数
……
如果上述维度分析需求,都逐个开发计算sql(逐个去group by聚合),工作繁冗!
那么,如何解决这个问题呢?

关键要点:

  1. 创建一个统一的目标维度分析聚合结果表,这个表应该包含所有的维度字段
  2. 利用hive的高阶聚合函数,在一个sql中,即可计算出所有可能的维度组合

3.3.2Cube表模型
在这里插入图片描述

这种表,在业内通常被称之为: cube (多维数据立方体)

  • 一个小问题:如果我要从上面的表中,获取到 各省份日活数,如何获取?
SELECT
province,
dau_cnt
FROM cube
WHERE province is not null  and coalesce(city,district,devicetype,osname,....) is null
;
  • 另一个小概念:维度的基数

上述表的行数很大;
比如按**(省、市、区、手机型号、app版本、下载渠道、小时段)维度组合计算日活数,结果行数有: 省维度的基数 * 市维度的基数 * 区维度的基数 * ……

基数: 就是某个维度字段的去重值个数!

3.3.3高阶聚合函数
基础写法:

INSERT INTO TABLE cube
SELECT
province,
city,
district,
null as device_type,
null as os_name,
null as app_version,
null as release_channel,
null as hour_segement,
dount(distinct guid) as dau_cnt
FROM  t_src
GROUP BY province,city,district

这种写法,要完成上面的数据立方体的完整计算,需要些2的8次方个sql
显然要命!

改用hive的高阶聚合函数,则一个sql搞定!别人加班,我陪女友

  • With cube函数
INSERT INTO TABLE cube
SELECT
province,
city,
district,
device_type,
os_name,
app_version,
release_channel,
hour_segement,
count(distinct guid) as dau_cnt
FROM  t_src
GROUP BY
province,
city,
district,
device_type,
os_name,
app_version,
release_channel,
house_segment
WITH CUBE
;
  • Grouping sets函数

由用户自己决定需要哪些维度组合

INSERT INTO TABLE cube
SELECT
province,
city,
district,
device_type,
os_name,
app_version,
release_channel,
hour_segement,
count(distinct guid) as dau_cnt
FROM  t_src
GROUP BY 
province,
city,
district,
device_type,
os_name,
app_version,
release_channel,
house_segment
GROUPING SETS(
(),
(province),
(province,city),
(province,city,district),
(device_type),(province,device_type)
)
;
  • with rollup函数

主要针对层级维度的组合处理

INSERT INTO TABLE cube
SELECT
province,
city,
district,
device_type,
os_name,
app_version,
release_channel,
hour_segement,
count(distinct guid) as dau_cnt
FROM  t_src
GROUP BY province,city,district
WITH ROLLUP
;

3.4流量用户聚合表(日活表)

在这里插入图片描述

3.5流量基础指标多维报表

3.5.1需求

  • 度量值

pv数
uv数
session数
访问时长
回头客数
跳出次数(只访问了一个页面就结束的会话)
跳出人数

  • 维度

地域维度
时段维度
手机型号维度
操作系统维度
入口页面维度
跳出页面维度
新老属性维度

3.5.2模型设计
目标表模型:
在这里插入图片描述

3.6利用bitmap思想实现distinct的层级聚合

用户聚合表

"1,江苏省,南通市,下关区",
"1,江苏省,南通市,下关区",
"2,江苏省,南通市,下关区",
"2,江苏省,南通市,白领区",
"3,江苏省,南通市,白领区",
"3,江苏省,南通市,富豪区",
"1,江苏省,苏州市,园林区",
"1,江苏省,苏州市,园林区",
"4,江苏省,苏州市,虎跳区"


base cuboid
省,   市,    区,   人数(bitmap)
江苏省,南通市,下关区, [1,1,0,0]
江苏省,南通市,白领区, [0,1,1,0]  
江苏省,南通市,富豪区, [0,0,1,0]  
江苏省,苏州市,园林区, [1,0,0,0]  
江苏省,苏州市,虎跳区, [0,0,0,1]  



省,    市,    人数(bitmap)
江苏省,南通市,  [1,1,1,0]   
江苏省,苏州市,  [1,0,0,1]


省,      人数(bitmap)
江苏省,   [1,1,1,1]

逐级聚合(去重聚合计算)

在具体实现上,我们项目中采用了一个第三方的bitmap工具包:RoaringBitmap
然后为其开发了一系列的工具:

  • array[Int] -> bitmap
  • bitmap序列化
  • bitmap反序列化
  • bitmap的UDAF实现分组聚合or运算
  • bitmap求基数的UDF

3.7可以支撑的报表分析举例

比如,各类用户分布分析
新老访客占比
在这里插入图片描述

访客app版本分布
在这里插入图片描述

访客地域分布
在这里插入图片描述

访客手机型号分布
在这里插入图片描述

4事件概况分布分析

在这里插入图片描述

首先做一个中间层的表(dws.event_overview_d),从DWD事件明细表中计算即可

日期,GUID,事件名称,发生次数

然后,查询分析师想看的报表:

日期,事件,发生总人数,发生总次数,1-10次的人数,10-20次的人数,20-30次的人数,30+人数

5事件多维分析

5.1交互事件主题

在dws层,我们的各种终端渠道的数据,就可以汇总到一起

| share    | {"pageId":"528","productId":"960","title":"mzH Zlm djr","url":"tFA/XSB","shareMethod":"微博"} |
| share    | {"pageId":"310","productId":"272","title":"KpB LEt TMI","url":"jro/RzJ","shareMethod":"微博"} |
| share    | {"pageId":"388","productId":"885","title":"Hsq Pcx bCi","url":"FNK/AHX","shareMethod":"微博"} |
  • 分享事件,主题明细表
    在这里插入图片描述

  • 点赞事件,主题明细表
    在这里插入图片描述

  • 收藏事件,主题明细表
    在这里插入图片描述

可以支撑的报表分析举例:
各栏目x事件发生次数
各栏目x事件发生人数

各item、各品类,各分享平台的发生次数
各item各分享平台发生人数

日点赞item排行榜(次数、人数)
日收藏item排行榜(次数、人数)

5.2广告运营位曝光点击分析主题

广告运营位:页面上放广告的位置;比如(首页中心轮播图,首页中心轮播图侧边栏……)
当你打开一个页面,划到页面上的某一屏,这一屏上的运营位上的埋点代码,就会发送运营位广告曝光事件,如果被点击,还会发送运营位广告点击事件

在这里插入图片描述

可以支撑的报表分析举例:

X运营广告位日曝光量
X运营广告位曝光量分时趋势分析
X运营广告位点击量
X运营广告位点击量分时趋势分析

X广告系列曝光量分时趋势分析
X广告系列点击量分时趋势分析
……

5.3站外投放广告分析主题

站外广告投放效果分析的数据跟踪原理:
在这里插入图片描述
在这里插入图片描述

可以支撑的报表分析举例:
渠道投放引流效果分析
渠道拉新分析
各渠道投放引流量分析
各渠道投放引流量拉新数量分析
……

5.4优惠券分析主题

在这里插入图片描述

可以支撑的报表分析举例:
优惠券领取次数人数分析
优惠券分时段领取趋势变化分析
……

5.5红包分析主题

在这里插入图片描述
在这里插入图片描述

红包领取次数、人数分析
红包分时段领取趋势变化分析

6用户活跃度分析主题 [方案一]

6.1中间表设计:连续活跃区间记录

  • 用户连续活跃区间记录(类似拉链表)

在这里插入图片描述

这个表的核心思想: 记录着每个人的每天活跃信息,但是又不用每天都存储一条记录!

6.2可以支撑的报表分析举例

  • 最近一个月内,有过连续活跃10+天的人
  • 最近一个月内,每个用户的平均活跃天数
  • 最近一个月内,连续活跃[1-10)天的人数,[10-20)天的人数,[20+ 天的人数
  • 任意指定的一段日期范围内,连续活跃5+天的人(比如,12-01,12-02,12-03连续3天活跃的人)
  • 最近30天内,沉默天数超过3的有多少人,超过5天有多少人
计算日期			月份		10天内人数		20天内人数	30天内人数
2020-10-20		10	     100000				8000		0
2020-10-21		10	     100020				8020		100
CREATE TABLE ads17.app_useract_stat_m(
calc_date          string,
month             string,
continuous_5days   int,   -- 本月内连续活跃>=5天的人数
continuous_7days   int,   -- 本月内连续活跃>=7天的人数
continuous_14days  int,   -- 本月内连续活跃>=14天的人数
continuous_20days  int,
continuous_30days  int
)
STORED AS  PARQUET
;
-- 计算 --
WITH tmp AS (
SELECT
  guid,
max(datediff(if(rng_end='9999-12-31','2020-10-07',rng_end),if(rng_start<'2020-10-01','2020-10-01',rng_start))+1) as max_continuous_days
FROM dws17.app_useract_range
WHERE dt='2020-10-07' AND rng_end >= '2020-10-01'
GROUP BY guid
)

/*
+---------------+------------------+
|     guid        | continuous_days   |
+---------------+------------------+
| 0TaMafscth6X  | 1                   |
| 1ANCwzVmNPZo  | 1                   |
| 1hyVlok7H49P  | 5                   |
| 1iCCizS18Us0  | 1                   |
| 1kFxP0IfmhSf  | 6                   |
| 1ly5nTS29obZ  | 1                 |
| 2KiHc1ur1hEG  | 1                 |
| 2MSQj5R4ITn3  | 1                 |
| 2OOMY1MjfK89  | 10                |
| 2Q5lMJtXYuQX  | 25                |
+---------------+------------------+
*/

INSERT INTO TABLE ads17.app_useract_stat_m

SELECT
'2020-10-07'								as calc_date,
month('2020-10-07')						as month,
count(if(max_continuous_days>=5,1,null))	as continuous_5days  ,   -- 本月内连续活跃>=5天的人数
count(if(max_continuous_days>=7,1,null))	as continuous_7days  ,   -- 本月内连续活跃>=7天的人数
count(if(max_continuous_days>=14,1,null))	as continuous_14days ,   -- 本月内连续活跃>=14天的人数
count(if(max_continuous_days>=20,1,null))	as continuous_20days ,
count(if(max_continuous_days>=30,1,null))	as continuous_30days 
FROM tmp
;


  • 最近一周内,…
  • 最近一个月内,最大沉默天数超10天的,20天的,30天的人 …

6.3DWS层连续活跃区间表开发

  • 核心计算逻辑
    在这里插入图片描述

  • 代码开发

6.4扩展:加上维度分析需求呢?

在这里插入图片描述

连续活跃区间记录表中,已经丢失了用户的行为详细数据,已经获取不到用户的相关维度属性;
直接通过该表,无法得出 “维度分析”需求的结果;

可以按如下方案设计:

在全局的层面上的,为所有用户维护一张“维度信息表”

GUID,   省   ,市    ,区  ,设备型号 , 首访日期, 年龄, 性别,  会员等级



我所要的维度字段值全在一张表中,在统计分析时,中心表 只要关联 一级  维表,即可得到所有维度字段

在这里插入图片描述
星型模型

这张维表,也可以做成如下结构:

①用户属性表:
Guid ,   地域码,  设备型号码,  会员等级id
G01     001010    dv101903        2


②设备信息维表:
设备型号码   设备型号名称   操作系统   品牌名称   
dv101903        小米6plus     android     小米
dv101904        红米note8     android     红米


③会员等级维表
等级id     等级名称   
1          白银会员
2          黄金会员
3          钻石会员

④地域信息维表
地域码     省       市        区
001010   广东省   佛山市    富人区

在这里插入图片描述

                                   雪花模型

上述两种模型,都属于“维度建模”思想!!

如果,维表中的数据,很少发生变化,则使用“星型模型”更方便(join 少)
如果,维表中的数据,变化比较频繁,则使用“雪花模型”更恰当,因为雪花模型中的维表更符合三范式原则,更新维护更方便灵活!

7用户活跃度分析主题 [方案二]

7.1概述

第3章中的模型设计方案,好处很明显:

  • 可以很方便地进行任意指定日期范围内的用户活跃分析
  • 从该表进行各种用户活跃报表统计分析都十分方便和快捷

弊端也有:不够高级!

本章提供另一种更“高级”的方案:

借鉴bitmap数据结构的思想,来实现用户活跃分析的中间表模型

7.2bitmap思想的中间层

在这里插入图片描述

表中的bit数组字段:

  • 脚标,代表距“now day”的天数,比如,

第1个bit,就是距当天0日前;
第2个bit,就是距当天1日前;
……

  • value值,代表用户在该脚标所指示日期上的活跃状态,0表示没有活跃,1表示有活跃
该表的本质: 记录了最近N天(30)内,每个用户的每天的活跃状态;
形式简单直观;存储效率高!

7.3中间层bitmap表开发

1.初始化历史活跃数据成为bit串
比如,今天是2020-12-19,需要初始化 (2020-12-18)-30 ==》 2020-12-18 的bit串
得到形如: g01 --> 100101011010111101101001010110

核心计算表达式:sum(cast(pow(2,datediff('2020-11-18',dt)
reverse(lpad( cast(bin(sum(cast(pow(2,datediff('2020-11-18',dt)) as bigint))) as string) ,31,'0' )) 

2.bit串的每日滚动更新计算

前日: g01 --> 100101011010111101101001010110
今天: g01活跃了
今天的结果:g01 --> 1100101011010111101101001010110

T+1日,用户没活跃,则如下更新:
select bin(1073741823 & cast(conv('111111111111111111111111111111',2,10)*2 as int));

T+1日,用户活跃,则如下更新:
select bin(1073741823 & cast(conv('111111111111111111111111111111',2,10)*2+1 as int));

8新用户留存分析主题

8.1需求概念

留存:通常指在X日发生某行为A后,在Y日后又发生了行为B
比如,新用户留存,则指X日发生行为A(首次到访)后,在Y日又发生了B(活跃/到访)行为

8.2查询需求

查询任意指定时间窗口内的,任意一天的新用户的次日、2日、3日、……留存

如下,为一个典型的“新用户留存”分析表
在这里插入图片描述

计算要点:

  • 每日滚动计算
  • 每天计算“x日->计算日” 的留存数即可

8.3中间服务表开发(聚合表)

上述横表形式的报表不方便直接计算,可设计如下纵表(竖表)作为中间表

  • dws.retention_newuser_active
    在这里插入图片描述

  • 代码开发

9漏斗模型分析主题

  • 漏斗模型概念:

漏斗模型,是用来分析业务转化率的!

分析师(需求方)定义的一种业务路径,用户沿着这个路径上的各个步骤,不断走向业务目标;
路径上的各个步骤,人数通常是会逐步递减,形如一个漏斗;
把这种分析形象地称呼为:漏斗模型分析;

在这里插入图片描述

比如,分析师定义了一个业务路径:搜购

步骤1: 搜索(搜索词为:手机)
步骤2: 点击了一个搜索结果中的商品
步骤3: 将搜索结果中的商品添加到了购物车
步骤4: 提交订单
步骤5: 支付订单

比如,分析师定义了一个业务路径:秒购

步骤1: 点击了秒杀运营位广告
步骤2: 点击了广告落地页中的促销商品
步骤3: 订阅了这个商品的秒杀通知

dws.app_ld_compstep
在这里插入图片描述

可以支撑的报表分析举例:

  • 搜索购买

–搜索
–点击详情
–添加购物车
–提交订单
–支付订单

  • 收藏购买

–收藏商品
–添加购物车
–提交订单
–支付订单

10事件归因分析

在做一些运营活动,广告投放后,都需要去评估活动或者广告的效应;
我们的销量、拉新等业务目标,在广告投放或者运营活动组织后,有了明显的提升,但是这些提升是否是因为广告、运营活动导致的,需要有数据支撑!
这些数据分析,就属于 事件归因分析 的范畴!

而归因分析,又是一件非常复杂的运算;

有如下计算策略(模型):

  • 首次触点归因:待归因事件中,最先发生的事,被认为是导致业务结果的唯一因素
  • 末次触点归因:待归因事件中,最近发生的事,被认为是导致业务结果的唯一因素
  • 线性归因:待归因事件中,每一个事件都被认为对业务结果产生了影响,影响力平均分摊
  • 位置归因:定义一个规则,比如最早、最晚事件占40%影响力,中间事件平摊影响力
  • 时间衰减归因:越晚发生的待归因事件,对业务结果的影响力越大
    在这里插入图片描述

11事件间隔分析

在这里插入图片描述

12用户行为画像

12.1用户活跃概况属性标签

(近30日)
在这里插入图片描述

12.2用户交互事件属性标签

在这里插入图片描述

计算方法:
首先,从事件明细表中,按照 用户+事件 分组,count出事件的次数,得到如下结果

g01,dz,5
g01,sc,10
g01,zf,20
g01,hp,10
g01,cp,8

然后,将上面的竖表,转成横表(利用collect_list和str_to_map)

with tmp as (
select
guid,
str_to_map(concat_ws(',',collect_list(concat_ws(':',eventid,cnt))),',',':') as mp
from (
  select
   guid,
   eventid,
   count(1) as cnt
  from  明细表
  group by guid,eventid
) o
group by guid

然后在这个结果上,去按照目标表的字段顺序取值即可:

select
guid,
mp['点赞'] as 点赞,
mp['收藏'] as 收藏,
mp['转发'] as 转发,
mp['分享'] as 分享,
……
from tmp

12.3用户购物事件属性标签

在这里插入图片描述

12.4用户运营位事件属性标签

在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据仓库(Data Warehouse)简称DW或DWH,是数据库的一种概念上的升级,可以说是为满足新需求设计的一种新数据库,而这个数据库是需容纳更多的数据,更加庞大的数据集,从逻辑上讲数据仓库和数据库是没有什么区别的。为企业所有级别的决策制定过程,提供所有类型数据支撑的战略集合,主要是用于数据挖掘和数据分析,以建立数据沙盘为基础,为消灭消息孤岛和支持决策为目的而创建的。 数据仓库的应用 1.数据分析、数据挖掘、人工智能、机器学习、风险控制、无人驾驶。 2.数据化运营、精准运营。 3.广告精准、智能投放。 随着我们从IT时代步入DT时代,数据积累量也与日俱增,同时伴随着互联网的发展,越来越多的应用场景产生,传统的数据处理、存储方式已经不能满足日益增长的需求。而互联网行业相比传统行业对新生事物的接受度更高、应用场景更复杂, 因此基于大数据构建的数据仓库先在互联网行业得到了尝试。 高性能高扩展的亿级电商全端实时数据仓库全实现(PC、移动、小程序) ,以热门的互联网电商实际业务应用场景为案例讲解,对电商数据仓库的常见实战指标以及难点实战指标进行了详尽讲解,具体指标包括:每日、月大盘收入报表、高付费用户分析报表、流量多方位分析、营销多方位分析、实时排行榜指标分析、用户主题分析、店铺主题时间区间分析等,数据分析涵盖全端(PC、移动、小程序)应用,与互联网企业大数据技术同步,让大家能够真正学到大数据企业级数据仓库的实战经验。本课程凝聚讲师多年一线大数据企业实际项目经验,大数据企业在职架构师亲自授课,全程实操代码,带你体验真实的大数据开发过程,代码现场调试。通过本课程的学习再加上老师的答疑,你完全可以将本案例直接应用于企业。本套课程可以满足世面上绝大多数大数据企业级的数据仓库业务场景,全部代码可以直接部署企业,支撑亿级并发数据分析。该项目代码也是具有极高的商业价值的,大家可以根据自己的业务进行修改,便可以使用。本课程包含的技术:  开发工具为:IDEA、WebStorm Flink1.9.0 Greenplum5.0.0 Hadoop2.6.0 Hbase1.0.0 Kafka2.1.0 Hive1.1.0 HDFS、MapReduce Redis、Flume Sqoop、Zookeeper MyBatis、EhCache SpringBoot2.0.2.RELEASE SpringCloud Finchley.RELEASE Binlog、Canal MySQL、MyCat Vue.js、Nodejs Highcharts课程亮点: 1.与企业对接、真实工业界产品  2.支持海量数据的分析 3.支持全端实时数据分析 4.通用数据仓库分层解决方案 5.数据库实时同步解决方案 6.主流微服务后端系统 7.电商数据仓库实战指标 8.实时加离线多方位分析 9.互联网大数据企业热门技术栈 10.分布式数据库存储解决方案 11.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS 12.大数据热门技术Flink新版本13.集成SpringCloud实现统一整合方案 14.全程代码实操,提供全部代码和资料 15.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码企业直接复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
课程简介:  本项目课程是一门极具综合性和完整性的大型项目课程;课程项目的业务背景源自各类互联网公司对海量用户浏览行为数据和业务数据分析的需求及企业数据管理、数据运营需求。 本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级大型数据运营系统。  拒绝demo,拒绝宏观抽象,拒绝只讲不练,本课程高度揉和理论与实战,并兼顾各层次的学员,真正从0开始,循序渐进,每一个步骤每一个环节,都会带领学员从需求分析开始,到逻辑设计,最后落实到每一行代码,所有流程都采用企业级解决方案,并手把手带领学员一一实现,拒绝复制粘贴,拒绝demo化的实现。并且会穿插大量的原创图解,来帮助学员理解复杂逻辑,掌握关键流程,熟悉核心架构。   跟随项目课程,历经接近100+小时的时间,从需求分析开始,到数据埋点采集,到预处理程序代码编写,到数仓体系搭建......逐渐展开整个项目的宏大视图,构建起整个项目的摩天大厦。  由于本课程不光讲解项目的实现,还会在实现过程中反复揉和各种技术细节,各种设计思想,各种最佳实践思维,学完本项目并勤于实践的话,学员的收获将远远超越一个项目的具体实现,更能对大型数据系统开发产生深刻体悟,对很多技术的应用将感觉豁然开朗,并带来融会贯通能力的巨大飞跃。当然,最直接的收获是,学完本课程,你将很容易就拿到大数据数仓建设或用户画像建设等岗位的OFFER课程模块: 1. 数据采集:涉及到埋点日志flume采集系统,sqoop业务数据抽取系统等; 2. 数据预处理:涉及到各类字典数据构建,复杂结构数据清洗解析,数据集成,数据修正,以及多渠道数据的用户身份标识打通:ID-MAPPING等;3. 数据仓库:涉及到hive数仓基础设施搭建,数仓分层体系设计,数仓分析主题设计,多维分析实现,ETL任务脚本开发,ETL任务调度,数据生命周期管理等;4. 数据治理:涉及数据资产查询管理,数据质量监控管理,atlas元数据管理系统,atlas数据血缘管理等;5. 用户画像系统:涉及画像标签体系设计,标签体系层级关系设计,各类标签计算实现,兴趣类标签的衰减合并,模型标签的机器学习算法应用及特征提取、模型训练等;6. OLAP即席分析平台:涉及OLAP平台的整体架构设计,技术选型,底层存储实现,Presto查询引擎搭建,数据服务接口开发等;7. 数据服务:涉及数据服务的整体设计理念,架构搭建,各类数据访问需求的restapi开发等;课程所涉及的技术: 整个项目课程中,将涉及到一个大型数据系统中所用到的几乎所有主要技术,具体来说,包含但不限于如下技术组件:l Hadoopl Hivel HBasel SparkCore /SparkSQL/ Spark GRAPHX / Spark Mllibl Sqoopl Azkabanl Flumel lasal Kafkal Zookeeperl Solrl Prestop
好的,下面是数据处理的流程: 1. log文件采集:使用Flume采集服务器的日志文件,Flume可以通过配置文件来实现日志文件的读取和传输。 2. Flume:将采集到的日志数据发送到HDFS中。Flume提供了多种数据发送方式,包括本地文件、网络传输等。 3. HDFS:Hadoop分布式文件系统,是一个分布式文件存储系统,用于存储大量数据。Flume将采集到的日志数据发送到HDFS中,以便进一步处理。 4. Hive(ODS):使用Hive对HDFS中的数据进行处理,将原始数据存储到ODS(原始数据层)中。Hive是一个数据仓库工具,可以将结构化数据映射到HDFS中,并提供SQL查询接口。 5. DWD:使用Spark对ODS中的数据进行清洗和加工,生成DWD(数据仓库明细层)中的数据。Spark是一个快速的分布式计算框架,可以处理大规模数据。 6. DWS:使用Spark对DWD中的数据进行聚合和计算,生成DWS(数据仓库汇总层)中的数据。DWS中的数据是可读性更强的汇总数据,用于上层应用的数据分析。 7. ADS:使用Spark对DWS中的数据进行分析和建模,生成ADS(应用数据层)中的数据。ADS中的数据是已经经过分析和建模的数据,可以直接供上层应用使用。 8. 上层应用:将ADS中的数据提供给上层应用,供应用进行数据展示和分析。 以上就是数据处理的流程,其中Flume、HDFS和Spark是Hadoop生态系统中的重要组件,它们提供了高效、可扩展的分布式计算和存储方案。而Hive则提供了SQL查询接口,方便数据分析人员进行数据查询和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值