Этот сценарий взят из хранилища данных Shang Silicon Valley 6.0.
Путь к файлу конфигурации:/opt/module/datax/job/import/
Файлы пакетной конфигурации см. в этой статье.
Поскольку необходимо собрать несколько таблиц целиком, мы используем скрипты для их пакетного выполнения.
vim mysql_to_hdfs_full.sh
#!/bin/bash
DATAX_HOME=/opt/module/datax
# Если передается дата, do_date равна переданной дате, в противном случае она равна дате предыдущего дня.
if [ -n "$2" ] ;then
do_date=$2
else
do_date=`date -d "-1 day" +%F`
fi
#Обработка целевого пути Логика обработки здесь заключается в том, что если целевой путь не существует, создайте его; если он существует, очистите его. Цель состоит в том, чтобы обеспечить возможность повторного выполнения задачи синхронизации.
handle_targetdir() {
hadoop fs -test -e $1
if [[ $? -eq 1 ]]; then
echo «Путь $1 не существует, создается...»
hadoop fs -mkdir -p $1
else
echo «Путь $1 уже существует»
fi
}
#Синхронизация данных
import_data() {
datax_config=$1
target_dir=$2
handle_targetdir $target_dir
python $DATAX_HOME/bin/datax.py -p"-Dtargetdir=$target_dir" $datax_config
}
case $1 in
"activity_info")
import_data /opt/module/datax/job/import/activity_info.json /origin_data/db/activity_info_full/$do_date
;;
"activity_rule")
import_data /opt/module/datax/job/import/activity_rule.json /origin_data/db/activity_rule_full/$do_date
;;
"base_category1")
import_data /opt/module/datax/job/import/base_category1.json /origin_data/db/base_category1_full/$do_date
;;
"base_category2")
import_data /opt/module/datax/job/import/base_category2.json /origin_data/db/base_category2_full/$do_date
;;
"base_category3")
import_data /opt/module/datax/job/import/base_category3.json /origin_data/db/base_category3_full/$do_date
;;
"base_dic")
import_data /opt/module/datax/job/import/base_dic.json /origin_data/db/base_dic_full/$do_date
;;
"base_province")
import_data /opt/module/datax/job/import/base_province.json /origin_data/db/base_province_full/$do_date
;;
"base_region")
import_data /opt/module/datax/job/import/base_region.json /origin_data/db/base_region_full/$do_date
;;
"base_trademark")
import_data /opt/module/datax/job/import/base_trademark.json /origin_data/db/base_trademark_full/$do_date
;;
"cart_info")
import_data /opt/module/datax/job/import/cart_info.json /origin_data/db/cart_info_full/$do_date
;;
"coupon_info")
import_data /opt/module/datax/job/import/coupon_info.json /origin_data/db/coupon_info_full/$do_date
;;
"sku_attr_value")
import_data /opt/module/datax/job/import/sku_attr_value.json /origin_data/db/sku_attr_value_full/$do_date
;;
"sku_info")
import_data /opt/module/datax/job/import/sku_info.json /origin_data/db/sku_info_full/$do_date
;;
"sku_sale_attr_value")
import_data /opt/module/datax/job/import/sku_sale_attr_value.json /origin_data/db/sku_sale_attr_value_full/$do_date
;;
"spu_info")
import_data /opt/module/datax/job/import/spu_info.json /origin_data/db/spu_info_full/$do_date
;;
"promotion_pos")
import_data /opt/module/datax/job/import/promotion_pos.json /origin_data/db/promotion_pos_full/$do_date
;;
"promotion_refer")
import_data /opt/module/datax/job/import/promotion_refer.json /origin_data/db/promotion_refer_full/$do_date
;;
"all")
import_data /opt/module/datax/job/import/activity_info.json /origin_data/db/activity_info_full/$do_date
import_data /opt/module/datax/job/import/activity_rule.json /origin_data/db/activity_rule_full/$do_date
import_data /opt/module/datax/job/import/base_category1.json /origin_data/db/base_category1_full/$do_date
import_data /opt/module/datax/job/import/base_category2.json /origin_data/db/base_category2_full/$do_date
import_data /opt/module/datax/job/import/base_category3.json /origin_data/db/base_category3_full/$do_date
import_data /opt/module/datax/job/import/base_dic.json /origin_data/db/base_dic_full/$do_date
import_data /opt/module/datax/job/import/base_province.json /origin_data/db/base_province_full/$do_date
import_data /opt/module/datax/job/import/base_region.json /origin_data/db/base_region_full/$do_date
import_data /opt/module/datax/job/import/base_trademark.json /origin_data/db/base_trademark_full/$do_date
import_data /opt/module/datax/job/import/cart_info.json /origin_data/db/cart_info_full/$do_date
import_data /opt/module/datax/job/import/coupon_info.json /origin_data/db/coupon_info_full/$do_date
import_data /opt/module/datax/job/import/sku_attr_value.json /origin_data/db/sku_attr_value_full/$do_date
import_data /opt/module/datax/job/import/sku_info.json /origin_data/db/sku_info_full/$do_date
import_data /opt/module/datax/job/import/sku_sale_attr_value.json /origin_data/db/sku_sale_attr_value_full/$do_date
import_data /opt/module/datax/job/import/spu_info.json /origin_data/db/spu_info_full/$do_date
import_data /opt/module/datax/job/import/promotion_pos.json /origin_data/db/promotion_pos_full/$do_date
import_data /opt/module/datax/job/import/promotion_refer.json /origin_data/db/promotion_refer_full/$do_date
;;
esac
Заполненная здесь дата — это путь к достижению эффекта разделения.
mysql_to_hdfs_full.sh all 2022-06-08
hadoop fs -cat /origin_data/db/activity_info_full/2022-06-08/* | zcat