SQLLDR 导入碎片化CSV数据脚本
背景
最近需要将Greenplum 里近3亿记录的表迁移Oracle 测试性能。通过Python里的pandas.to_csv将order订单表按日期生成碎片化CSV文件,再通过Oracle SQLLDR工具将碎片化的CSV文件导入Oracle;
- 碎片文件目录如下
SQLLDR 导入Oracle 脚本
#!/bin/sh
source /home/oracle/.bash_profile
startDate="$1"
endDate="$2"
echo "起始日期:$startDate"
echo "结束日期:$endDate"
#将日期转成秒
startDateTime=`date -d "$startDate" +%s`
endDateTime=`date -d "$endDate" +%s`
#两个日期秒数差
diff=`expr $endDateTime - $startDateTime`
#计算天数(一天24*60*60=86400秒)
diffCount=$(expr $diff/86400)
#利用相差的天数输出两个日期之间所有日期
for((i=0;i> two.log
1. sqlldr 导入
sqlldr userid=two/'two' control=/home/oracle/two/two.ctl log=/home/oracle/two/two_${cDate}.log
1. 替换two.ctl 旧的日期目录
sed -i "s/$cDate/$nDate/g" two.ctl
done