【同步指令碼】資料庫表字段不變
阿新 • • 發佈:2022-01-21
一、全量同步指令碼
#! /bin/bash if [ -n "$1" ] ;then do_date=$1 else echo "請傳入日期引數" exit fi for all in v_user_info v_user_hospital v_user_record v_diagnosis_info v_advice_info v_drug_info v_operation_info v_treatment_info v_vital_signs_info v_user_info_mz v_user_mz v_user_record_mz v_diagnosis_info_mz v_prescription_info_mz v_inspect_report v_examine_report v_examine_details v_doctor_info do sqoop import \ --connect jdbc:mysql://192.168.29.:3306/hospital_data_center \ --username zh \ --password zh \ --query " select * from $all where \$CONDITIONS" \ --delete-target-dir \ --hive-import \ --hive-overwrite \ --hive-partition-key dt \ --hive-partition-value $do_date \ --hive-database hospital \ --hive-table ods_$all \ --target-dir /warehouse/hospital/ods/ods_$all/dt=$do_date/ \ --num-mappers 1 \ --fields-terminated-by '\t' \ --hive-drop-import-delims \ --lines-terminated-by "\n" \ --null-string '\\N' \ --null-non-string '\\N' done
二、每天同步
#! /bin/bash do_date=`date -d '-1 day' +%F` sqoop import \ --connect jdbc:mysql://192.168.29.42:3306/hospital_data_center \ --username zhyx \ --password zhyx \ --query " select * from v_doctor_info where \$CONDITIONS" \ --delete-target-dir \ --hive-import \ --hive-overwrite \ --hive-partition-key dt \ --hive-partition-value $do_date \ --hive-database hospital \ --hive-table ods_v_doctor_info \ --target-dir /warehouse/hospital/ods/ods_v_doctor_info/dt=$do_date/ \ --num-mappers 1 \ --fields-terminated-by '\t' \ --hive-drop-import-delims \ --lines-terminated-by "\n" \ --null-string '\\N' \ --null-non-string '\\N' for all in v_user_info v_user_hospital v_user_record v_diagnosis_info v_advice_info v_drug_info v_operation_info v_treatment_info v_vital_signs_info v_user_info_mz v_user_mz v_user_record_mz v_diagnosis_info_mz v_prescription_info_mz v_inspect_report v_examine_report v_examine_details do sqoop import \ --connect jdbc:mysql://192.168.22:3306/hospital_da\ --username z \ --password zx \ --query " select * from $all where (date_format(create_time,'%Y-%m-%d')='$do_date' or date_format(update_time,'%Y-%m-%d')='$do_date') and \$CONDITIONS" \ --delete-target-dir \ --hive-import \ --hive-overwrite \ --hive-partition-key dt \ --hive-partition-value $do_date \ --hive-database hospital \ --hive-table ods_$1 \ --target-dir /warehouse/hospital/ods/ods_$1/dt=$do_date/ \ --num-mappers 1 \ --fields-terminated-by '\t' \ --hive-drop-import-delims \ --lines-terminated-by "\n" \ --null-string '\\N' \ --null-non-string '\\N' done