导出 Export--默认模式导出(Insert)| 学习笔记

简介: 快速学习 导出 Export--默认模式导出(Insert)

开发者学堂课程【Sqoop 企业级大数据迁移方案实战导出 Export--默认模式导出(Insert)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/718/detail/12841


导出 Export--默认模式导出(Insert)


一、默认模式导出

所谓的导出,指的是数据从我们 Hadoop 生态体系来到我们关系型数据库当中,这个过程叫做导出

在进行数据导出有个非常重要的前提,叫做目标表必须存在于目标数据库当中。

export 有三种模式:

默认操作是从将文件中的数据使用 INSERT 语句插入到表中。

更新模式:Sqoop 将生成 UPDATE 替换数据库中现有记录的语句。

调用模式:Sqoop 将为每条记录创建一个存储过程调用。

以下是 export 命令语法:

$sqoop export (generic-args)(ekport-args)

$sqoop export 来进行导出,导出的时候呢,后面需要跟一些参数(例如:generic-argsekport-args

1、默认模式导出 HDFS 数据到 mysql

默认情况下,sqoopexport 将每行输入记录转换成一条 INSERT 语句,添加到目标数据库表中。如果数据库中的表具有约束条件(例如,其值必须唯一的主键列)并且已有数据存在,则必须注意避免插入违反这些约束条件的记录。如果INSERT 语句失败,导出过程将失败。此模式主要用于将记录导出到可以接收这些结果的空表中。通常用于全表数据导出。

导出时可以是将Hive表中的全部记录或者 HDFS 数据(可以是全部字段也可以部分字段)导出到 Mysql 目标表。

1)准备 DFS 数据

HDFS 文件系统中“/emp/”目录的下创建一个文件 emp data.txt:

1201gopalmanager50000TP

1202,manisha,preader,50000,TP

1203kalilphp dev30000AC

1204,prasanthphp dev,30000AC

1205kranthiadmin20000.TP

1206,satishpgrpdes,20000GR

打开服务器,创建路径,

image.png

将以上数据复制过来,结构化的数据文件,保存,上传到 hadoopfs-put emp_data.txt /emp_data/路径上,

image.png

2)手创 mysq 中的目标表

mysqI> USE userdb;

mysqI>CREATE TABLE employee(

id INT NOT NULL PRIMARY KEY

name VARCHAR(20),

deg VARCHAR(20),

salary INT,

dept varchar(10));

建表语法,创建一个表叫 employee,第一个字段叫 idint 类型,不为空的主键,第二个 name VARCHAR,以上这些类型是 mysql 类型,右键运行刷新,发现左侧多出一张表叫 employee,

image.png

在用 Sqoop 进行导出的时候,你必须自己根据数据提前手动的去创建表结构,你创建什么样决定了你导出能不能成功。

然后执行导出命令:

bin/sqoop export \

--connect jdbc:mysgl://node-1:3306/userdb\

--username root\

--password hadoop\

--table employee\

--export-dir /emp data/

bin 下的 sqoop export 导出,把数据连接到 JDBCmysgl://node-1:3306/userdb 这个地址下,username root 用户名,password hadoop 密码,employee 表名,导出的路径在emp data路径下。

将以上代码复制,运行,刷新,会发现数据已经导入进来了。

image.png

底层执行,打开文件,读一行文件进行切割,往数据库做一个 insert 语句,所以底层就是 insert 插入。

小记:

数据导出操作

1、注意:导出的目标表需要自己手动提前创建也就是sgoop 并不会帮我们创建复制表结构

2、导出有三种模式:

1)默认模式目标表是空表底层把数据一条条 insert 进去

2)更新模式底层是 update 语包

2)调用模式调用存储过程

相关文章
|
7月前
|
前端开发
Antd中Table列表行默认包含修改及删除功能的封装
Antd中Table列表行默认包含修改及删除功能的封装
179 0
|
前端开发 JavaScript
表格插件-bootstrap table的表内查看编辑删除
表格插件-bootstrap table的表内查看编辑删除
116 0
|
JavaScript
VUE之vxe-table高级表格(表格内增删改、导入、导出、自定义打印、列设置隐藏显示等)用法
VUE之vxe-table高级表格(表格内增删改、导入、导出、自定义打印、列设置隐藏显示等)用法
8096 0
VUE之vxe-table高级表格(表格内增删改、导入、导出、自定义打印、列设置隐藏显示等)用法
|
7月前
MFC编程 -- 保存和读取列表框内容
MFC编程 -- 保存和读取列表框内容
91 1
|
7月前
|
C++
MFC编程 -- 列表删除单行及多行操作
MFC编程 -- 列表删除单行及多行操作
96 1
|
7月前
|
XML Java BI
​ 文件导出
​ 文件导出
49 1
vxe-table可编辑状态默认显示下拉选select为默认展示
vxe-table可编辑状态默认显示下拉选select为默认展示
|
JavaScript
js根据内容让select默认选中
js根据内容让select默认选中
|
JavaScript
【ES6】模块化语法(默认、按需导入import导出export的操作)
ES6模块化语法(默认、按需导入导出的操作)
【ES6】模块化语法(默认、按需导入import导出export的操作)
|
存储 机器学习/深度学习 分布式计算
导出 Export--默认模式导出(Insert)--配置参数 | 学习笔记
快速学习 导出 Export--默认模式导出(Insert)--配置参数
350 0
导出 Export--默认模式导出(Insert)--配置参数 | 学习笔记