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

Sqoop【实践 02】Sqoop1最新版 全库导入 + 数据过滤 + 字段类型支持 说明及举例代码(query参数及字段类型强制转换)

Sqoop1最新版举例

  • 1.环境说明
  • 2.import-all-tables
  • 3.query
  • 4.字段类型支持

1.环境说明

还是之前的环境:

# 不必要信息不再贴出
# JDK
[root@tcloud ~]# java -version
java version "1.8.0_251"
# MySQL
[root@tcloud ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.28
# Hadoop
[root@tcloud ~]# hadoop version
Hadoop 3.1.3
# Hive 
[root@tcloud ~]# hive --version
Hive 3.1.2
# Sqoop
[root@tcloud ~]# sqoop version
Sqoop 1.4.7

2.import-all-tables

Sqoop1支持通过 import-all-tables 命令进行全库导出到 HDFS/Hive,但需要注意有以下两个限制:

  • 所有表必须有主键;或者使用 --autoreset-to-one-mapper ,代表只启动一个 map task,即不并行执行。【若仍希望并行执行,则可以使用 --split-by 指明拆分数据的参考列】 ;
  • 你不能使用非默认的分割列,也不能通过 WHERE 子句添加任何限制。官方原文 You must not intend to use non-default splitting column, nor impose any conditionsvia a WHERE clause.

导入的默认路径是:/user/用户名/若干数据表名/数据文件和_SUCCESS,如果想要指定目录需要使用指定的参数【具体参数可以使用 sqoop help import-all-tables 查看】

【实例 1️⃣ 】全库导入到 HDFS:

# 注意:指定导入目录使用的是 --warehouse-dir 不是 --target-dir 参数
sqoop import-all-tables \
--connect jdbc:mysql://tcloud:3306/mysql \
--username root \
--password tcloud@2021\
--warehouse-dir /sqoop_all \  
--fields-terminated-by '\t' \
--bindir /usr/local/sqoop/lib/ \
-m 1
# 所有表都有主键时 可以设置-m 的参数大于1 否则只能为 1

【实例 2️⃣ 】全库导出到 Hive:

# 注意:指定导入的数据库使用 --hive-database
sqoop import-all-tables \
-Dorg.apache.sqoop.splitter.allow_text_splitter=true \
--connect jdbc:mysql://tcloud:3306/mysql \
--username root \
--password tcloud@2021\
--hive-database sqoop_test \
--hive-import \
--hive-overwrite \
--bindir /usr/local/sqoop/lib/ \
-m 1

3.query

Sqoop1 支持使用 query 参数定义查询 SQL实现对数据的过滤,从而可以导入任何想要的结果集。实例:

sqoop import \
--connect jdbc:mysql://tcloud:3306/mysql \
--username root \
--password tcloud@2021\
--query 'select * from help_keyword where $CONDITIONS and help_keyword_id < 50' \ 
--delete-target-dir \      
--target-dir /sqoop_hive \
--hive-database sqoop_test \		# 指定导入目标数据库 不指定则默认使用Hive中的default库
--hive-table filter_help_keyword \	# 指定导入目标表
--split-by help_keyword_id \		# 指定用于 split 的列   
--hive-import \						# 导入到 Hive
--hive-overwrite \    
--bindir /usr/local/sqoop/lib/ \      
-m 1

在使用 query 进行数据过滤时,需要注意以下三点:

  • 必须用 --hive-table 指明目标表;
  • 如果并行度 -m 不为 1 或者没有指定 --autoreset-to-one-mapper ,则需要用 --split-by 指明参考列;
  • SQL 的 where 字句必须包含 $CONDITIONS ,这是固定写法,作用是动态替换。

4.字段类型支持

Sqoop1默认支持数据库的大多数字段类型,但是某些特殊类型是不支持的。遇到不支持的类型,程序会抛出异常 Hive does not support the SQL type for column xxx 异常,此时可以通过下面两个参数进行强制类型转换:

  • –map-column-java :重写 SQL 到 Java 类型的映射;
  • –map-column-hive :重写 Hive 到 Java 类型的映射。

示例如下,将原先 id 字段强制转为 String 类型, value 字段强制转为 Integer 类型:

$ sqoop import ... --map-column-java id=String,value=Integer

相关文章:

Sqoop【实践 02】Sqoop1最新版 全库导入 + 数据过滤 + 字段类型支持 说明及举例代码(query参数及字段类型强制转换)

Sqoop1最新版举例 1.环境说明2.import-all-tables3.query4.字段类型支持 1.环境说明 还是之前的环境&#xff1a; # 不必要信息不再贴出 # JDK [roottcloud ~]# java -version java version "1.8.0_251" # MySQL [roottcloud ~]# mysql -V mysql Ver 14.14 Distrib…...

第十四届蓝桥杯JavaA组省赛真题 - 特殊日期

解题思路&#xff1a; 暴力秒了 public class Main {public static void main(String[] args) {int cnt 0;for (int i 1900; i < 9999; i) {for (int j 1; j < 12; j) {for (int k 1; k < days(i, j); k) {if (sum(i) sum(j) sum(k)) cnt;}}}System.out.print…...

《VulnHub》Lampião:1

title: 《VulnHub》Lampio&#xff1a;1 date: 2024-03-28 21:37:49 updated: 2024-03-28 21:37:50 categories: WriteUp&#xff1a;Cyber-Range excerpt: 关键技术&#xff1a;主机发现&#xff0c;端口扫描、服务探测、操作系统探测&#xff0c;对开放的端口探测漏洞&#x…...

RabbitMq高可用

消息队列高级 服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.2.消息持久化1.3.消费者消息确认1.4.消费失败重试机制1.5.总结 2.死信交换机2.1.初识死信交换机2.2.TTL2.3.延迟队列 3.惰性队列3.1.消息堆积问题3.2.惰性队列 4.MQ集群4.1.集群分类4.2.普通集群4.3.镜像集群…...

降本增效的车间管理大屏,车间主任看了拍手称快,速来领取。

我们老板觉得车间生产效率太低了&#xff0c;还想让我整一套车间管理的&#xff01; 制造业管理的核心在于降本增效&#xff0c;车间管理可以通过【大数据可视化】来提高管理效率&#xff0c;大屏就可以做到生产管理一「屏」了然&#xff0c;这是【车间管理大屏方案】。 一、…...

Open AI要给GPT应用开发者“发钱” 黄金的宏观关系被打破了吗?

内容摘要 为避免GPTs彻底凉凉&#xff0c;Open AI紧急启动了一项“货币化”计划&#xff0c;直接给那些在GPT Store上的应用开发人员发钱。 正文部分 当地时间周四凌晨&#xff0c;OpenAI在社交媒体上发帖称&#xff0c;正在与小部分美国开发者合作&#xff0c;基于用户使用…...

【Docker】Docker安全与最佳实践:保护你的容器化应用程序

欢迎来到英杰社区&#xff1a; https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区&#xff1a; https://bbs.csdn.net/topics/617897397 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff…...

QT 信号(Signal)与槽(Slot)机制

上学后,人们问我长大了要做什么,我写下“快乐”。他们告诉我,我理解错了题目,我告诉他们,他们理解错了人生。 ——约翰列侬 一、信号(signal)与槽(slot) 在QT中,信号(signal)与槽(slot)机制是一种用于对象间通信的重要机制。它允许一个对象发出信号,而其他对象…...

音频干扰检测(频域方法)

测试音响系统的通路上是否有外部干扰时&#xff0c;可以通过播放1000赫兹的正弦波信号&#xff0c;在输出端采集数字信号&#xff08;I2S&#xff0c;TDD&#xff0c;A2B&#xff09;并保存为.wav文件。 然后通过以下Python代码检测。 import numpy as np import librosa im…...

Rust引用借用 vs 原始指针

let v: i32 10; let v1 &v; let a: *const i32 &v; println!("a{:p}", a); let b a as *mut i32; //无法从&v直接转换成*mut i32&#xff0c;需要从*const i32过度 println!("b{:p}", b); unsafe {*b1; } println!("v{} v1{}"…...

抖音视频关键词无水印下载软件|手机网页视频批量提取工具

全新视频关键词无水印下载软件&#xff0c;助您快速获取所需视频&#xff01; 随着时代的发展&#xff0c;视频内容已成为人们获取信息和娱乐的重要途径。为了方便用户获取所需视频&#xff0c;推出了一款功能强大的视频关键词无水印下载软件。该软件主要功能包括关键词批量提取…...

关于Devc++调试的问题以及解决STL变量无法查看

目前Devc的调试主要有以下几点&#xff1a; 1.调试不能直接查看stl变量&#xff0c;会卡死不动 2.目前单步进入只能用鼠标键按 3.若想按下一步进入函数体内&#xff0c;要在函数体内打上断点才行 4.调试到return 0 ;上一句就停了&#xff0c;不会结束程序 5.目前F2跳至断点…...

MATLAB:优化与规划问题

一、线性规划 % 线性规划&#xff08;Linear programming, 简称LP&#xff09; fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…...

Oracal执行计划解析

概述 | Id | Operation | Name | Rows | Bytes | TempSpc | Cost (%CPU) | Time | ----------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1…...

对form表单对象中数组中的字段进行校验的方法

当对form表单中&#xff0c;数组readings中的字段进行校验时&#xff0c;prop和rules绑定要写成动态的&#xff0c;如下代码 <div v-for"(item,index) in form.readings"><el-form-item label"上次读数" > <!--prop"scds"-->…...

一、JAVA集成海康SDK

JAVA集成海康SDK 文章目录 JAVA集成海康SDK前言一、项目依赖 jar1. examples.jar2. 项目依赖 jna.jar,可以通过 maven依赖到。二、集成SDK1.HcNetSdkUtil 海康 SDK封装类2.HCNetSDK3.Linux系统集成SDK三、总结前言 提示:首先去海康官网下载 https://open.hikvision.com/dow…...

PAT 乙级 1031 查验身份证 c语言实现

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#xff0c;2&#xff0c;1&am…...

LeetCode 345. 反转字符串中的元音字母

给你一个字符串 s &#xff0c;仅反转字符串中的所有元音字母&#xff0c;并返回结果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’&#xff0c;且可能以大小写两种形式出现不止一次。 示例 1&#xff1a; 输入&#xff1a;s “hello” 输出&#xff1a;“holl…...

go中函数与方法的区别与go中关于面向对象理解

声明方法的区别 函数是一段可以独立调用的代码块&#xff0c;它可以有参数和返回值。函数的声明不依赖于任何类型&#xff0c;可以直接通过函数名进行调用。 函数的声明格式如下&#xff1a; func functionName(parameters) returnType {// 函数体 }示例&#xff1a; func A…...

SQL Server 实验二:数据库视图的创建和使用

目录 第一关 相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表 编程要求 第一关实验代码&#xff1a; 第二关 相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点 操作视图 创建视图 通过视图向基本表中插入数据 通过视图修改基本表的…...

树结构导入

Testpublic void testExcel1() {// 写法1&#xff1a;JDK8 ,不用额外写一个DemoDataListener// since: 3.0.0-beta1EasyExcelFactory.read(new File("C:\\Users\\Admin\\Desktop\\树导入.xlsx"), null, new ReadListener<Map>() {public static final int BATC…...

Promise封装ajax

Promise封装原生ajax 1.node的内置模块url, http 2.Promise封装原生ajax 01-node的内置模块 # url: 操作网址 let url require(url) url.parse(网址, [布尔值: 决定是否将查询字符串转换为对象格式])&#xff1a; 将网址解析成对象# http: 创建本地服务器 let http requi…...

47 vue 常见的几种模型视图不同步的问题

前言 这里主要是来看一下 关于 vue 中的一些场景下面 可能会出现 模型和视图 不同步更新的情况 然后 这种情况主要是 vue 中的对象 属性没有响应式的 setter, getter 然后 我们这里就来看一下 大多数的情况下的一个场景, 和一些处理方式 当然 处理方式主要是基于 Vue.set, …...

以太网/USB 数据采集卡 24位16通道 labview 256K同步采样

XM7016以太网SUB数据采集卡 XM7016是一款以太网/USB高速数据采集卡&#xff0c;具有16通道真差分输入&#xff0c;24位分辨率&#xff0c;单通道最高采样率256ksps. 16通道同步共计4.096Msps、精密前置增益放大、集成IEPE/ICP硬件支持的特点。本产品采用了多个高精度24位ADC单元…...

python基础 | 核心库:PIL

1、读取图像信息 查看图像信息 读取同一文件夹下的文件 可加 ./可不加 rom PIL import Image img Image.open(image.jpg) # 打开图像文件(注意:是去掉文件头的纯数据) print(img.format) # 图像格式(如BMP PNG JPEG 等) print(img.size) # 图像大小(…...

#Linux系统编程(共享内存)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;什么是共享内存 共享内存是System V版本的最后一个进程间通信方式。共享内存&#xff0c;顾名思义就是允许两个不相关的进程访问同一个逻辑…...

蓝桥杯备考随手记: practise01

问题描述: 小明对数位中含有 2、0、1、9 的数字很感兴趣&#xff0c;在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40&#xff0c;共 28 个&#xff0c;他们的和是 574。 请问&#xff0c;在 1 到 2019 中&#xff0c;所有这样的数的和是多少&#xff1f; 思路分析…...

【openGL4.x手册09】转换反馈

目录 一、说明二、着色器设置2.2 捕获的数据格式2.2 高级交错2.3 双精度和对齐2.4 In-shader规范 三、缓冲区绑定四、反馈过程五、反馈对象5.1 反馈暂停和恢复5.2 绑定暂停的反馈对象。 六、反馈渲染七、局限性 一、说明 转换反馈是捕获由顶点处理步骤生成的基元的过程&#xf…...

记录一次报错提示npx update-browserslist-db@latest

1&#xff0c;定位文件夹位置 找到HBuilderX的安装目录, cmd切换到HBuilderX/plugins/uniapp-cli下 删除node_modules以及package-lock.json 在当前目录执行npm install 重新打开HBuilderX运行 2&#xff0c; 删除后&#xff0c;再次通过hbuilderX启动微信小程序&#xff0c;会…...

【Go】二、Go的基本数据类型

文章目录 0、进制1、变量的声明2、数据类型3、整型4、浮点型5、字符类型6、布尔类型7、字符串类型8、基本数据类型的默认值9、类型转换10、基本类型转String11、String转其他类型 0、进制 N进制&#xff0c;逢N进一 1、变量的声明 //声明 赋值 var age int 18//声明、赋值、…...

做网站和游戏是如何赚钱/百度排名服务

实现了一个简单的char二维数组函数&#xff0c;传入二维数组&#xff0c;打印二维数组的内容。 #include <cstdio>#define VEINKAPI __callback #define IN typedef int YNHANDLE;VEINKAPI void PrepareList(IN int fingercount, IN char **fingerlist, IN char** nameli…...

dede手机网站跳转/网页设计制作教程

很久很久以前我是个.net程序媛&#xff0c;几年前也做过一些php的项目&#xff0c;不过我大部分时间都是一个前端设计师(工程师)。本来我想自己写api&#xff0c;但是一上手&#xff0c;才发现&#xff0c;忘了。。。99%忘了&#xff0c;孕傻害死人。算了呢&#xff0c;就用小程…...

wordpress 主题 保存/人工智能培训班收费标准

树的遍历 Description 给定某二叉树的前序序列和中序序列&#xff0c;输出该二叉树的后序序列。&#xff08;输入的前序遍历和中序遍历的结果中都不含重复的数字&#xff09; 第一行是n 接下来一行有n个数表示前序序列 最后一行是中序序列 对于30%的数据&#xff0c;n<20…...

为什么使用html5网站/沈阳seo优化

常见的集合如下:在集合框架中&#xff0c;有些类是线程安全的&#xff0c;这些都是jdk1.1中的出现的。在jdk1.2之后&#xff0c;就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类&#xff1a;vector&#xff1a;就比arraylist多了个同步化机制(线程安全)&#xff…...

2023年免费进入b站/免费域名注册平台有哪些

学习web编程的方法&#xff1a;1、学习html和css&#xff1b;2、学习javascript&#xff1b;3、了解web服务器&#xff1b;4、学习一门服务器端脚本语言&#xff1b;5、学习数据库及SQL语法&#xff1b;6、学习web框架。如何学习web开发&#xff0c;需要掌握哪些方面&#xff1…...

用户体验好网站/seo推广方法有哪些

迎接新的开始&#xff0c;2021沉淀 蜕变 静心 修炼&#xff01;...