码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    参考:
    https://codeleading.com/article/51121246034/#google_vignette

  • 相关阅读:
    JAVA计算机毕业设计牙科诊所信息化管理平台Mybatis+系统+数据库+调试部署
    安卓毕业设计源码基于Uniapp+SSM实现的校园心理健康APP
    fba海运详解:fba海运是什么意思,FBA海运费用怎么算
    Python图像处理【22】基于卷积神经网络的图像去雾
    2021年认证杯SPSSPRO杯数学建模A题(第一阶段)医学图像的配准全过程文档及程序
    RunnerGo怎么做性能测试
    SpringCloud源码分析 (Eureka-Server-处理客户端删除状态请求) (六)
    SwiftUI简单基础知识学习
    家政服务接单小程序开发源码 家政保洁上门服务小程序源码 开源完整版
    ewebeditor编辑器漏洞
  • 原文地址:https://blog.csdn.net/Dreamy_zsy/article/details/132601853
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号