sqoop使用

news2024/11/24 15:58:57

sqoop使用

    • 1. 导入数据
    • 2. 从mysql向hive导入数据
      • 2.1 导入用户信息表
    • 2.导入订单表
      • 2.2 导入订单表
      • 2.3 导入商品信息表
      • 2.4 导入国家信息表
      • 2.5 导入省份信息表
      • 2.6 导入城市信息表
      • 2.7 创建hive临时表文件

在使用sqoop之前,需要提前启动hadoop, yarn和对应的数据库mysql

1. 导入数据

在sqoop中,导入的概念是从非大数据集群(关系型数据库向大数据集群(thdfs,hive]中传输数据,使用import关键字

2. 从mysql向hive导入数据

2.1 导入用户信息表

sqoop import  \
--connect jdbc:mysql://bigdata03:3306/mall \
--username root  \
--password 111111 \
--table t_user_info \
--num-mappers 1 \
--hive-import  \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table mall_bigdata.ods_user_info

里面的 \ 是代表换行符,这里指令可以写在一行,也可以使用换行符将参数部分分来来写,显得更加直观,num-mappers是指定mapper任务个数,这里表只有一个,数据量也少,任务可以设为1,当表多,数据量大时,可以适当增大num-mappers参数,fields-terminated-by是指定分隔符

注:bigdata03虚拟机会开两个tab窗口,一个用于输入相关shell命令,一个用于开启hive命令行界面进行相关数据查询等。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

hive 导入完成

在这里插入图片描述

查看导入的用户信息表数据

select * from mall_bigdata.ods_user_info;

在这里插入图片描述

2.导入订单表

2.2 导入订单表

sqoop import  \
--connect jdbc:mysql://bigdata03:3306/mall \
--username root  \
--password 111111 \
--table t_sale_order \
--num-mappers 1 \
--hive-import  \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table mall_bigdata.ods_sale_info

在这里插入图片描述

查看导入的订单表数据

select * from mall_bigdata.ods_sale_info;

在这里插入图片描述

2.3 导入商品信息表

sqoop import  \
--connect jdbc:mysql://bigdata03:3306/mall \
--username root  \
--password 111111 \
--table dim_goods_info \
--num-mappers 1 \
--hive-import  \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table mall_bigdata.dim_goods_info

在这里插入图片描述

select * from mall_bigdata.dim_goods_info;

在这里插入图片描述

2.4 导入国家信息表

sqoop import  \
--connect jdbc:mysql://bigdata03:3306/mall \
--username root  \
--password 111111 \
--table dim_country_info \
--num-mappers 1 \
--hive-import  \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table mall_bigdata.dim_country_info

在这里插入图片描述

select * from mall_bigdata.dim_country_info;

在这里插入图片描述

2.5 导入省份信息表

sqoop import  \
--connect jdbc:mysql://bigdata03:3306/mall \
--username root  \
--password 111111 \
--table dim_province_info \
--num-mappers 1 \
--hive-import  \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table mall_bigdata.dim_province_info

在这里插入图片描述

select * from mall_bigdata.dim_province_info;

在这里插入图片描述

2.6 导入城市信息表

sqoop import  \
--connect jdbc:mysql://bigdata03:3306/mall \
--username root  \
--password 111111 \
--table dim_city_info \
--num-mappers 1 \
--hive-import  \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table mall_bigdata.dim_city_info

在这里插入图片描述

select * from mall_bigdata.dim_city_info;

在这里插入图片描述
创建tmp_dwd_user_info.sql 并上传到 /opt/file

-- 切换hive的数据库
use mall_bigdata;

-- 补全用户信息表中的国家名称,省份名称和城市名称
create table if not exists mall_bigdata.tmp_dwd_user_info
as
select
	 user_id
	,user_name
	,sex
	,age
	,country_name
	,province_name
	,city_name
from
(select
	 user_id
	,user_name
	,sex
	,age
	,country_code
	,province_code
	,city_code
from ods_user_info
) a
left join
(select
	country_code
	,country_name
	from dim_country_info
) b
on a.country_code=b.country_code
left join
(select
	province_code
	,province_name
	,country_code
	from dim province_info
) c
on a.province_code=c.province_code and a.country_code=c.country_code
left join
(select
	city_code
	,city_name
	,province_code
	from dim_city_info
) d
on a.city_code=d.city_code and a.province_code=d.province_code;

在这里插入图片描述

2.7 创建hive临时表文件

创建hive临时表文件tmp_dwd_user_info.txt

-- 切换hive的数据库
use mall_bigdata;

-- 补全用户信息表中的国家名称,省份名称和城市名称
create table if not exists mall_bigdata.tmp_dwd_user_info
as
select
	 user_id
	,user_name
	,sex
	,age
	,country_name
	,province_name
	,city_name
from
(select
	 user_id
	,user_name
	,sex
	,age
	,country_code
	,province_code
	,city_code
from ods_user_info
) a
left join
(select
	country_code
	,country_name
	from dim_country_info
) b
on a.country_code=b.country_code
left join
(select
	province_code
	,province_name
	,country_code
	from dim_province_info
) c
on a.province_code=c.province_code and a.country_code=c.country_code
left join
(select
	city_code
	,city_name
	,province_code
	from dim_city_info
) d
on a.city_code=d.city_code and a.province_code=d.province_code;

执行该hive文件

在这里插入图片描述

select * from tmp_dwd_user_info;

在这里插入图片描述

创建hive表文件dwd_sale_order_detail.sql到 /opt/file/目录

-- 切换hive的数据库
use mall_bigdata;

-- 补全用户信息表中的国家名称,省份名称和城市名称
create table if not exists mall_bigdata.tmp_dwd_user_info
as
select
	 user_id
	,user_name
	,sex
	,age
	,country_name
	,province_name
	,city_name
from
(select
	 user_id
	,user_name
	,sex
	,age
	,country_code
	,province_code
	,city_code
from ods_user_info
) a
left join
(select
	country_code
	,country_name
	from dim_country_info
) b
on a.country_code=b.country_code
left join
(select
	province_code
	,province_name
	,country_code
	from dim_province_info
) c
on a.province_code=c.province_code and a.country_code=c.country_code
left join
(select
	city_code
	,city_name
	,province_code
	from dim_city_info
) d
on a.city_code=d.city_code and a.province_code=d.province_code;


--补全订单表中的商品名称
--过滤国家名称为中国的订单记录
create table if not exists mall_bigdata.dwd_sale_order_detail
as
select
	sale_id,
	a.user_id,
	user_name,
	sex,
	age,
	country_name,
	province_name,
	city_name,
	a.goods_id,
	goods_name,
	price,
	sale_count,
	total_price,
	create_time
from
(select
	sale_id
	,user_id
	,goods_id
	,price
	,sale_count
	,total_price
	,create_time
from ods_sale_order) a
left join
(
	select
		goods_id
		,goods_name
	from dim_goods_info
) b
on a.goods_id=b.goods_id
left join
(
	select
		user_id
		,user_name
		,sex
		,age
		,country_name
		,province_name
		,city_name
	from tmp_dwd_user_info
)c
on a.user_id=c.user_id
where country_name='中国';

--删除临时表
--drop table if exists mall_bigdata.tmp_dwd_user_info;



执行该sql文件

hive -f dwd_sale_order_detail.sql

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

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

相关文章

当音乐遇上Python:用Pydub自动分割音频

🎵 🎵 🎵 当音乐遇上Python:用Pydub自动分割音频 随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选择一首长…

倒立摆控制器的设计(分别用极点配置,LQR方法,Robust H-无穷方法)

G01倒立摆控制器设计 Author:DargonNote date:2020/12/13课程用书:LMIs in Control Systems Analysis,Design and Applications 1,倒立摆控制系统简介 倒立摆系统是一个复杂的控制系统,具有非线性、强耦合、多变量、不稳定等特…

干货 | 正念,寻求属于你的存在之道

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 你是否也曾感到内心无法平静?如果是,不妨了解一下正念,它或许能为你带来改变。 正念作为一种古老的修行方式,如今已经在世界范围内广为流传,…

《Netty》从零开始学netty源码(四十九)之PoolArena

目录 PoolArenaallocate()创建newByteBuf()分配具体的内存空间allocate() PoolArena Netty中分配内存是委托给PoolArena来管理的,它主要有两个实现类: 默认情况下使用的DirectArena,它的数据结构如下: 从属性中我们看到PoolA…

人生若只如初见,你不来看看Django吗

前言 本文介绍python三大主流web框架之一的Django框架的基本使用,如何创建django项目,如何运行django项目以及django项目的目录结构,另外django又是如何返回不同的数据和页面? python三大主流web框架 Python有三大主流的web框架…

JS手写实现Promise.all

Promise.all() 方法接收一个 Promise 对象数组作为参数,返回一个新的 Promise 对象。该 Promise 对象在所有的 Promise 对象都成功时才会成功,其中一个 Promise 对象失败时,则该 Promise 对象立即失败。 本篇博客将手写实现 Promise.all() 方…

用于scATAC-seq有监督分类的Cellcano

细胞类型识别是单细胞数据分析的基本步骤。由于高质量参考数据集的可用性,有监督细胞分类方法在scRNA-seq数据中很受欢迎。染色质可及性分析(scATAC-seq)的最新技术进步为理解表观遗传异质性带来了新的见解。随着scATAC-seq数据集的不断积累&…

第二节课 Linux和shell命令之文件管理与常用命令

命令执行,没有图形页面 文件权限是重点 1.目录树 windous分盘 CDEF 在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是 从“根(/)”目录开始的,并按照文件系统层次化标准(Filesystem Hie…

C++:计算机操作系统:多线程:高并发中的线程

高并发中的线程 一切要从CPU说起PC 程序计数器从CPU到操作系统从进程到线程 从这篇开始,我将会开启高性能,高并发系列,本篇是给系列的开篇,主要关注 多线程以及线程池。 一切要从CPU说起 你可能会有疑问,讲多线程为何…

西门子AmeSim车辆仿真软件在新能源汽车开发中的应用-软件AmeSim2021版分享

利用Simcenter Amesim提高系统仿真产品设计效率,Simcenter Amesim是一个全球领先的集成、可扩展的机、电、液系统仿真平台。它允许设计工程师虚拟评估和优化系统性能。 提高系统仿真效率 Simcenter Amesim是一个领先的集成、可扩展的系统仿真平台,允许…

汇编语言学习笔记一

常用寄存器类型 通用寄存器 AX,BX,CX,DX,这四个寄存器都是16位的 他们也可以拆分为2个8位的寄存器,如AX可以拆分为AH和AL两个8位的寄存器,其它三个也可以如此。 通用寄存器的使用比较简单,如 …

【HTML5笔记】HTML5语义化标签、音视频标签、表单标签属性

目录 一、HTML5学习 1.1、HTML5语法 1.2、语义化标签 1.3、音视频标签 (1)音频标签 (2)视频标签 1.4、input标签type属性 1.5、datalist数据列表 1.6、表单属性 一、HTML5学习 1.1、HTML5语法 HTML5增加了很多的新标签…

【SpringBoot】自定义策略的静态资源访问

文章目录 新建static文件夹,存储图片等资源方式一 Java编码定义方式二 配置中定义 新建static文件夹,存储图片等资源 项目版本信息:SpringBoot版本为2.3.3.RELEASE,JDK1.8 方式一 Java编码定义 配置类实现WebMvcConfigurer接口&…

【五一创作】spring boot starter 编写自己的starter

spring boot starter 编写自己的starter 陈钊 2023-5-1 源码地址: https://gitcode.net/qq_39339588/my-spring-boot-starter.git 封装my-spring-boot-starter 新建springboot工程,来封装为自己的spring-boot-starter 包名,随便写&#xff0…

基于电流控制的并网逆变器(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

操作系统:文件系统

文件系统 文件保护 文件的保护通过口令保护、加密保护、和访问控制等方式实现。其中,口令和加密是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。 口令保护 口令指用户在建立一个文件时提供一个口令,系统…

算法套路十四——动态规划之背包问题:01背包、完全背包及各种变形

算法套路十四——动态规划之背包问题:01背包、完全背包及各种变形 算法示例一——0/1背包: 0-1背包:有n个物品,第i个物品的体积为w[i],价值为v[i],每个物品至多选一个, 求体积和不超过capacity时的最大价值…

【状态机dp之 股票买卖 题型系列 帮你学懂 状态机】股票买卖(1-6道题)

股票买卖 股票买卖 1这道题就是求max {ai−aj|j<i} 股票买卖 2股票买卖 3方法一&#xff1a;前后缀拆分dp怎么想到的&#xff1f;方法二&#xff1a;状态机dpf[0/1][i]表示只考虑前i支股票且手头有/没有股票的最大收益 股票买卖 4考虑前 i 天的股票&#xff0c;第 i 天的 决…