热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqoop迁移oracle数据到TDH

从oracle导出数据为文本格式代码https:github.comreader-swordoracle-transform-TDH驱动包位置:oracle-dri

从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


推荐阅读
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 图数据库与传统数仓实现联邦查询使用CYPHER实现从关系数据库过滤时间序列指标一、MySQL得到研报实体在Oracle中的唯一ID二、Oracle中过滤时间序列数据三、CYPHER ... [详细]
  • 通过马老师的视频学习了Java中的容器相关内容,包括Collection、Set、List、Map及其常见实现类,并深入了解了这些容器的基本操作方法。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 探讨多种方法来确定Java对象的实际类型,包括使用instanceof关键字、getClass()方法等。 ... [详细]
  • HDU 2537 键盘输入处理
    题目描述了一个名叫Pirates的男孩想要开发一款键盘输入软件,遇到了大小写字母判断的问题。本文提供了该问题的解决方案及实现方法。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文介绍了如何使用 Gesture Detector 和 overridePendingTransition 方法来实现滑动界面和过渡动画。 ... [详细]
  • Hadoop Datanode DataXceiver 错误处理问题
    Ambari 每分钟会向 Datanode 发送一次“ping”请求以确保其正常运行。然而,Datanode 在处理空内容时没有相应的逻辑,导致出现错误。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
author-avatar
喻维伦_753
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有