Sqoop(二):Hive导出数据到Oracle

这篇具有很好参考价值的文章主要介绍了Sqoop(二):Hive导出数据到Oracle。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

把Hive中的数据导入Oracle数据库。

1. 解释一下各行代码:

sqoop export
# 指定要从Hive中导出的表
--table TABLE_NAME    
# host_ip:导入oracle库所在的ip:导入的数据库
--connect jdbc:oracle:thin:@HOST_IP:DATABASE_NAME 

# oracle用户账号
--username USERNAME
# oracle用户密码
--password PASSWORD 

# hive表数据文件在hdfs上的路径
--export-dir /user/hive/test/TABLE_NAME
# 指定表的列名,必须指定 
--columns ID,data_date,data_type,c1,c2,c3 

# 列分隔符(根据hive的表结构定义指定分隔符)
--input-fields-terminated-by '\001'
# 行分隔符
--input-lines-terminated-by '\n' 

# 如果hive表中存在null字段,则需要添加参数,否则无法导入
--input-null-string '\\N' 
--input-null-non-string '\\N'

2. 案例:

sqoop export \
--connect jdbc:oracle:thin:@172.12.12.102:orcl \
--username test \
--password kong \
--table table_abc \
--export-dir /user/hive/warehouse/bonc_gjj.db/table_abc \
# 注意,这一行columns不能有多余的空格,否则会报错。
--columns 

zzjgdm,jgmc,jglx,jjlx,frdbhfzr,xzqhdm,yzbm,tzgb,hbzl,jgdz,dh,yxqzfrq,zczj,njq0,fzrq,zzzt,pzwhhzch,bfdw,lastdate,id,dir_id,dir_ver,dir_ver_serail_num,addtime,updatetime,edituser_id,edituser,editdept_id,editdept,inserttype,is_valid,audit_status,pk_md5,sys_encrypt \
    --input-fields-terminated-by '\001' \
    --input-lines-terminated-by '\n' \
    --input-null-string "\\\\N" \
    --input-null-non-string "\\\\N"

3. 表多的话,把所有表名存放在文件下,循环跑批每个表

#!/bin/bash 
a=0;
b=1;
# ``这两个反斜点,就是说里面这是一个变量,我的have_data_table_name是一个文件,里面存的是一堆表名。
# cat file_name,自己试试什么效果。for 开始循环表名。
for table_name in `cat ./have_data_table_name`
    do
    a=`expr $a + $b`
    echo "表名:$table_name,计数:$a";
    echo  "开始导入数据!"
    # 这一行就厉害了,简单来说就是取出一张表的所有列名,每个列名后加个逗号,然后去掉最后一个逗号,存在col这个变量中。
    col=`hive -e "desc database_name.${table_name}"|sed '1d'|awk '{printf $1","}'|sed 's/,$/\n/g'`

sqoop export \
--connect jdbc:oracle:thin:@172.12.12.102:1521:orcl \
--username test \
--password kong \
--table ${table_name} \
--export-dir /user/hive/warehouse/database_name.db/${table_name} \
--columns ${col} \
--input-fields-terminated-by '\001' \
--input-lines-terminated-by '\n' \
--input-null-string "\\\\N" \
--input-null-non-string "\\\\N"

    echo "第${a}张表导入完毕!";
done

参考:
https://codeleading.com/article/51121246034/#google_vignette文章来源地址https://www.toymoban.com/news/detail-687003.html

