从oracle导出数据为文本格式

代码
https://github.com/reader-sword/oracle-transform-TDH
驱动包位置:
oracle-drives.rar
https://download.csdn.net/my

#!/bin/bash
touch /mnt/oracle_transport/sqoop.log
echo "" > /mnt/oracle_transport/sqoop.logi=0
cat table.txt |while read line
do#db=`echo $line | awk -F "." '{print $1}'`table=`echo $line `echo " -------------------------------------------begin hdfs dfs -rm ${table}------------------------------------------"#>>  ./sqoop/${table}.loghdfs dfs -rm -r /tmp/data/${table}# --fields-terminated-by "指定分隔符"#在原有sqoop语句中添加 --hive-drop-import-delims 可以将如mysql中取到的\n, \r, and \01等特殊字符丢弃
#     在从mysql(或者别的RDBMS)导入数据到hdfs后会发现原来在mysql中字段值明明是NULL, 为什么到hive查询后 where field is null 会没有结果呢,然后通过检查一看  居然NULL值都变成了字段串'null'。
# 其实你在导入的时候加上以下两个参数就可以解决了,
# --null-string '\\N'
# --null-non-string '\\N'
#这里要注意一点。 在hive里面。NULL是用\N来表示的。echo " ---------------------------------------------begin sqoop import ${table} --------------------------------------------------"sqoop import --connect jdbc:oracle:thin:@10.20.1.140:1521:orcl --username *** --password **** --query " select * from  ${table}  where \$CONDITIONS" --target-dir /tmp/data/${table} -m 1 --fields-terminated-by "\001" --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N'let i++echo "${table} $i finished" >>/mnt/oracle_transport/sqoop.logecho " -------------------------------------- sqoop import finished ${table} $i--------------------------------------------"
done

创建外表

#!/bin/bash
cat table.txt |while read line
doecho "DROP TABLE IF EXISTS JIAXING_PRE_MEACH.${line}_EXT;CREATE EXTERNAL TABLE JIAXING_PRE_MEACH.${line}_EXT (ROWKEY STRING, NUM INT, COUNTRY INT, RD INT)row format delimited fields terminated by \"\\001\" location '/tmp/data/${line}';" >/mnt/oracle_transport/create_ext/create_ext_${line}.sqlecho "-------------------------------------create_ext_${line}.sql finished ----------------------------------------------"
done

执行建外表命令并创建orc表

#!/bin/bash
i=0
rm  /mnt/oracle_transport/create_ext_orc_all.log
touch /mnt/oracle_transport/create_ext_orc_all.log
cat table.txt |while read line
dobeeline -u jdbc:hive2://10.20.1.144:10000  -f /mnt/oracle_transport/create_ext/create_ext_${line}.sqlstatement="DROP TABLE IF EXISTS JIAXING_PRE_MEACH.${line}_ORC;CREATE TABLE  JIAXING_PRE_MEACH.${line}_ORC STORED AS ORC  AS SELECT * FROM  JIAXING_PRE_MEACH.${line}_EXT;select count(*) from JIAXING_PRE_MEACH.${line}_ORC;"beeline -u jdbc:hive2://10.20.1.144:10000 -e "$statement"let i++echo "JIAXING_PRE_MEACH.${line}_ORC $i finished" >>/mnt/oracle_transport/create_ext_orc_all.logecho "--------------------------------JIAXING_PRE_MEACH.${line}_ORC $i finished---------------------------------------------"
done

