字段类型 sqoop_数据迁移工具Sqoop

熬过去,出众。

熬不过,出局。

这是最真实的人生,人都是熬过来的。

Sqoop 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,它是Hadoop环境下连接关系数据库与Hadoop存储系统的桥梁,支持多种关系型数据源和Hive、HDFS、Hbase的相互导入。支持全表导入,也支持增量数据导入机制,Sqoop工作机制利用MapReduce分布式批处理,加快了数据传输速度和容错性。

选择Sqoop理由:

1、可以高效的利用资源,可以通过调整任务数来控制任务的并发度。

2、可以自动地完成数据类型映射与转换。导入的数据是有类型的,它可以自动根据数据库中的类型转换到Hadoop中,当然也可以自定义他们的映射关系。

3、它支持多种数据库,eg:mysql、Oracle、PostgreSQL。

Sqoop工作原理:

Sqoop利用MapReduce并行特点以批处理的方式加快数据传输,从而提供并发特征和容错。Sqoop主要通过jdbc连接关系型数据库,理论上只有关系型数据库支持JDBC都可以使用Sqoop与HDFS进行数据交互。

1、Sqoop从关系型数据库导入HDFS的原理:用户先输入一个Sqoop import 命令,Sqoop会从关系型数据库中获取元数据信息,包括库信息、表有哪些字段及字段类型等,获取信息后会将导入命令转换为基于Map的MapReduce任务。会开启很多map任务,每个map任务读取一部分数据,多个map任务并行完成数据复制到HDFS分布式文件系统上。

7cf9dc4d084c752f8f40073b6104ae36.png

2、Sqoop导出功能原理:用户输入export命令,Sqoop会获取关系型数据表结构信息,建立与Hadoop字段有关系型数据库表字段的映射关系,将命令转换为基于Map的MapReduce作用,生产很多Map任务,并行地从HDFS中读取数据文件,将这个数据复制到数据库中。

a706c83c02060e892e2bb2cdd1be7bf4.png

Sqoop版本和架构

Sqoop存在两个版本,1.4.x和1.99.x,通常简称为sqoop1和sqoop2

Sqoop1架构师使用Sqoop客户端直接提交的方式,访问方式是CLI控制台方式进行访问,在命令或脚本中指定数据库名及密码。

43c65ab5374127d9e45b18f972afc302.png

Sqoop2架构引入了Sqoop Server,集中化管理Connector,提供多种访问方式,如CLI、Web UI、REST API,同时Sqoop2通过CLI方式访问会有一个交互式界面,使输入的密码信息不被看到。

74719aef3a8c94be36e3e445a6e1afb4.png

Sqoop不仅可以用于关系型数据库与HDFS文件系统之间进行数据转换,也可以将数据从关系型数据库传输至Hive或Hbase,而对于数据从Hive或者Hbase 传输到关系型数据库来说,则可以从Hive或者Hbase将数据提取至HDFS,然后使用Sqoop将上一步的输出导入到关系数据库。

使用Sqoop增量导入有append 和 lastmodified两种模式,lastmodified模式区别于apend是可以指定一个时间戳字段,按时间顺序导入,这个模型可以指定增量数据在HDFS的方式,比如最终增量结果为一个文件。

需要在应用的主要参数:

-check-column:指定增量导入的依赖字段,通常为自增的主键id或者时间戳

-incremental:指定导入模式(append 或者lastmodified)

-last-value:指定导入的上次最大值,也是这次的开始值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 删除tag_git使用教程9pycharm 使用 tag 打标签

前言当我们的代码完成了第一阶段的需求,版本稳定后,希望能出个稳定版本。于是在 commit 后需要打个 tag 标签,也就是我们平常说的版本号,如v1.0版本本篇讲解如何使用 pycharm 打 tag 标签,并推送到 github 上&#xff…

模块 python_Python入门基础:模块基础

模块是一个文件(.py文件),包含变量,类定义语句和与特定任务相关的功能。预先装有Python的Python模块称为标准库模块。创建我们的模块我们将创建一个名为tempConversion.py的模块,该模块将值从F转换为C,反之亦然。# tempConversion…

hash地址_深入浅出一致性Hash原理

一、前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用…

go语言io reader_Go语言中的io.Reader和io.Writer以及它们的实现

在使用Go语言的过程中,无论你是实现web应用程序,还是控制台输入输出,又或者是网络操作,不可避免的会遇到IO操作,使用到io.Reader和io.Writer接口。也也许对这两个接口和相关的一些接口很熟悉了,但是你脑海里…

hive 开窗函数_Hive的架构剖析

本文主要介绍Hive的架构和以及HQL的查询阶段,主要内容包括:Hive的架构架构中的相关组件介绍HQL的查询阶段Hive的架构hive的基本架构图如下图所示:相关组件介绍数据存储Hive中的数据可以存储在任意与Hadoop兼容的文件系统,其最常见…

ntr模式_ntr什么意思?求详细解释。。。

