1. 清空HDFS上所有的文件

hdfs dfs -rm -R /user
hdfs dfs -rm -R /tmp
hdfs dfs -rm -R /origin_data

2.移除掉duoduo_baobiao这个database

        然后把duoduo_baobiao 这个database里面的所有的表都建立好

Drop database duoduo_baobiao;
CREATE DATABASE duoduo_baobiao;
USE duoduo_baobiao;

#每月商品行为表
DROP TABLE IF EXISTS ads_sku_sales_top10; 
CREATE TABLE ads_sku_sales_top10
(
sku_id VARCHAR(255) COMMENT 'sku_id', 
favour_cnts BIGINT COMMENT '收藏次数',
cart_cnts BIGINT COMMENT '加购物车次数',
order_cnts BIGINT COMMENT '下单次数',
pay_cnts BIGINT COMMENT '支付次数'
) 
COMMENT '每月商品行为表' ;

#每月商品分类销量排行表
DROP TABLE IF EXISTS ads_sales_category_top_top10;
CREATE  TABLE ads_sales_category_top_top10
(
category3_name VARCHAR(255) COMMENT '三级分类名称',
cat_num  BIGINT   COMMENT  '分类商品销量'
)
COMMENT '每月商品分类销量排行表';

#每月商品品牌销售排行表
DROP TABLE IF EXISTS ads_sku_num_trademark_top10;
CREATE  TABLE ads_sku_num_trademark_top10
(tm_name VARCHAR(255) COMMENT '品牌名称',
total_num BIGINT COMMENT '销售数量'
)COMMENT '每月商品品牌销售排行表';

#每月省市下单金额排行表
DROP TABLE IF EXISTS ads_sku_amount_province_top10;
CREATE  TABLE ads_sku_amount_province_top10
(province_name VARCHAR(255) COMMENT '省市名称',
total_amount DECIMAL(16,2) COMMENT '下单金额'
)COMMENT '每月省市下单金额排行表';

#每月省市支付金额排行表
DROP TABLE IF EXISTS ads_sku_payamount_province_top10;
CREATE  TABLE ads_sku_payamount_province_top10
(province_name VARCHAR(255) COMMENT '省市名称',
total_payamount DECIMAL(16,2) COMMENT '支付金额'
)COMMENT '每月省市支付金额排行表';

#每月用户支付金额排行表
DROP TABLE IF EXISTS ads_user_payamount_top10;
CREATE  TABLE ads_user_payamount_top10
(user_name VARCHAR(255) COMMENT '用户名称',
total_payamount DECIMAL(16,2) COMMENT '下单金额'
)COMMENT '每月用户支付金额排行表';


#每月用户下单金额排行榜
DROP TABLE IF EXISTS ads_user_order_amount_top10; 
CREATE  TABLE ads_user_order_amount_top10
(
user_name VARCHAR(255) COMMENT '用户名', 
order_amount DECIMAL(20,2) COMMENT '下单金额' 
) 
COMMENT '每月用户下单金额排行榜' ;

#每月商品差评排行榜
DROP TABLE IF EXISTS ads_sku_badcomment_top10;
CREATE  TABLE ads_sku_badcomment_top10
(sku_name VARCHAR(255) COMMENT '商品sku名称',
 bad_cnt BIGINT COMMENT '差评数量'
)COMMENT '每月商品差评排行榜';

#每月商品好评排行榜
DROP TABLE IF EXISTS ads_sku_goodcomment_top10;
CREATE  TABLE ads_sku_goodcomment_top10
(sku_name VARCHAR(255) COMMENT '商品sku名称',
 good_cnt BIGINT COMMENT '好评数量'
)COMMENT '每月商品好评排行榜';

#每月用户给差评排行榜
DROP TABLE IF EXISTS ads_user_badcomment_top10;
CREATE  TABLE ads_user_badcomment_top10
(user_name VARCHAR(255) COMMENT '用户名称',
 bad_cnt BIGINT COMMENT '差评数量'
)COMMENT '每月用户给差评排行榜';

3.九个sh文件传到/duoduo文件夹中

4.赋予九个sh文件可执行权限

chmod 777 ./*sh

5.job文件构建

#step1.job
type=command
command=/duoduo/mysql_to_hdfs.sh first ${dt}

#step2.job
type=command
command=/duoduo/create.sh

#step3.job
type=command
dependencies=step1,step2
command=/duoduo/ods.sh first ${dt}

#step4.job
type=command
dependencies=step3
command=/duoduo/dwd.sh

#step5.job
type=command
dependencies=step4
command=/duoduo/ods_to_dwd.sh first ${dt}

#step6.job
type=command
dependencies=step5
command=/duoduo/dws.sh ${dt}

#step7.job
type=command
dependencies=step6
command=/duoduo/dwt.sh ${dt}

#step8.job
type=command
dependencies=step7
command=/duoduo/ads.sh

#step9.job
type=command
dependencies=step8
command=/duoduo/ads_to_mysql.sh

6.输入参数,运行脚本

输入的参数 dt     的值    2025-08-11  必须加单引号          ’2025-08-11‘

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