概述
经过前一步的ads建模之后,接下来就是数据导出到mysql中。
建表
- 创建表结构
-- 进入数据库
use mall;
-- 创建gmv表
create table ads_gmv_sum_day
(
dt varchar(200) comment '统计日期 ' ,
gmv_count varchar(200) comment '每日gmv订单个数',
gmv_amount varchar(200) COMMENT '每日gmv订单总金额',
gmv_payment varchar(200) COMMENT '当日支付金额'
) COMMENT '每日GMV统计';
- 执行建表
export MYSQL_PWD=DBa2020*
mysql -uroot mall < /home/warehouse/sql/mysql_gmv_ddl.sql
脚本
- 在之前的sqoop_export.sh脚本上,加上ads_gmv_sum_day表选项,改成sqoop_gmv_export.sh
#!/bin/bash
db_name=mall
export_data() {
sqoop export \
--connect "jdbc:mysql://node02:3306/${db_name}?useUnicode=true&characterEncoding=utf-8" \
--username root \
--password DBa2020* \
--table $1 \
--num-mappers 1 \
--export-dir /warehouse/$db_name/ads/$1 \
--input-fields-terminated-by "\t" \
--update-key "tm_id,category1_id,stat_mn,stat_date" \
--update-mode allowinsert \
--input-null-string '\\N' \
--input-null-non-string '\\N'
}
case $1 in
"ads_sale_tm_category1_stat_mn")
export_data "ads_sale_tm_category1_stat_mn"
;;
"ads_gmv_sum_day")
export_data "ads_gmv_sum_day"
;;
"all")
export_data "ads_sale_tm_category1_stat_mn"
;;
esac
- 执行脚本
mysql> select * from ads_gmv_sum_day;
+------------+-----------+------------+-------------+
| dt | gmv_count | gmv_amount | gmv_payment |
+------------+-----------+------------+-------------+
| 2021-03-24 | 300 | 160700 | 80931 |
+------------+-----------+------------+-------------+