展开全部是俚语,表示环境的意32313133353236313431303231363533e59b9ee7ad9431333433623738思。1、语法:(1)可指影响人们生活的各种抽象和具体的“状况,环境”。可以接由that引导的主语从句,从句中的谓语动词一般要用虚拟式(多为动…

小程序switch内部加上文字_文字游戏大全:模拟游戏会长经营公会的小程序,你会管理公会吗?...

40000游戏爱好者已加入我们!每天推荐好玩游戏!加入我们,沐沐带你发现好游戏!《游戏会长》游戏小程序好玩吗?《游戏会长》小游戏怎么玩?只有你想不到,没有我找不到的好游戏!「良心好游…

mysql中将int转为_mysql – 将int转换为varchar

您将需要cast或convert作为CHAR数据类型,没有varchar数据类型,您可以将数据转换/转换为:select CAST(id as CHAR(50)) as col1from t9;select CONVERT(id, CHAR(50)) as colI1from t9;请参见以下SQL – 在操作中 – 在SQL Fiddle:…

php实现第三方邮箱登录_JavaScript实现第三方登录网站原理在这呢

点关注,不迷路,每天更新大量前端资料前端实现第三方登录之OAuth2.0协议OAuth 2.0 规定了四种获得令牌的流程。我们可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式。授权码模式(authorization-code)简化模式(impli…

mysql计算订单总金额_mysql统计当天消费总额

addtime是时间字段shop是数据表subtotal要统计的字段select * from shop where DATE_FORMAT(addtime,%Y-%m-%d)to_days(now()) group by addtime;$daybeginstrtotime(date(Y-m-d));$dayend$daybegin86400;$sql "select sum(subtotal) as pay from shop where addtime <…

pfx证书密码怎么查询_网站是HTTP?10分钟变成HTTPS!域名免费添加配置SSL证书,变成https//环境...

对于小程序request请求需要https域名、navigator.geolocation定位也需要在https环境下才可以生效等问题&#xff1b;前端开发越来越需要https环境来来测试一下API接口和各类问题&#xff0c;今天来讲解一下怎么免费快速把普通的http网站配置升级成https协议。首先向大家介绍一下…

define定义的是什么类型_为什么Django 3后建议使用Field.choices枚举类型定义choices选项...

Django 3.0的主要新增功能之一是对模型字段选择的枚举。它是一种定义和约束模型Field.choices的更好方法。以前在Django模型中通常会通过定义一些“常量”和元组来定义choices&#xff0c;如下所示&#xff1a;from django.db import modelsclass Book(models.Model):UNPUBLISH…

linux卸载openjdk_Linux系列(七)——linux其他指令【rpm、yum、sudo】

1、rpm和yum1.1、介绍rpm: rpm 是由 Red Hat 公司开发的一种软件包管理方式&#xff0c;使用 rpm 我们可以方便的进行软件的安装、查询、卸载等工作&#xff0c;但是使用 rpm 命令安装 rpm 软件包&#xff0c;不能自己解决软件包之间的依赖性问题&#xff0c;需要自己一个一个去…

mysql 为数据表添加字段_MySQL数据表添加字段实例

MySQL 允许在开头、中间和结尾处添加字段。针对不同的位置&#xff0c;MySQL数据表添加字段的方式也有所不同&#xff0c;下面我们一起来看MySQL数据表添加字段的实例&#xff0c;方便我们理解MySQL数据表添加字段的方式。MySQL数据表添加字段分为开头、 中间和末尾三种情况&am…

postgresql 客户端_一款功能强大的数据库客户端:DataGrip

前言在我们日常的程序开发中&#xff0c;很大一部分时间是在与数据库打交道。查数据&#xff0c;导数据&#xff0c;检查SQL执行计划&#xff0c;优化SQL等&#xff0c;是我们数据库开发工作的重要组成部分&#xff0c;而且很多时候我们会使用到多款数据库&#xff0c;如Oracle…

mysql主从同步报错_mysql主从同步报错

主从不同步&#xff0c;经查看发现如下报错Last_Errno: 1666​Last_Error: Error executing row event: Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT STATEMENT.问题原因&#xff1a;主从复制&#xff…

java 等待几秒_问懵逼:请站在 JVM 角度谈谈 Java 的锁?

存在的问题自旋锁自适应自旋Java 对象的内存布局(重要)synchronized 锁升级流程偏向锁轻量级锁重量级锁可重入悲观锁(互斥锁、排他锁)《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解…

python定义test方法_向python/django失败的测试方法的详细信息中添加自定义/调试消息的任何方法unittest.TestCase?...

通常&#xff0c;您希望从django的unittest类TestCase继承&#xff0c;可以从django.测试. 也就是说&#xff0c;您可以将msg参数传递给您要评估的任何内容&#xff0c;其中包含失败消息。在以下是“人性化”的一个例子&#xff1a;class HumanizeTests(TestCase):def humanize…

mysql 创建新用户权限_MySQL创建新用户以及权限授予

1.通过mysql数据库的user表查看用户相关信息mysql> use mysql;mysql> select host,user from user;查看用户相关信息2.创建数据库mysql> create database [databasename] default character set utf8 collate utf8_general_ci;3.创建新用户mysql> create user user…

中秋祝福网页_中秋客户维系关怀,该送客户什么礼品?

企业节日礼品是企业间或者商务伙伴之间相互传达美好情意的一种体现&#xff0c;无论是送领导、送员工、还是送合作伙伴&#xff0c;礼品定制都需要根据不同赠送对象来细心选择。如果想要礼品有创意同时又能表达企业理念&#xff0c;进而达到宣传推广或者品牌认知提升的效果&…