使用windows安全认证连接mysql 如何用sqoop将hive分区表信息导入到mysql命令?
如何用sqoop将hive分区表信息导入到mysql命令?
问题分析:
hive中分区表的底层是HDFS多个目录下的单个文件,hive导出数据的本质是导出HDFS的文件。
hive中的分区表,因为分区字段(静态分区)不在文件中,所以在导出sqoop时不能直接导出。
思路:在hive中创建一个临时表,复制分区表,然后将分区字段转换成普通字段,再用sqoop导出tmp表,实现需求。
步骤如下:
文章目录
1.创建目标表(分区表)
1.1查看表格结构
2.输入数据
3.查询表dept_partition
4.创建临时表。
5.查询临时表
6.检查表结构(此时,分区表已经转换为非分区表)
钟健表部门_分区
8.使用sqoop导入到MySQL。
查询验证已成功导出。
1.创建目标表(分区表)
hivegt创建表` dept_partition `(
` deptno` int,
` dname ;字符串,
` loc ;字符串)
由(` month` string)行格式分隔的字段以t结尾
一个
2
三
四
五
一个
2
三
四
五
1.1查看表格结构
hivegt显示创建表dept_partition
一个
一个
- -
| createtab_stmt |
- -
|创建表“dept _ partition ”(|
| `deptno` int,|
| `dname ;字符串,|
| `loc` string) |
|分区者(|
| `月`字符串)
一个
2
三
四
五
六
七
八
九
一个
2
三
四
五
六
七
八
九
2.输入数据
hivegt将path/user/hive/hive _ db/data/dept . txt中的数据加载到表dept_partition中
一个一个
10会计1700
20研究1800
30销售1900
40操作1700
一个
2
三
四
一个
2
三
四
3.查询表dept_partition
hivegt select * from dept _ partition
一个
一个
- - - - -
| dept _ | dept _ partition . dname | dept _ partition . loc | dept _ |
- - - - -
| 10 |会计| 1700 | 2019-10-19 |
| 20 |研究| 1800 | 2019-10-19 |
| 30 |销售| 1900 | 2019-10-19 |
| 40 |运营| 1700 | 2019-10-19 |
| 10 |会计| 1700 | 2019-10-20 |
| 20 |研究| 1800 | 2019-10-20 |
| 30 |销售| 1900 | 2019-10-20 |
| 40 |运营| 1700 | 2019-10-20 |
- - - - -
一个
2
三
四
五
六
七
八
九
10
11
12
一个
2
三
四
五
六
七
八
九
10
11
12
4.创建临时表。
hivegt将表tmp_dept_partition创建为select * from dept_partition
一个
一个
5.查询临时表
hivegt select * from临时部门分区
一个
一个
- - - - -
| tmp _ dept _ | tmp _ dept _ partition . dname | tmp _ dept _ partition . loc | tmp _ dept _ |
- - - - -
| 10 |会计| 1700 | 2019-10-19 |
| 20 |研究| 1800 | 2019-10-19 |
| 30 |销售| 1900 | 2019-10-19 |
| 40 |运营| 1700 | 2019-10-19 |
| 10 |会计| 1700 | 2019-10-20 |
| 20 |研究| 1800 | 2019-10-20 |
| 30 |销售| 1900 | 2019-10-20 |
| 40 |运营| 1700 | 2019-10-20 |
- - - - -
一个
2
三
四
五
六
七
八
九
10
11
12
一个
2
三
四
五
六
七
八
九
10
11
12
6.检查表结构(此时,分区表已经转换为非分区表)
hivegt显示创建表tmp_dept_partition
一个
一个
- -
| createtab_stmt |
-- -
|创建表“tmp _ dept _ partition ”(|
| `deptno` int,|
| `dname ;字符串,|
| `loc ;字符串,|
| `月`字符串)
一个
2
三
四
五
六
七
八
一个
2
三
四
五
六
七
八
钟健表部门_分区
如果存在dept_partition,mysqlgt将删除表
创建表dept_partition(
` deptno` int,
` dname ; varchar(20),
` loc ; varchar(20),
` month ; varchar(50))
一个
2
三
四
五
六
一个
2
三
四
五
六
8.使用sqoop导入到MySQL。
bin/sqoop导出
-连接JDBC :mysql://Hadoop 01 : 3306/partitionb
-用户名root
-密码123456
-表部门分区
-映射器数量1
-
为什么oracle需要配置而mysql不需要?
因为orcle需要解压和必要时的,所以它需要配置,但mysql不需要 t.
与以未压缩格式存储数据相比,新的Oracle数据压缩技术可以确保以更少的开销节省三倍以上的磁盘存储空间。这比仅仅节省磁盘空间有更大的优势,因为它可以让企业节省更多的开支,以便有更多的资金来巩固自己的地位。
自动诊断库(ADR)是严重错误的知识库。知识库基本可以自动完成一些过去由数据库管理员手工完成的操作。
作为ADR的一部分,SQL性能分析器(SPA)是最令人惊讶的特性之一。SQL性能分析器是一个整体调整工具,管理员可以通过它来调整数据。在数据库上定义并重放一个典型的工作负载,然后管理员就可以调整整体参数,使数据库尽快达到最佳性能——而这个任务也是数据库管理员多年来手工完成的。
由于获得了最优的初始参数,数据库管理员不需要调整数万条SQL语句。管理员需要做的就是给出一个典型的负载,SPA会根据历史来决定SQL的最终设置,而不需要管理员测试哪个SQL设置最合理。
多年来,甲骨文一直试图完成的另一个新功能是 "在线更新 "(不关机更新软件)。事实上,从软件工程的角度来看,设计一个可以在运行时自动升级的软件是很难的。由于Real Application Clusters (RAC)的特性,甲骨文公司再次向其他数据库供应商施加了更大的压力。在实际使用过程中,数据库产品的用户总是希望产品具有持续的高可用性,并不意味着在下一次补丁更新之前的三年就足够满足了。
自动内存管理的特性可以追溯到Oracle 9i,当时甲骨文推出了第一个自动调整存储池的工具。AMM工具实际上是一种检测机制。实际上,Oracle 11g有许多随机存取存储池。当存储管理模式(AMM)检测到存储池已满时,它将整个随机存取存储器(RAM)从一个区域分配到其他相对合适的区域。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。