SQLLDR 导入碎片化CSV数据脚本

背景

  最近需要将Greenplum 里近3亿记录的表迁移Oracle 测试性能。通过Python里的pandas.to_csv将order订单表按日期生成碎片化CSV文件,再通过Oracle SQLLDR工具将碎片化的CSV文件导入Oracle;

  • 碎片文件目录如下
    SQLLDR 导入碎片化CSV数据脚本-1

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