导入 Import--全量数据导入 Hive | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习 导入 Import--全量数据导入 Hive

开发者学堂课程【Sqoop 企业级大数据迁移方案实战导入 Import--全量数据导入 Hive】学习笔记,与课程紧密联系,让用户快速学习知识。

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


导入 Import--全量数据导入 Hive


内容介绍:

一、 方式一:先复制表结构到 hive 中再导入数据

二、 方式二:直接复制表结构数据到 hive

 

sqoo p全量导入 mysql 表数据到 hive 数仓当中,针对 myhive 中进行数据的导入 sqoop 支持两种方式,第一种为先复制表结构在导入数据,他首先根据 mysql 当中表的当关信息,把表的字段、类型创建好,再 hive 中创建同样的数据的表,第二步再执行数据的导入,把数据从 mysql 中导入 hive 对应的数上 location 位于的路径下面。第二种方式比较直接,他可以一步完成表结构的复制和数据的导入,看上去第二种方式要更加方便一点。这两种方式相当于做了一个整合,第二种方式直接一步到位。


一、方式一:先复制表结构到 hive 中再导入数据

将关系型数据的表结构复制到 hive

bin/sqoop create-hive-table\

--connect jdbc:mysql://node-1:3306/sqoopdb\

--table emp_add\(固源的地址信息表,来自于哪个层次及多少号)