到了这里,关于Sqoop(二):Hive导出数据到Oracle的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用sqoop从Hive导出数据到MySQL

    1、启动hadoop:start-all.sh。 2、启动mysql:support-files/mysql.server start。 3、启动hive:hive。 4、在hive中创建表。 (学生信息:学号xh,姓名xm)xsxx: create table bigdata03.xsxx ( xh String, xm String ) row format delimited fields terminated by \\\',\\\'stored as textfile; (课程信息:课程号kch,学号xh,课程名称

    2024年02月11日
    浏览(53)
  • 使用Sqoop将Hive数据导出到TiDB

    关系型数据库与大数据平台之间的数据传输之前写过一些 使用Sqoop将数据在HDFS与MySQL互导 使用Sqoop将SQL Server视图中数据导入Hive 使用DataX将Hive与MySQL中的表互导 使用Sqoop将Hive数据导出到TiDB虽然没写过,但网上一堆写的,那为什么我要专门写一下呢? 我发现一些大家可能会忽

    2024年01月23日
    浏览(47)
  • Sqoop将hive处理的数据导出到MySQL

    目录 部署前提 一、创建数据上传到hive中 创建学生表数据:vim stu.txt 创建课程表数据:vim course.txt 在hive中创建学生表和课程表: 上传数据到hdfs上的hive中: 二、处理hive中的数据 查询学生姓名和课程信息,创建结果表stu_result: 插入数据: 三、在mysql中创建结果表 四、将hive中处

    2024年02月03日
    浏览(45)
  • Sqoop导出hive/hdfs数据到mysql中---大数据之Apache Sqoop工作笔记006

    然后我们看看数据利用sqoop,从hdfs hbase中导出到mysql中去   看看命令可以看到上面这个   这里上面还是mysql的部分,然后看看 下面--num-mappers 这个是指定mapper数 然后下面这个export-dir这里是,指定hdfs中导出数据的目录 比如这里指定的是hive的一个表/user/hive/warehouse/sttaff_hive 然后下

    2024年02月03日
    浏览(47)
  • 大数据:hive数据库的操作语法,数据表,内部表,external外部表,数据导入导出load,insert

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月08日
    浏览(76)
  • 使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题

    一、创建一张Hive测试表 创建分区字段partition_date,指定分隔符“,” 二、编写Sqoop数据同步命令 我这里使用的是shell脚本的方式: 命令相关属性说明: --connect:连接Oracle数据库的URL,例如jdbc:oracle:thin:@219.216.110.120:1521:orcl。 --username:连接Oracle数据库的用户名,例如TEST1。

    2024年02月04日
    浏览(54)
  • 成功解决DataX从Hive导出Oracle的数据乱码问题!

    大数据与 RDBMS 之间的数据导入和导出都是企业日常数据处理中常见的一环,该环节一般称为 e-t-l 即 extract-transform-load 。市面上可用的 etl 工具和框架很多,如来自于传统数仓和 BI 圈的 kettle/informatica/datastage , 来自于 hadoop 生态圈的 sqoop/datax ,抑或使用计算引擎 spark/presto/fli

    2024年02月13日
    浏览(40)
  • Hadoop和关系型数据库间的数据传输工具——Sqoop

    1.1、产生背景 1.2、Sqoop是什么 Sqoop是一个用于 Hadoop 和 结构化数据存储 (如关系型数据库)之间进行高效传输大批量数据的工具。它包括以下两个方面: 可以使用Sqoop将数据从 关系型数据库管理系统(如MySQL)导入到Hadoop系统 (如HDFS、Hive、HBase)中 将数据从Hadoop系统中抽取并导

    2023年04月08日
    浏览(118)
  • 用sqoop导出hive parquet 分区表到mysql

    确保你已经安装并配置好了Sqoop工具,并且可以连接到Hadoop集群和MySQL数据库。 创建一个MySQL表来存储导出的数据。请确保MySQL表的结构与Hive Parquet分区表的结构匹配。 使用Sqoop的export命令来执行导出操作。以下是一个示例命令: 替换 mysql_host、database_name、mysql_username 和 mysq

    2024年02月14日
    浏览(41)
  • 数据库数据恢复-Oracle数据库数据恢复案例

    数据库数据恢复环境: Oracle数据库ASM磁盘组有4块成员盘。 数据库故障分析: Oracle数据库ASM磁盘组掉线 ,ASM实例无法挂载,用户联系我们要求恢复oracle数据库。 数据库数据恢复工程师拿到磁盘后,先将所有磁盘以只读方式进行扇区级别的镜像备份,后续的数据分析和数据恢

    2024年02月13日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包