sqoop迁移oracle数据到TDH相关推荐

  1. sqoop将oracle数据导入到hive报错:Error: java.io.IOException: SQLException in nextKeyValue

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 问题 一.问题是什么导致的? 二.验证问题 总结 问题 sqoop将oracle数据导入到hive报错:Error: jav ...

  2. oracle导入初始数据死机,Sqoop导入Oracle数据至hive卡死在hive.HiveImport: Connecting to jdbc:hive2不执行...

    环境信息: HDP-3.1.4 已经下载好odjbc8.jar驱动程序放置在/usr/hdp/current/sqoop-client/lib/目录 Sqoop读取Oracle数据库数据导入Hive时 ...

  3. 使用sqoop迁移mysql数据到hive

    相关参考文献: 1.原文地址:http://www.cnblogs.com/charlist/p/7122198.html 使用Sqoop能够极大简化MySQL数据迁移至Hive之流程,并降低Hado ...

  4. 达梦数据库迁移oracle数据乱码,oracle迁移到达梦数据库之存储过程中char类型的不同处理...

    oracle迁移到dm之存储过程中char类型的不同处理 1.问题描述: oracle迁移到dm后,oracle正常使用的存储过程,在dm中使用报错:字符串截断 2.查找原因: 2.1 对比oracl ...

  5. oracle迁移至gaussdb,GaussDB for DWS 数据融合系列第九期:Oracle数据迁移到GaussDB(DWS)...

    当客户选择切换到GaussDB(DWS)数据库后可能会面临数据库的迁移任务,数据库迁移包括用户数据迁移和应用程序sql脚本迁移,其中,应用程序sql脚本迁移是一个复杂.高风险且耗时的过程. DSC(D ...

  6. Sqoop增量抽取Oracle数据,最近8个小时的数据未被抽取

    在使用sqoop增量抽取数据时,在不指定m的情况下,导出日志中可以看到添加了截止时间,但这个时间并不是系统时间,经过多次比较发现,这个时间比当前系统时间早8个小时.因此怀疑是时区问题. 检查Oracl ...

  7. bde怎么配置oracle数据库,Oracle数据访问组件ODAC教程:如何从BDE和DOA迁移

    ODAC(Oracle Data Access Components )是一个Oracle数据访问组件.ODAC可以为Oracle提供本地连接(Delphi, Delphi for .NET, C++ ...

  8. oracle数据迁移到mysql

    Kettle7.0实现oracle到mysql数据库迁移(批量全量导入) https://blog.csdn.net/j1231230/article/details/80525922 Kettle ...

  9. Oracle数据迁移MySQL

    前言: 现今,Oracle数据迁移MySQL的需求已经越来越普遍,主要的迁移场景大致可以分为三类,第一类是涉及小表以及少量表的一次性迁移,无需进行增量同步,第二类是涉及大表以及多表的一次性迁移,第三类 ...

最新文章

  1. 开始 Sencha Touch 2 之旅之三
  2. 性能测试真如你想象的那么简单?
  3. oracle 归档日志
  4. 终于快忙出头了,开了个FTP给大家用[mikespook]
  5. 201119阶段二sqlite3
  6. 我2017年游泳特训安排
  7. linux openjdk_OpenJDK作为Linux上的默认Java
  8. 综合素质计算机考点,教师资格证小学综合素质考点及考试真题:信息处理能力...
  9. php symfony 安装,Symfony4中文文档: 安装和设置Symfony框架
  10. 又有程序员把产品经理给打了!
  11. 华为AI开发平台ModelArts介绍和应用
  12. python写机器人程序_从Python写入机器人框架控制台
  13. c++函数不允许递归_递归优化的这三种方式你知道吗?
  14. 基于微信小程序的毕业设计题目(27)php校园跑腿小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  15. Java 读取p12 证书私钥
  16. 用python编写仓库管理系统_花了一天做的一个简单的仓库管理系统
  17. 微信小程序SEO优化策略
  18. 解释什么是啸叫,为什么会发生啸叫,啸叫的为何和如何防止啸叫
  19. 8个让程序员追悔莫及的职业建议
  20. HCIP-loT——简述

热门文章

  1. 从物联网架构分析物联网安全风险
  2. 使用 smartupload 上传文件
  3. PHP 作业2.2 商品价格计算
  4. java检测安卓程序退出_Android:应用程序退出后出现奇怪的NameNotFoundException
  5. 【网络安全】内网介绍+windows信息收集(含命令)
  6. 给内网映射增加安全防护
  7. 5.不确定性推理方法: 可信度方法, 证据理论
  8. 高斯投影正反算的代码
  9. 网工必备网络排错管理工具之IP_MAC地址工具
  10. 2019CAD设置经典模式模板详细步骤