当前位置: 首页 > news >正文

如何做公司网站建设建设职业技术学院官网

如何做公司网站建设,建设职业技术学院官网,做外国购物网站需要交税吗,wordpress 增加js系列文章目录 线上问诊#xff1a;业务数据采集 线上问诊#xff1a;数仓数据同步 线上问诊#xff1a;数仓开发(一) 线上问诊#xff1a;数仓开发(二) 线上问诊#xff1a;数仓开发(三) 文章目录 系列文章目录前言一、ADS1.交易主题1.交易综合统计2.各医院交易统计3.各性…系列文章目录 线上问诊业务数据采集 线上问诊数仓数据同步 线上问诊数仓开发(一) 线上问诊数仓开发(二) 线上问诊数仓开发(三) 文章目录 系列文章目录前言一、ADS1.交易主题1.交易综合统计2.各医院交易统计3.各性别患者交易统计4.各年龄段患者交易统计 2.医生主题1.医生变动统计 3.用户主题1.用户变动统计 4.评价主题1.评价综合统计2.各医院评价统计5.数据装载脚本 一、报表数据导出1.MySQL建库建表1.创建数据库2.创建表 2.数据导出1.DataX配置文件生成脚本2.执行配置文件生成器3.编写每日导出脚本 总结 前言 这次我们继续进行数仓的开发应该能写完。 一、ADS 1.交易主题 1.交易综合统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_trade_stats (dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 统计周期: 最近1,7,30日,consultation_amount DECIMAL(16, 2) COMMENT 问诊金额,consultation_count BIGINT COMMENT 问诊次数,consultation_pay_suc_amount DECIMAL(16, 2) COMMENT 问诊支付成功金额,consultation_pay_suc_count BIGINT COMMENT 问诊支付成功次数,prescription_amount DECIMAL(16, 2) COMMENT 处方金额,prescription_count BIGINT COMMENT 处方次数,prescription_pay_suc_amount DECIMAL(16, 2) COMMENT 处方支付成功金额,prescription_pay_suc_count BIGINT COMMENT 处方支付成功次数 ) COMMENT 交易综合统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_trade_stats;2.各医院交易统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_hospital_trade_stats (dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 统计周期: 最近1,7,30日,hospital_id STRING COMMENT 医院ID,hospital_name STRING COMMENT 医院名称,consultation_amount DECIMAL(16, 2) COMMENT 问诊金额,consultation_count BIGINT COMMENT 问诊次数,consultation_pay_suc_amount DECIMAL(16, 2) COMMENT 问诊支付成功金额,consultation_pay_suc_count BIGINT COMMENT 问诊支付成功次数,prescription_amount DECIMAL(16, 2) COMMENT 处方金额,prescription_count BIGINT COMMENT 处方次数,prescription_pay_suc_amount DECIMAL(16, 2) COMMENT 处方支付成功金额,prescription_pay_suc_count BIGINT COMMENT 处方支付成功次数 ) COMMENT 各医院交易统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_hospital_trade_stats;3.各性别患者交易统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_gender_trade_stats (dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 统计周期: 最近1,7,30日,gender_code STRING COMMENT 患者性别编码,gender STRING COMMENT 患者性别,consultation_amount DECIMAL(16, 2) COMMENT 问诊金额,consultation_count BIGINT COMMENT 问诊次数,consultation_pay_suc_amount DECIMAL(16, 2) COMMENT 问诊支付成功金额,consultation_pay_suc_count BIGINT COMMENT 问诊支付成功次数,prescription_amount DECIMAL(16, 2) COMMENT 处方金额,prescription_count BIGINT COMMENT 处方次数,prescription_pay_suc_amount DECIMAL(16, 2) COMMENT 处方支付成功金额,prescription_pay_suc_count BIGINT COMMENT 处方支付成功次数 ) COMMENT 各性别患者交易统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_gender_trade_stats;4.各年龄段患者交易统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_age_group_trade_stats (dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 统计周期: 最近1,7,30日,age_group STRING COMMENT 患者年龄段,consultation_amount DECIMAL(16, 2) COMMENT 问诊金额,consultation_count BIGINT COMMENT 问诊次数,consultation_pay_suc_amount DECIMAL(16, 2) COMMENT 问诊支付成功金额,consultation_pay_suc_count BIGINT COMMENT 问诊支付成功次数,prescription_amount DECIMAL(16, 2) COMMENT 处方金额,prescription_count BIGINT COMMENT 处方次数,prescription_pay_suc_amount DECIMAL(16, 2) COMMENT 处方支付成功金额,prescription_pay_suc_count BIGINT COMMENT 处方支付成功次数 ) COMMENT 各年龄段患者交易统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_age_group_trade_stats;数据装载 2.医生主题 1.医生变动统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_doctor_change_stats(dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 统计周期: 最近1,7,30日,new_doctor_count BIGINT COMMENT 新增医生数,activated_doctor_count BIGINT COMMENT 激活医生数,active_doctor_count BIGINT COMMENT 活跃医生数 ) COMMENT 医生变动统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_doctor_change_stats;3.用户主题 1.用户变动统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_user_change_stats(dt STRING COMMENT 统计日期,recent_days BIGINT COMMENT 统计周期: 最近1,7,30日,new_user_count BIGINT COMMENT 新增用户数,new_patient_count BIGINT COMMENT 新增患者数 ) COMMENT 用户变动统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_user_change_stats;4.评价主题 1.评价综合统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_review_stats(dt STRING COMMENT 统计日期,review_user_count BIGINT COMMENT 评价人数,review_count BIGINT COMMENT 评价次数,good_review_rate DECIMAL(16,2) COMMENT 好评率 ) COMMENT 用户变动统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_review_stats;2.各医院评价统计 建表语句 CREATE EXTERNAL TABLE IF NOT EXISTS ads_hospital_review_stats(dt STRING COMMENT 统计日期,hospital_id STRING COMMENT 医院ID,hospital_name STRING COMMENT 医院名称,review_user_count BIGINT COMMENT 评价人数,review_count BIGINT COMMENT 评价次数,good_review_rate DECIMAL(16,2) COMMENT 好评率 ) COMMENT 各医院评价统计ROW FORMAT DELIMITED FIELDS TERMINATED BY \tLOCATION /warehouse/medical/ads/ads_hospital_review_stats;5.数据装载脚本 vim ~/bin/medical_dws_to_ads.sh #!/bin/bashAPPmedicalif [ -n $2 ] then do_date$2 else echo 请传入日期参数exit fiads_trade_stats insert overwrite table ${APP}.ads_trade_stats select dt,recent_days,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from ${APP}.ads_trade_stats union select $do_date dt,consul.recent_days,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from (select 1 recent_days,sum(consultation_amount) consultation_amount,sum(consultation_count) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_1dwhere dt $do_dateunionselect recent_days,sum(if(recent_days 7, consultation_amount_7d, consultation_amount_30d)) consultation_amount,sum(if(recent_days 7, consultation_count_7d, consultation_count_30d)) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days) consulleft join(select 1 recent_days,sum(consultation_pay_suc_amount) consultation_pay_suc_amount,sum(consultation_pay_suc_count) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_1dwhere dt $do_dateunionselect recent_days,sum(if(recent_days 7, consultation_pay_suc_amount_7d,consultation_pay_suc_amount_30d)) consultation_pay_suc_amount,sum(if(recent_days 7, consultation_pay_suc_count_7d,consultation_pay_suc_count_30d)) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days) consul_pay_sucon consul.recent_days consul_pay_suc.recent_daysleft join(select 1 recent_days,sum(prescription_amount) prescription_amount,sum(prescription_count) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_1dwhere dt $do_dateunionselect recent_days,sum(if(recent_days 7, prescription_amount_7d, prescription_amount_30d)) prescription_amount,sum(if(recent_days 7, prescription_count_7d, prescription_count_30d)) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days) prescriptionon consul.recent_days prescription.recent_daysleft join(select 1 recent_days,sum(prescription_pay_suc_amount) prescription_pay_suc_amount,sum(prescription_pay_suc_count) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_1dwhere dt $do_dateunionselect recent_days,sum(if(recent_days 7, prescription_pay_suc_amount_7d,prescription_pay_suc_amount_30d)) prescription_pay_suc_amount,sum(if(recent_days 7, prescription_pay_suc_count_7d,prescription_pay_suc_count_30d)) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days) prescription_pay_sucon consul.recent_days prescription_pay_suc.recent_days;ads_hospital_trade_stats insert overwrite table ${APP}.ads_hospital_trade_stats select dt,recent_days,hospital_id,hospital_name,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from ${APP}.ads_hospital_trade_stats union select $do_date dt,consul.recent_days,consul.hospital_id,consul.hospital_name,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from (select 1 recent_days,hospital_id,hospital_name,sum(consultation_amount) consultation_amount,sum(consultation_count) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_1dwhere dt $do_dategroup by hospital_id,hospital_nameunionselect recent_days,hospital_id,hospital_name,sum(if(recent_days 7, consultation_amount_7d, consultation_amount_30d)) consultation_amount,sum(if(recent_days 7, consultation_count_7d, consultation_count_30d)) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,hospital_id,hospital_name) consulleft join(select 1 recent_days,hospital_id,hospital_name,sum(consultation_pay_suc_amount) consultation_pay_suc_amount,sum(consultation_pay_suc_count) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_1dwhere dt $do_dategroup by hospital_id,hospital_nameunionselect recent_days,hospital_id,hospital_name,sum(if(recent_days 7, consultation_pay_suc_amount_7d,consultation_pay_suc_amount_30d)) consultation_pay_suc_amount,sum(if(recent_days 7, consultation_pay_suc_count_7d,consultation_pay_suc_count_30d)) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,hospital_id,hospital_name) consul_pay_sucon consul.recent_days consul_pay_suc.recent_daysand consul.hospital_id consul_pay_suc.hospital_idand consul.hospital_name consul_pay_suc.hospital_nameleft join(select 1 recent_days,hospital_id,hospital_name,sum(prescription_amount) prescription_amount,sum(prescription_count) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_1dwhere dt $do_dategroup by hospital_id,hospital_nameunionselect recent_days,hospital_id,hospital_name,sum(if(recent_days 7, prescription_amount_7d, prescription_amount_30d)) prescription_amount,sum(if(recent_days 7, prescription_count_7d, prescription_count_30d)) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,hospital_id,hospital_name) prescriptionon consul.recent_days prescription.recent_daysand consul.hospital_id prescription.hospital_idand consul.hospital_name prescription.hospital_nameleft join(select 1 recent_days,hospital_id,hospital_name,sum(prescription_pay_suc_amount) prescription_pay_suc_amount,sum(prescription_pay_suc_count) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_1dwhere dt $do_dategroup by hospital_id,hospital_nameunionselect recent_days,hospital_id,hospital_name,sum(if(recent_days 7, prescription_pay_suc_amount_7d,prescription_pay_suc_amount_30d)) prescription_pay_suc_amount,sum(if(recent_days 7, prescription_pay_suc_count_7d,prescription_pay_suc_count_30d)) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,hospital_id,hospital_name) prescription_pay_sucon consul.recent_days prescription_pay_suc.recent_daysand consul.hospital_id prescription_pay_suc.hospital_idand consul.hospital_name prescription_pay_suc.hospital_name;ads_gender_trade_stats insert overwrite table ${APP}.ads_gender_trade_stats select dt,recent_days,gender_code,gender,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from ${APP}.ads_gender_trade_stats union select $do_date dt,consul.recent_days,consul.gender_code,consul.gender,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from (select 1 recent_days,gender_code,gender,sum(consultation_amount) consultation_amount,sum(consultation_count) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_1dwhere dt $do_dategroup by gender_code,genderunionselect recent_days,gender_code,gender,sum(if(recent_days 7, consultation_amount_7d, consultation_amount_30d)) consultation_amount,sum(if(recent_days 7, consultation_count_7d, consultation_count_30d)) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,gender_code,gender) consulleft join(select 1 recent_days,gender_code,gender,sum(consultation_pay_suc_amount) consultation_pay_suc_amount,sum(consultation_pay_suc_count) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_1dwhere dt $do_dategroup by gender_code,genderunionselect recent_days,gender_code,gender,sum(if(recent_days 7, consultation_pay_suc_amount_7d,consultation_pay_suc_amount_30d)) consultation_pay_suc_amount,sum(if(recent_days 7, consultation_pay_suc_count_7d,consultation_pay_suc_count_30d)) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,gender_code,gender) consul_pay_sucon consul.recent_days consul_pay_suc.recent_daysand consul.gender_code consul_pay_suc.gender_codeand consul.gender consul_pay_suc.genderleft join(select 1 recent_days,gender_code,gender,sum(prescription_amount) prescription_amount,sum(prescription_count) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_1dwhere dt $do_dategroup by gender_code,genderunionselect recent_days,gender_code,gender,sum(if(recent_days 7, prescription_amount_7d, prescription_amount_30d)) prescription_amount,sum(if(recent_days 7, prescription_count_7d, prescription_count_30d)) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,gender_code,gender) prescriptionon consul.recent_days prescription.recent_daysand consul.gender_code prescription.gender_codeand consul.gender prescription.genderleft join(select 1 recent_days,gender_code,gender,sum(prescription_pay_suc_amount) prescription_pay_suc_amount,sum(prescription_pay_suc_count) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_1dwhere dt $do_dategroup by gender_code,genderunionselect recent_days,gender_code,gender,sum(if(recent_days 7, prescription_pay_suc_amount_7d,prescription_pay_suc_amount_30d)) prescription_pay_suc_amount,sum(if(recent_days 7, prescription_pay_suc_count_7d,prescription_pay_suc_count_30d)) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,gender_code,gender) prescription_pay_sucon consul.recent_days prescription_pay_suc.recent_daysand consul.gender_code prescription_pay_suc.gender_codeand consul.gender prescription_pay_suc.gender;ads_age_group_trade_stats insert overwrite table ${APP}.ads_age_group_trade_stats select dt,recent_days,age_group,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from ${APP}.ads_age_group_trade_stats union select $do_date dt,consul.recent_days,consul.age_group,consultation_amount,consultation_count,consultation_pay_suc_amount,consultation_pay_suc_count,prescription_amount,prescription_count,prescription_pay_suc_amount,prescription_pay_suc_count from (select 1 recent_days,age_group,sum(consultation_amount) consultation_amount,sum(consultation_count) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_1dwhere dt $do_dategroup by age_groupunionselect recent_days,age_group,sum(if(recent_days 7, consultation_amount_7d, consultation_amount_30d)) consultation_amount,sum(if(recent_days 7, consultation_count_7d, consultation_count_30d)) consultation_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,age_group) consulleft join(select 1 recent_days,age_group,sum(consultation_pay_suc_amount) consultation_pay_suc_amount,sum(consultation_pay_suc_count) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_1dwhere dt $do_dategroup by age_groupunionselect recent_days,age_group,sum(if(recent_days 7, consultation_pay_suc_amount_7d,consultation_pay_suc_amount_30d)) consultation_pay_suc_amount,sum(if(recent_days 7, consultation_pay_suc_count_7d,consultation_pay_suc_count_30d)) consultation_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_consultation_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,age_group) consul_pay_sucon consul.recent_days consul_pay_suc.recent_daysand consul.age_group consul_pay_suc.age_groupleft join(select 1 recent_days,age_group,sum(prescription_amount) prescription_amount,sum(prescription_count) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_1dwhere dt $do_dategroup by age_groupunionselect recent_days,age_group,sum(if(recent_days 7, prescription_amount_7d, prescription_amount_30d)) prescription_amount,sum(if(recent_days 7, prescription_count_7d, prescription_count_30d)) prescription_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,age_group) prescriptionon consul.recent_days prescription.recent_daysand consul.age_group prescription.age_groupleft join(select 1 recent_days,age_group,sum(prescription_pay_suc_amount) prescription_pay_suc_amount,sum(prescription_pay_suc_count) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_1dwhere dt $do_dategroup by age_groupunionselect recent_days,age_group,sum(if(recent_days 7, prescription_pay_suc_amount_7d,prescription_pay_suc_amount_30d)) prescription_pay_suc_amount,sum(if(recent_days 7, prescription_pay_suc_count_7d,prescription_pay_suc_count_30d)) prescription_pay_suc_countfrom ${APP}.dws_trade_hospital_gender_age_group_prescription_pay_suc_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dategroup by recent_days,age_group) prescription_pay_sucon consul.recent_days prescription_pay_suc.recent_daysand consul.age_group prescription_pay_suc.age_group;ads_doctor_change_stats insert overwrite table ${APP}.ads_doctor_change_stats select dt,recent_days,new_doctor_count,activated_doctor_count,active_doctor_count from ${APP}.ads_doctor_change_stats union select $do_date dt,new.recent_days,new_doctor_count,activated_doctor_count,active_doctor_count from (select recent_days,count(*) new_doctor_countfrom ${APP}.dwd_doctor_register_inc lateral view explode(array(1, 7, 30)) tmp as recent_dayswhere dt date_add($do_date, -recent_days 1)group by recent_days) newleft join(select recent_days,count(*) activated_doctor_countfrom ${APP}.dws_trade_doctor_consultation_td lateral view explode(array(1, 7, 30)) tmp as recent_dayswhere dt $do_dateand first_consultation_dt date_add($do_date, -recent_days 1)group by recent_days) activatedon new.recent_days activated.recent_daysleft join(select 1 recent_days,count(*) active_doctor_countfrom ${APP}.dws_trade_doctor_consultation_1dwhere dt $do_dateand consultation_count 2unionselect recent_days,count(*) active_doctor_countfrom ${APP}.dws_trade_doctor_consultation_nd lateral view explode(array(7, 30)) tmp as recent_dayswhere dt $do_dateand ((recent_days 7 and consultation_count_7d 2)or (recent_days 30 and consultation_count_30d 2))group by recent_days) activeon new.recent_days active.recent_days;ads_user_change_stats insert overwrite table ${APP}.ads_user_change_stats select dt,recent_days,new_user_count,new_patient_count from ${APP}.ads_user_change_stats union select $do_date dt,new_user.recent_days,new_user_count,new_patient_count from (select recent_days,count(*) new_user_countfrom ${APP}.dwd_user_register_inc lateral view explode(array(1, 7, 30)) tmp as recent_dayswhere dt date_add($do_date, -recent_days 1)group by recent_days) new_userleft join(select recent_days,count(*) new_patient_countfrom ${APP}.dwd_user_patient_add_inc lateral view explode(array(1, 7, 30)) tmp as recent_dayswhere dt date_add($do_date, -recent_days 1)group by recent_days) new_patienton new_user.recent_days new_patient.recent_days;ads_review_stats insert overwrite table ${APP}.ads_review_stats select dt,review_user_count,review_count,good_review_rate from ${APP}.ads_review_stats union select $do_date dt,review_user_count,review_count,good_review_rate from (select count(distinct user_id) review_user_countfrom ${APP}.dws_interaction_hospital_user_review_tdwhere dt $do_date) user_countleft join(select sum(review_count) review_count,sum(good_review_count) / sum(review_count) good_review_ratefrom ${APP}.dws_interaction_hospital_review_tdwhere dt $do_date) review_stats;ads_hospital_review_stats insert overwrite table ${APP}.ads_hospital_review_stats select dt,hospital_id,hospital_name,review_user_count,review_count,good_review_rate from ${APP}.ads_hospital_review_stats union select $do_date dt,user_count.hospital_id,user_count.hospital_name,review_user_count,review_count,good_review_rate from (select hospital_id,hospital_name,count(user_id) review_user_countfrom ${APP}.dws_interaction_hospital_user_review_tdwhere dt $do_dategroup by hospital_id,hospital_name) user_countleft join(select hospital_id,hospital_name,review_count,good_review_count / review_count good_review_ratefrom ${APP}.dws_interaction_hospital_review_tdwhere dt $do_date) review_statson user_count.hospital_id review_stats.hospital_idand user_count.hospital_name review_stats.hospital_name; case $1 in ads_trade_stats | ads_hospital_trade_stats | ads_gender_trade_stats | ads_age_group_trade_stats | ads_doctor_change_stats | ads_user_change_stats | ads_review_stats | ads_hospital_review_stats)hive -e ${!1};;all)hive -e $ads_trade_stats$ads_hospital_trade_stats$ads_gender_trade_stats$ads_age_group_trade_stats$ads_doctor_change_stats$ads_user_change_stats$ads_review_stats$ads_hospital_review_stats;;*)echo 非法参数;; esac数据装载 medical_dws_to_ads.sh all 2023-05-09 找个表看一下数据就行。 一、报表数据导出 1.MySQL建库建表 1.创建数据库 CREATE DATABASE IF NOT EXISTS medical_report DEFAULT CHARSET utf8 COLLATE utf8_general_ci;2.创建表 1.交易综合统计 CREATE TABLE ads_trade_stats (dt date NOT NULL COMMENT 统计日期,recent_days bigint NOT NULL COMMENT 统计周期: 最近1,7,30日,consultation_amount decimal(16,2) DEFAULT NULL COMMENT 问诊金额,consultation_count bigint DEFAULT NULL COMMENT 问诊次数,consultation_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 问诊支付成功金额,consultation_pay_suc_count bigint DEFAULT NULL COMMENT 问诊支付成功次数,prescription_amount decimal(16,2) DEFAULT NULL COMMENT 处方金额,prescription_count bigint DEFAULT NULL COMMENT 处方次数,prescription_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 处方支付成功金额,prescription_pay_suc_count bigint DEFAULT NULL COMMENT 处方支付成功次数,PRIMARY KEY (dt,recent_days) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT交易综合统计;2.各医院交易统计 CREATE TABLE ads_hospital_trade_stats (dt date NOT NULL COMMENT 统计日期,recent_days bigint NOT NULL COMMENT 统计周期: 最近1,7,30日,hospital_id varchar(255) NOT NULL COMMENT 医院ID,hospital_name varchar(255) NOT NULL COMMENT 医院名称,consultation_amount decimal(16,2) DEFAULT NULL COMMENT 问诊金额,consultation_count bigint DEFAULT NULL COMMENT 问诊次数,consultation_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 问诊支付成功金额,consultation_pay_suc_count bigint DEFAULT NULL COMMENT 问诊支付成功次数,prescription_amount decimal(16,2) DEFAULT NULL COMMENT 处方金额,prescription_count bigint DEFAULT NULL COMMENT 处方次数,prescription_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 处方支付成功金额,prescription_pay_suc_count bigint DEFAULT NULL COMMENT 处方支付成功次数,PRIMARY KEY (dt,recent_days,hospital_id,hospital_name) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT各医院交易统计;3.各性别患者交易统计 CREATE TABLE ads_gender_trade_stats (dt date NOT NULL COMMENT 统计日期,recent_days bigint NOT NULL COMMENT 统计周期: 最近1,7,30日,gender_code varchar(255) NOT NULL COMMENT 患者性别编码,gender varchar(255) NOT NULL COMMENT 患者性别,consultation_amount decimal(16,2) DEFAULT NULL COMMENT 问诊金额,consultation_count bigint DEFAULT NULL COMMENT 问诊次数,consultation_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 问诊支付成功金额,consultation_pay_suc_count bigint DEFAULT NULL COMMENT 问诊支付成功次数,prescription_amount decimal(16,2) DEFAULT NULL COMMENT 处方金额,prescription_count bigint DEFAULT NULL COMMENT 处方次数,prescription_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 处方支付成功金额,prescription_pay_suc_count bigint DEFAULT NULL COMMENT 处方支付成功次数,PRIMARY KEY (dt,recent_days,gender_code,gender) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT各性别患者交易统计;4.各年龄段患者交易统计 CREATE TABLE ads_age_group_trade_stats (dt date NOT NULL COMMENT 统计日期,recent_days bigint NOT NULL COMMENT 统计周期: 最近1,7,30日,age_group varchar(255) NOT NULL COMMENT 患者年龄段,consultation_amount decimal(16,2) DEFAULT NULL COMMENT 问诊金额,consultation_count bigint DEFAULT NULL COMMENT 问诊次数,consultation_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 问诊支付成功金额,consultation_pay_suc_count bigint DEFAULT NULL COMMENT 问诊支付成功次数,prescription_amount decimal(16,2) DEFAULT NULL COMMENT 处方金额,prescription_count bigint DEFAULT NULL COMMENT 处方次数,prescription_pay_suc_amount decimal(16,2) DEFAULT NULL COMMENT 处方支付成功金额,prescription_pay_suc_count bigint DEFAULT NULL COMMENT 处方支付成功次数,PRIMARY KEY (dt,recent_days,age_group) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT各年龄段患者交易统计;5.医生变动统计 CREATE TABLE ads_doctor_change_stats (dt date NOT NULL COMMENT 统计日期,recent_days bigint NOT NULL COMMENT 统计周期: 最近1,7,30日,new_doctor_count bigint DEFAULT NULL COMMENT 新增医生数,activated_doctor_count bigint DEFAULT NULL COMMENT 激活医生数,active_doctor_count bigint DEFAULT NULL COMMENT 活跃医生数,PRIMARY KEY (dt,recent_days) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT医生变动统计;6.用户变动统计 CREATE TABLE ads_user_change_stats (dt date NOT NULL COMMENT 统计日期,recent_days bigint NOT NULL COMMENT 统计周期: 最近1,7,30日,new_user_count bigint DEFAULT NULL COMMENT 新增用户数,new_patient_count bigint DEFAULT NULL COMMENT 新增患者数,PRIMARY KEY (dt,recent_days) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT用户变动统计;7.评价综合统计 CREATE TABLE ads_review_stats (dt date NOT NULL COMMENT 统计日期,review_user_count bigint DEFAULT NULL COMMENT 评价人数,review_count bigint DEFAULT NULL COMMENT 评价次数,good_review_rate decimal(16,2) DEFAULT NULL COMMENT 好评率,PRIMARY KEY (dt) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT用户变动统计;8.各医院评价统计 CREATE TABLE ads_hospital_review_stats (dt date NOT NULL COMMENT 统计日期,hospital_id varchar(255) NOT NULL COMMENT 医院ID,hospital_name varchar(255) NOT NULL COMMENT 医院名称,review_user_count bigint DEFAULT NULL COMMENT 评价人数,review_count bigint DEFAULT NULL COMMENT 评价次数,good_review_rate decimal(16,2) DEFAULT NULL COMMENT 好评率,PRIMARY KEY (dt,hospital_id,hospital_name) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT各医院评价统计;2.数据导出 1.DataX配置文件生成脚本 vim /opt/module/gen_datax_config/configuration.properties mysql.usernameroot mysql.password000000 mysql.hosthadoop102 mysql.port3306 mysql.database.importmedical # 从HDFS导出进入的 MySQL 数据库名称 mysql.database.exportmedical_report mysql.tables.importdict,doctor,hospital,medicine,patient,user # MySQL 库中需要导出的表空串表示导出库的所有表 mysql.tables.export is.seperated.tables0 hdfs.urihdfs://hadoop102:8020 import_out_dir/opt/module/datax/job/medical/import # DataX 导出配置文件存放路径 export_out_dir/opt/module/datax/job/medical/export2.执行配置文件生成器 java -jar datax-config-generator-1.0-SNAPSHOT-jar-with-dependencies.jar 3.编写每日导出脚本 vim ~/bin/medical_hdfs_to_mysql.sh #!/bin/bashDATAX_HOME/opt/module/dataxhandle_path(){for file in hadoop fs -ls -R $1 | awk {print $8}dohadoop fs -test -z $fileif [[ $? -eq 0 ]]then echo 文件 $file 大小为零正在删除...hadoop fs -rm -f -r $filefidone }export_data(){export_dir$1datax_config$2echo 正在校验目录 $export_dir ...handle_path $export_dircounthadoop fs -count $export_dir | awk {print $2}if [[ $count -eq 0 ]]then echo 目录为空跳过elseecho 正在处理目录 $export_dir ...$DATAX_HOME/bin/datax.py -p-Dexportdir$export_dir $datax_config $DATAX_HOME/job/medical/export.log 21if [[ $? -ne 0 ]]then echo 执行出错日志如下 ...cat $DATAX_HOME/job/medical/export.logfifi }case $1 inads_trade_stats | ads_hospital_trade_stats | ads_gender_trade_stats | ads_age_group_trade_stats | ads_doctor_change_stats | ads_user_change_stats | ads_review_stats | ads_hospital_review_stats)export_data /warehouse/medical/ads/$1 $DATAX_HOME/job/medical/export/medical_report.$1.json;;all)for tab in ads_trade_stats ads_hospital_trade_stats ads_gender_trade_stats ads_age_group_trade_stats ads_doctor_change_stats ads_user_change_stats ads_review_stats ads_hospital_review_statsdo export_data /warehouse/medical/ads/${tab} $DATAX_HOME/job/medical/export/medical_report.${tab}.jsondone;;*)echo 非法参数;; esac添加权限 chmod x ~/bin/medical_hdfs_to_mysql.sh 数据装载 medical_hdfs_to_mysql.sh all 总结 数仓开发到这里就结束了。
http://www.tj-hxxt.cn/news/132019.html