--username root\(用户名是 root

--password hadoop\(密码)

--hive-table test.emp _add _sp\

其中:

--table emp_add mysql 中的数据库 sqoopdb 中的表

--hive-table test.emp _add _sp hive 中新建的表名称

从关系数据库导入文件到 hive

首先复制表结构,在 mysql 关系型数据库当中有数据库和表,表当中有两种类型,在 hive 数仓当中,他也存在所谓的表,只不过他是一个面向分析的,他要干的第一件事情就是就是把表的字段有几个,什么顺序,什么类型复制过来。

首先使用 bin/sqoop 之后加的参数不是 import  而是 create-hive-table 创建 hive 表,要想把信息描述清楚,需要知道 mysql 的地址,用户名密码, mysql 数据库中哪个表等属性, hive 当中创建哪个数据库库哪个表。

emp_add(故源的地址信息表)打开,来自于哪个层次那个阶段多少号。把这个表复制到 hive 中。当前位于 test路径下即 use test,然后 show tables,发现当前并没有这个表。接下来看是否能把这个表复制过来。

image.png

打开脚本,从脚本中复制相关的为例,确保当中的 ip 端口,用户名等于本机环境保持一致,复制完之后打开 sqoop 的终端,这里做一个执行。如下,这样执行第一步,复制表结构,接下来我们需要关心能不能把表结构复制下来,并且以怎样的形式存在,因为 hive mysql 类型不同,执行完成之后,输入 show tables 表名出现,接下来确定一下有没有数据,elect * from emp _add_sp,其中并没有数据,说明只复制了表结构过来,如果想看一下下来的字段类型,需要用 describe 命令(desc formatted)来查询一下表信息,表名叫做emp _add_sp,然后回车,发现表的原数据信息在 hive 中有四个字段 id-inthno-stringstreet-stringcity-string 字符串类型,说明表结构复制过来了,并且根据 hive 类型做了个改变,这样就完成了第一步表结构的复制。

image.png

但是表结构复制过来还没有数据,这时候需要进行第二步叫做把数据导入到 hive 当中,即把数据放入对应的 hive 路径下,通过刚才是云数据信息看到他所创建的这个表 location 位于 hdfs//node-1:9000/user/hive/warehouse/test.db/emp _add _sp 路径下,接下来我们先通过浏览器到这个路径看一下,

image.png

选择 user/hive/warehouse/test.db/emp _add _sp,发现下面根本没有文件,说明数据没有复制过来。

image.png

接下来执行导入数据的操作,导入到 hive-table test.emp _add _sp 表当中

从关系数据库导入文件到 hive

bin/sqoop import\

--connect jdbc:mysql://node-1:3306/sqoopdb\

--username root\

--password hadoop\

--table emp_add\

--hive-table test.emp _add _sp\

--hive-import\(执行 hive 数据的导入)

--m 1(如果不指定,默认一个)

从脚本中把这个命令进行复制,确保当中的 ip 没有问题之后打开 sqoop 做一个执行,这样开始进行一个数据导入到 hive 中的一个操作。第一点在于数据有没有导入成功有没有映射成功数据,第二点在于 hive 中会有什么分隔符存在( hive 解析时需要分隔符进行指定,默认的叫做-001),retrieved 5 records 接收到五条记录,下面显示 hive 导入完成,到处目录已经被删除,说明我们猜想在底层已经把数据导入,最终移动到 hive 应的路径下。

验证表中数据信息是否存在,首先表的结构复制过来了,在查询路径数据中进行刷新,发现文件已经复制过来了。做个对比,发现没有问题。

image.png

发现文件已经导入过来了,然后选择 download ,已经在 m 当中默认分隔符为逗号,那么在 hive 中分隔符为不可见分隔符,叫做-001,就是 hive 的默认分隔符,说明数据已经导入进来。

image.png


二、方式二:直接复制表结构数据到 hive

(一步完成表结构的复制和数据的导入)

bin/sqoop import\

--connect jdbc:mysql://node-1:3306/sqoopdb\

--username root\

--password hadoop\

--table emp_conn\

--hive-import\

--m 1

--hive database test;(往 hive 的数据库中去导入)

image.png

emp_conn 即下图所示信息表

image.png

并没有指定在 hive 中创建的表名,打开脚本做相关的复制,,打开 sqoop 做一个执行,并没有知名创建的表的名字,说明他会自己进行创建。进行 show tables ,表名为 emp-conn ,即默认情况下表名与 mysql 中表名保持一致,直接 select * from emp_conn ,发现数据导入。

采用第一种方式时,复制表结构时可以不用他复制,比如说自己先在hive 中创建一个 hive 的表,在导入时分隔符自己指定,说明人为的干预度更大一些。第二种方式集成度更高一些。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 数据库 HIVE
hive数仓 ods层增量数据导入
根据业务需求,当表数据量超过10万条时采用增量数据导入,否则全量导入。增量导入基于`create_date`和`modify_date`字段进行,并确保时间字段已建立索引以提升查询效率。避免在索引字段上执行函数操作。创建增量表和全量表,并按日期进行分区。首次导入全量数据,后续每日新增或变更数据保存在增量表中,通过全量表与增量表的合并保持数据一致性。
86 13
|
6月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
198 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
6月前
|
SQL 分布式计算 关系型数据库
Sqoop数据导入到Hive表的最佳实践
Sqoop数据导入到Hive表的最佳实践
|
6月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
524 0
|
SQL 分布式计算 分布式数据库
大数据Sqoop借助Hive将Mysql数据导入至Hbase
大数据Sqoop借助Hive将Mysql数据导入至Hbase
241 0
|
SQL 关系型数据库 MySQL
使用Sqoop将HIVE中的数据导入Mysql
使用Sqoop将HIVE中的数据导入Mysql
使用Sqoop将HIVE中的数据导入Mysql
|
SQL 存储 边缘计算
HBase&Hive 2(三)|学习笔记
快速学习 HBase&Hive 2(三)
129 0
HBase&Hive 2(三)|学习笔记
|
SQL 存储 分布式计算
HBase&Hive 2(二)|学习笔记
快速学习 HBase&Hive 2(二)
HBase&Hive 2(二)|学习笔记
|
SQL JSON 数据库
Json 内容转换为 Hive 所支持的文本格式1 | 学习笔记
快速学习 Json 内容转换为 Hive 所支持的文本格式1
218 0
Json 内容转换为 Hive 所支持的文本格式1  |  学习笔记
下一篇
无影云桌面