当前位置: 首页 > news >正文

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`doa=`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

相关文章:

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 USERNAM…...

HTML数字倒计时效果附源码

HTML页面代码 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content...

以udp协议创建通信服务器

概念图 创建服务器让A,B主机完成通信。 认识接口 socket 返回值&#xff1a;套接字&#xff0c;你可以认为类似fd 参数&#xff1a; domain->:哪种套接字&#xff0c;常用AF_INET(网络套接字)、AF_LOCAL(本地套接字)type->&#xff1a;发送数据类型&#xff0c;常用 …...

【数据结构】队列篇| 超清晰图解和详解:循环队列模拟、用栈实现队列、用队列实现栈

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; 是瑶瑶子啦每日一言&#x1f33c;: 每一个不曾起舞的日子&#xff0c;都是对生命的辜负。——尼采 目录 一、 模拟实现循环队列二、用栈实现队列⭐三、225. 用队列实现栈 一、…...

js+html实现打字游戏v2

实现逻辑&#xff0c;看jshtml实现打字游戏v1&#xff0c;在此基础之上增加了从文件读取到的单词&#xff0c;随机选取10个单词。 效果演示 上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…...

Python之作业(一)

Python之作业&#xff08;一&#xff09; 作业 打印九九乘法表 用户登录验证 用户依次输入用户名和密码&#xff0c;然后提交验证用户不存在、密码错误&#xff0c;都显示用户名或密码错误提示错误3次&#xff0c;则退出程序验证成功则显示登录信息 九九乘法表 代码分析 先…...

uni-app 之 v-on:click点击事件

uni-app 之 v-on:click点击事件 image.png <template><!-- vue2的<template>里必须要有一个盒子&#xff0c;不能有两个&#xff0c;这里的盒子就是 view--><view>--- v-on:click点击事件 ---<view v-on:click"onclick">{{title}}<…...

迁移学习:实现快速训练和泛化的新方法

文章目录 迁移学习的原理迁移学习的应用快速训练泛化能力提升 迁移学习的代码示例拓展应用与挑战结论 &#x1f389;欢迎来到AIGC人工智能专栏~迁移学习&#xff1a;实现快速训练和泛化的新方法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博…...

蓝队追踪者工具TrackAttacker,以及免杀马生成工具

蓝队追踪者工具TrackAttacker&#xff0c;以及免杀马生成工具。 做过防守的都知道大HW时的攻击IP量&#xff0c;那么对于这些攻击IP若一个个去溯源则显得效率低下&#xff0c;如果有个工具可以对这些IP做批量初筛是不是更好&#xff1f; 0x2 TrackAttacker获取 https://githu…...

ELK日志收集系统(四十九)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 二、组件 1. elasticsearch 2. logstash 2.1 工作过程 2.2 INPUT 2.3 FILETER 2.4 OUTPUTS 3. kibana 三、架构类型 3.1 ELK 3.2 ELKK 3.3 ELFK 3.5 EF…...

Linux知识点 -- Linux多线程(四)

Linux知识点 – Linux多线程&#xff08;四&#xff09; 文章目录 Linux知识点 -- Linux多线程&#xff08;四&#xff09;一、线程池1.概念2.实现3.单例模式的线程池 二、STL、智能指针和线程安全1.STL的容器是否是线程安全的2.智能指针是否是线程安全的 三、其他常见的各种锁…...

Java设计模式:四、行为型模式-07:状态模式

文章目录 一、定义&#xff1a;状态模式二、模拟场景&#xff1a;状态模式2.1 状态模式2.2 引入依赖2.3 工程结构2.4 模拟审核状态流转2.4.1 活动状态枚举2.4.2 活动信息类2.4.3 活动服务接口2.4.4 返回结果类 三、违背方案&#xff1a;状态模式3.0 引入依赖3.1 工程结构3.2 活…...

很多应用都是nginx+apache+tomcat

nginx 负责负载均衡&#xff0c;将大量的访问量平衡分配给多个服务器 apache 是用来处理静态html、图片等资源&#xff0c;在对HTML解析、响应等方面比tomcat效率更高。 tomcat 处理JSP等内容&#xff0c;进行后台业务操作。 upstream bbb.com.cn{ server 192.168.10.1:80 ;…...

原型模式:复制对象的技巧

欢迎来到设计模式系列的第六篇文章&#xff01;在前面的几篇文章中&#xff0c;我们已经学习了一些常见的设计模式&#xff0c;今天我们将继续探讨另一个重要的设计模式——原型模式。 原型模式简介 原型模式是一种创建型设计模式&#xff0c;它主要用于复制对象。原型模式通…...

ClickHouse进阶(五):副本与分片-1-副本与分片

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…...

Android 华为手机荣耀8X调用系统裁剪工具不能裁剪方形图片,裁剪后程序就奔溃,裁剪后获取不到bitmap的问题

买了个华为荣耀8X,安装自己写的App后,调用系统裁剪工具发现裁剪是圆形的,解决办法: //专门针对华为手机解决华为手机裁剪图片是圆形图片的问题 if (Build.MANUFACTURER.equals("HUAWEI")) {intent.putExtra("aspectX", 9998);intent.putExtra("a…...

《Flink学习笔记》——第十二章 Flink CEP