相关文章:

  • 程序员和网站建设注册卡wordpress
  • 色卡网站怎么看网站空间
  • 昌乐网站制作价格做直播网站找哪个
  • 网站模板 修改中国网络平台排名前十
  • 天津品牌网站制作手机网站布局技术
  • 常州模板建站平台社交网站建设公司
  • 网站服务器繁忙是怎么回事成都 网站建设 公司
  • 中咨城建设计南京网站昆明网站推广专员
  • 西部数码网站管理助手 mysql保存路径php网站开发实例教程书
  • 成品网站源码1688免费推荐昌乐网站设计
  • 网站开发招标技术规范书创网站多少钱
  • 自贡网站优化手机上的软件网站建设
  • 网站开发工具与环境好域名推荐
  • 网站运营与规划wordpress文章字体大小插件
  • 做什麽网站有前景自做网站教程
  • 杭州网站优化推荐实战营销型网站建设
  • 网站不备案支付宝接口上海史特信息技术有限公司
  • 营销策划好的网站广州市手机网站建设服务机构
  • 有部分网站打不开asp网站如何做伪静态
  • 上饶建设网站世界羽联巡回赛总决赛
  • 前十强排名家装公司抚州网站seo
  • app 设计网站建设wordpress如何调用作品集
  • 从域名到网站如何给网站添加icon
  • 网站推广具体内容数据 导入 wordpress
  • 网站到期只续域名不续空间能打开吗wordpress如何更域名
  • 网站开发需求说明广州网站开发广州亦客网络解答
  • 基于php的网站开发英文文献江阴企业网站建设哪家好
  • 网站收录软件南京seo网站管理
  • 建设网站需要的编程招聘网站设计论文
  • 优化公司流程大连优化公司