四.搭建数据仓库
数仓搭建分为
Ods(数据运营层)数据原始层,最接近数据源中数据的一层
Dwd(数据仓库层)从ODS获得数据建立数据模型
DWB:data warehouse base 数据基础层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。
Dws(服务数据层)整合汇总成分析某一个主题域的服务数据,一般是宽表
Ads(数据服务层)该层主要是提供数据产品和数据分析使用的数据,宽表一般就放在这里
写两个脚本和一个udf函数
(1)创建编辑web_log_import.sh 脚本
文件内容:#!/bin/ bash
HQL ="
CREATE DATAbase IF NOТ EXISTS web _ log;
USE web _ log;
CREATE DATAbase IF NOТ EXISTS web _ log(
path string
)
PARТITIonED BY ( day string,hour string )
ROW FORMAT DELIМITED
FIELDS TERMINATED BY ‘t’;
LOAD DATA INPATH ‘/ web /log /etl/$1/$2’ INТO TABLE ads_web_log PARТITIonED ( day =$1’,hour=‘
2
′
)
;
"
h
i
v
e
−
e
"
2'); " hive -e "
2′);"hive−e"НQL”
(2)创建编辑web_log analysis.sh 脚本
文件内容如下:
#!/bin/bash
HQL="
USE web_log;
DROp TABLE IF EXISTS dwd_web_log;
CREATE TABLE dwd_web_log AS
SELECT path, day, hour
FROM ods_web_log
WHERe day=’$1’ and hour='
2
′
;
A
D
D
J
A
R
/
h
o
m
e
/
h
a
d
o
o
p
/
w
e
b
l
o
g
/
U
D
F
G
e
t
S
h
o
p
.
j
a
r
;
C
R
E
A
T
E
T
E
M
P
O
R
A
R
Y
F
U
N
C
T
I
O
N
G
E
T
S
H
O
P
a
s
′
l
i
u
.
U
D
F
G
e
t
S
h
o
p
′
;
D
R
O
P
T
A
B
L
E
I
F
E
X
I
S
T
S
d
w
s
w
e
b
l
o
g
;
C
R
E
A
T
E
T
A
B
L
E
d
w
s
w
e
b
l
o
g
A
S
S
E
L
E
C
T
G
E
T
S
H
O
P
(
p
a
t
h
)
s
h
o
p
,
d
a
y
,
h
o
u
r
F
R
O
M
d
w
d
w
e
b
l
o
g
;
D
R
O
P
T
A
B
L
E
I
F
E
X
I
S
T
S
a
d
s
w
e
b
l
o
g
;
C
R
E
A
T
E
T
A
B
L
E
a
d
s
w
e
b
l
o
g
A
S
S
E
L
E
C
T
s
h
o
p
,
C
O
U
N
T
(
∗
)
c
o
u
n
t
,
d
a
y
,
h
o
u
r
,
D
E
N
S
E
R
A
N
K
(
)
O
V
E
R
(
O
R
D
E
R
B
Y
C
O
U
N
T
(
∗
)
D
E
S
C
)
r
a
n
k
F
R
O
M
d
w
s
w
e
b
l
o
g
g
r
o
u
p
b
y
s
h
o
p
,
d
a
y
,
h
o
u
r
;
"
h
i
v
e
−
e
"
2'; ADD JAR /home/hadoop/web_log/UDFGetShop.jar; CREATE TEMPORARY FUNCTION GET_SHOP as 'liu.UDFGetShop'; DROp TABLE IF EXISTS dws_web_log; CREATE TABLE dws_web_log AS SELECT GET_SHOP(path) shop, day, hour FROM dwd_web_log; DROp TABLE IF EXISTS ads_web_log; CREATE TABLE ads_web_log AS SELECT shop , COUNT(*) count , day , hour , DENSE_RANK() OVER(ORDER BY COUNT(*) DESC) rank FROM dws_web_log group by shop,day,hour; " hive -e "
2′;ADDJAR/home/hadoop/weblog/UDFGetShop.jar;CREATETEMPORARYFUNCTIONGETSHOPas′liu.UDFGetShop′;DROPTABLEIFEXISTSdwsweblog;CREATETABLEdwsweblogASSELECTGETSHOP(path)shop,day,hourFROMdwdweblog;DROPTABLEIFEXISTSadsweblog;CREATETABLEadsweblogASSELECTshop,COUNT(∗)count,day,hour,DENSERANK()OVER(ORDERBYCOUNT(∗)DESC)rankFROMdwswebloggroupbyshop,day,hour;"hive−e"HQL"
(3)编写UDF函数
(4)打包上传UDF架包上传到/home/hadoop/web_log
(5)执行脚本文件
执行web_log_import.sh 脚本
执行web_log analysis.sh 脚本
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)