商品排行sqoop导出数据到mysql

#!/bin/sh 

if [ "$1" = "" ]; then
today=`date +%Y-%m-%d`
yesterday=`date +%Y-%m-%d -d '-1 days'`

else
yesterday=`date -d "$1 +0 day" +%Y-%m-%d`
today=`date -d "$yesterday +1 day" +%Y-%m-%d`
fi

echo $yesterday------------------$today

hive -f /var/lib/hadoop-hdfs/kylin_job/metadata/ranking_list_create.sql

hiveSql="
use metadata;
insert overwrite table ranking_list partition(dt='$yesterday')
select a.mp_id,a.mp_name,b.lid1,b.lname1,b.lid2,b.lname2,
b.lid3,b.lname3,a.salemoney,a.uv,a.salenum,'$yesterday'
from 
(select mp_id,mp_name,
sum(salemoney) as salemoney, 
sum(uv) as uv,
sum(salenum) as salenum from rpt_lyf.tracker_day_channel_mpid
where dt='$yesterday'
group by mp_id,mp_name
) a 
join sourcedata.category_tree_node_merchant_product c 
on a.mp_id=c.merchant_product_id
join metadata.category_level b 
on c.fore_category_tree_node_id=b.id and b.category_tree_id=1
"
hive -e "$hiveSql"

DRIVER=com.mysql.jdbc.Driver
#USERNAME=tester
#PASSWORD=tester
#CONNECT="jdbc:mysql://10.0.4.139:3306/front?useUnicode=true&characterEncoding=utf-8&autoReconnect=true"
USERNAME=lac_user
PASSWORD=abc@WSX
CONNECT="jdbc:mysql://10.3.2.104:3306/lac?useUnicode=true&characterEncoding=utf-8"
TABLE=ranking_list
COLUMNS=merchant_product_id,merchant_product_name,category_id_one,category_name_one,category_id_two,category_name_two,category_id_three,category_name_three,trans_amount,visitors,sales,dt
DIR=/data/hdfs/metadata/ranking_list/dt=$yesterday

sqoop eval \
--driver  $DRIVER \
--connect $CONNECT \
--username $USERNAME  \
--password $PASSWORD \
--query "DELETE FROM $TABLE WHERE dt='$yesterday';"


/bin/sqoop export \
--driver  $DRIVER \
--connect $CONNECT \
--username $USERNAME  \
--password $PASSWORD \
--table $TABLE \
--export-dir $DIR \
--fields-terminated-by '\001' \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
--columns $COLUMNS \
--jar-file /tmp/sqoop-hdfs/compile/ranking_list/ranking_list.jar \
--class-name ranking_list \
-m 1 \

建表语句

use metadata;
#drop table ranking_list;
CREATE EXTERNAL TABLE if not exists ranking_list(
mp_id bigint,
mp_name string,
lid1 bigint,
lname1 string,
lid2 bigint,
lname2 string,
lid3 bigint,
lname3 string,
salemoney decimal(18,2),
uv bigint,
salenum bigint,
ct string
)partitioned by(dt string)
row format delimited
fields terminated by '\001'
location 'hdfs://nameservice1/data/hdfs/metadata/ranking_list'

猜你喜欢

转载自blog.csdn.net/jason_xiaojie_liu/article/details/81206343
今日推荐