目标:把Oracle 下的数据文件迁移到 Hadoop , 数据表都是上亿条,每个数据表的空间都超过100G。
关键是建立数据文件是UTF8格式,这样数据中的汉字在Hadoop 里显示才正常。
平台:CentOS 6.10
工具:Python 2.7 cx_Oracle 库
Oracle 10.2.0.4.0
Hadoop 2.7.2-transwarp-5.2.1
1. 查看表结构
如果是分区表, 直接按分区导出 , 如果是非分区表,查看索引字段, 按索引字段分段导出。
记录DDL 语句。
2.编写Python 脚本。
oralce_lib.py
# coding:utf-8
# 服务器上的Oracle接口
# By 陈年椰子
import cx_Oracle
import socket
import os
import time
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
# 输出日志
def proc_log(log_info):
t_now = time.strftime('%H:%M:%S', time.localtime(time.time()))
log_str = t_now + log_info
print(log_str)
log_file = open('exp_work.log', 'a')
log_file.write("{}\n".format(log_str))
log_file.close()