3.5.3使用者行為資料寬表匯入指令碼
1)在/home/atguigu/bin目錄下建立指令碼dws_db_wide.sh
[atguigu@hadoop102 bin]$ vim dws_db_wide.sh
在指令碼中填寫如下內容
#!/bin/bash
if [ -n 「$1」 ] ;then
do_date=$1
else
do_date=date -d "-1 day" +%f
fisql="
with
tmp_order as
(select
user_id,
sum(oi.total_amount) order_amount,
count() order_count
from "app
".dw
dord
erin
fooi
wher
edat
efor
mat(
oi.c
reat
etim
e,′y
yyy−
mm−d
d′)=
′ap
p".d
wdo
rder
inf
ooiw
here
date
for
mat(
oi.c
reat
eti
me,′
yyyy
−mm−
dd′)
=′do_date』
group by user_id
) ,tmp_payment as
(select
user_id,
sum(pi.total_amount) payment_amount,
count() payment_count
from "app
".dw
dpay
ment
info
piwh
ered
atef
orma
t(pi
.pay
ment
time
,′yy
yy−m
m−dd
′)=′
app".d
wdp
ayme
nti
nfop
iwhe
reda
tef
orma
t(pi
.pay
ment
tim
e,′y
yyy−
mm−d
d′)=
′do_date』
group by user_id
),tmp_comment as
(select
user_id,
count(*) comment_count
from "app
".dw
dcom
ment
logc
wher
edat
efor
mat(
c.dt
,′yy
yy−m
m−dd
′)=′
app".d
wdc
omme
ntl
ogcw
here
date
for
mat(
c.dt
,′yy
yy−m
m−dd
′)=′
do_date』
group by user_id
)insert overwrite table "app
".dw
suse
ract
ionp
arti
tion
(dt=
′ap
p".d
wsu
sera
cti
onpa
rtit
ion(
dt=′
do_date』)
select
user_actions.user_id,
sum(user_actions.order_count),
sum(user_actions.order_amount),
sum(user_actions.payment_count),
sum(user_actions.payment_amount),
sum(user_actions.comment_count)
from
(select
user_id,
order_count,
order_amount,
0 payment_count,
0 payment_amount,
0 comment_count
from tmp_order
union all
select
user_id,
0 order_count,
0 order_amount,
payment_count,
payment_amount,
0from tmp_payment
union all
select
user_id,
0 order_count,
0 order_amount,
0 payment_count,
0 payment_amount,
comment_count
from tmp_comment
) user_actions
group by user_id;"hiv
e−e"
hive -e "
hive−e
"sql"
2)增加指令碼執行許可權
[atguigu@hadoop102 bin]$ chmod 777 dws_db_wide.sh
3)執行指令碼匯入資料
[atguigu@hadoop102 bin]$dws_db_wide.sh 2019-02-11
4)檢視匯入資料
hive (gmall)>
select * from dws_user_action where dt=『2019-02-11』 limit 2;
資料倉儲 DWS層之使用者行為寬表
為什麼需要使用者行為寬表?把每個使用者單日的行為聚合起來組成一張多列寬表,以便之後關聯使用者維度資訊後,進行不同角度的統計分析。建立使用者行為寬表 drop table ifexists dws user action create external table dws user action us...
mysql latin1 utf8資料匯入的問題
2013年6月28日更新 寫了個指令碼去自動化的轉資料庫並匯入 正在匯出資料庫表.18 匯出資料庫表,這裡資料表需要自己先建立好 19 mysqldump default character set latin1 no create info u db user p db pass db tmp d...
Hive 8 資料匯入hive的多種方式
load data local inpath filepath overwrite into table tablename partition partcol1 val1,注意 1 local代表本地 2 overwrite代表覆蓋,如果不加,就是追加 3 分割槽表載入,特殊性 partition...