目标:把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()
# 连接XXX平台
def Conncet_JZXZ():
conn_dict = {'ip': '10.X.X.X', 'port': 1521, 'user': 'fx_user', 'pw

本文介绍了如何将Oracle中的上亿条数据迁移至Hadoop,重点在于数据的分段导出、Python脚本使用、文件压缩以及在Hadoop环境中的上传和建立文本数据外表。整个过程涉及CentOS、Python 2.7、cx_Oracle库、Oracle 10.2.0.4.0和Hadoop 2.7.2-transwarp-5.2.1等技术。
最低0.47元/天 解锁文章
453





