(8)使用者行為資料寬表匯入指令碼8

2021-10-04 21:03:14 字數 3314 閱讀 4038

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

i​nf

ooiw

here

date

f​or

mat(

oi.c

reat

et​i

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

t​im

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

f​or

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...