使用sqoop将oracle数据迁移到hive中

技术专题:使用sqoop将oracle数据迁移到hive中
目标:hive分区表(时间分区表)每个分区表中存放从oracle抽过来的数据,用来数据分析
技术分析:    1、将要抽取的oracle表放到一张临时表中,(抽取这张表将其放到抽放到配置文件中,供抽取参数使用)       2、使用sqoop将oracle中的表抽取成HDFS文件。(注意:生成的文件目录应该和hive外表指定的目录对应,目录同时应将hive分区考虑进去)    3、使用hive的外表(分区表)将指定目录的文件加载到hive中。
技术实现: 1、抽取oracle表到HDFS文件。sqoop import --connect jdbc:oracle:thin:@10.10.10.10:1521:jzfpdb -username jzfp -password jzfp --table TB_FPXM_CS_SOURCE --fields-terminated-by "\t" --lines-terminated-by "\n"  --as-textfile --delete-target-dir   --target-dir  /tmp/data_back/TB_FPXM_CS_SOURCE  ;

 2、将抽取的数据加载到本地文件中

 hadoop fs -cat /tmp/data_back/TB_FPXM_CS_SOURCE/* >pzb.txt;

 3、备份脚本

#/bin/bash
printf "*************************************\n";
time=`date -d next-day +%Y%m%d`
#time=`date +%Y%m%d`
for name in  `cat /tmp/wcj/pzb.txt | awk '{print $3}'`
do
    echo $name;
    echo $time;
    echo /tmp/data_back/$name/$time;
    #hadoop fs -mkdir /tmp/data_back/$name/$time;
    sqoop import --connect jdbc:oracle:thin:@10.10.10.10:1521:jzfpdb -username jzfp -password jzfp --table $name --fields-terminated-by "\t" --lines-terminated-by "\n" --split-by  "fpxm_key" --as-textfile --delete-target-dir   --target-dir  /tmp/data_back/$name/$time ;

    echo 1111111;
done

 4、定时任务

crontab -e  

 

后续晚善


    

你可能感兴趣的:(hadoop,oracle,sqoop)