12.1 基本概念 12.1.1 CEP是什么 1.什么是CEP&#xff1f; 答&#xff1a;所谓 CEP&#xff0c;其实就是“复杂事件处理&#xff08;Complex Event Processing&#xff09;”的缩写&#xff1b;而 Flink CEP&#xff0c;就是 Flink 实现的一个用于复杂事件处理的库&#xff08…...

谷歌IndexedDB客户端存储数据

IndexedDB 具有以下主要特点&#xff1a; 1.存储大量数据&#xff1a;IndexedDB 可以存储大量的数据&#xff0c;比如存储离线应用程序的本地缓存或存储在线应用程序的大量数据。 2.结构化数据&#xff1a;IndexedDB 使用对象存储空间&#xff08;Object Stores&#xff09;来…...

天气数据的宝库:解锁天气预报API的无限可能性

前言 天气预报一直是我们日常生活中的重要组成部分。我们依赖天气预报来决定穿什么衣服、何时出行、规划户外活动以及做出关于农业、交通和能源管理等方面的重要决策。然而&#xff0c;要提供准确的天气预报&#xff0c;需要庞大的数据集和复杂的计算模型。这就是天气预报API的…...

插入排序(Insertion Sort)

C自学精简教程 目录(必读) 插入排序 每次选择未排序子数组中的第一个元素&#xff0c;从后往前&#xff0c;插入放到已排序子数组中&#xff0c;保持子数组有序。 打扑克牌&#xff0c;起牌。 输入数据 42 20 17 13 28 14 23 15 执行过程 完整代码 #include <iostream…...

FastbootEnhance:告别命令行,用图形化界面轻松管理Android刷机和分区

FastbootEnhance&#xff1a;告别命令行&#xff0c;用图形化界面轻松管理Android刷机和分区 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 在An…...

别再只调包了!用Sentence-Transformers从零训练你的专属Embedding模型(附完整代码)

从零构建领域专属Embedding模型&#xff1a;超越调包侠的实战指南 当你第一次调用model.encode("你的文本")就能获得一个语义向量时&#xff0c;是否好奇过这个黑箱背后的魔法&#xff1f;在电商推荐、智能客服等垂直场景中&#xff0c;通用Embedding模型的表现往往差…...

OpenClaw对话式编程:Qwen3-32B私有镜像调试代码

OpenClaw对话式编程&#xff1a;Qwen3-32B私有镜像调试代码 1. 为什么选择OpenClawQwen3-32B组合 去年我在重构一个Python数据分析项目时&#xff0c;每天要花大量时间反复执行"写代码-调试-优化"的循环。传统IDE的补全功能对复杂业务逻辑帮助有限&#xff0c;直到…...

如何快速上手TegraRcmGUI:Switch破解注入完整指南

如何快速上手TegraRcmGUI&#xff1a;Switch破解注入完整指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI 你是否曾为Nintendo Switch的定制化需求而烦恼…...

lychee与其他链接检查工具对比:为什么选择Rust构建的lychee

lychee与其他链接检查工具对比&#xff1a;为什么选择Rust构建的lychee 【免费下载链接】lychee ⚡ Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more! 项目地址…...

压缩强度试验机选的显示屏:在质量、价格、交期、服务上的适配优势

作为压缩强度试验机厂商的销售&#xff0c;我们在整机研发与生产中&#xff0c;显示屏是核心交互部件&#xff0c;直接影响设备的测试精度、操作体验与市场竞争力。结合多年行业经验与实际采购数据&#xff0c;恒域威显示屏在质量、价格、交期、服务四大核心维度&#xff0c;与…...

Qt实战:QGroupBox和QButtonGroup的5个实用技巧(附完整代码)

Qt实战&#xff1a;QGroupBox和QButtonGroup的5个实用技巧&#xff08;附完整代码&#xff09; 在Qt界面开发中&#xff0c;QGroupBox和QButtonGroup是两个看似简单却暗藏玄机的组件。很多开发者只停留在基础使用层面&#xff0c;却不知道它们能实现更复杂的交互逻辑和界面优化…...

实战:用MAF的“人机协同”功能,给你的AI工具调用加上一道安全锁(附C#代码)

企业级AI代理安全实践&#xff1a;基于MAF的人机协同审批架构设计 当财务系统自动驳回了一笔高管差旅报销&#xff0c;或是订单管理系统未经确认修改了客户历史数据时&#xff0c;企业往往需要付出高昂的信任成本来修复这类"自动化事故"。Microsoft Agent Framework&…...

量化模型实测:百川2-13B-4bits在OpenClaw复杂任务中的精度损失

量化模型实测&#xff1a;百川2-13B-4bits在OpenClaw复杂任务中的精度损失 1. 测试背景与实验设计 去年在部署本地AI助手时&#xff0c;我遇到一个现实矛盾&#xff1a;大模型的能力与硬件成本难以兼得。当尝试用OpenClaw实现自动化办公流程时&#xff0c;发现13B参数的百川原…...

granite-4.0-h-350m效果展示:Ollama运行下德语工业标准文档理解案例

granite-4.0-h-350m效果展示&#xff1a;Ollama运行下德语工业标准文档理解案例 1. 模型核心能力概览 Granite-4.0-H-350M是一个轻量级但功能强大的指令模型&#xff0c;专门针对设备部署和研究场景优化。这个350M参数的模型虽然体积小巧&#xff0c;但在多语言理解和指令跟随…...