Apache Hive--DML--insert&多重插入&动态分区| 学习笔记

简介: 快速学习Apache Hive--DML--insert&多重插入&动态分区

发者学堂课程【大数据Hive教程精讲Apache Hive--DML--insert&多重插入&动态分区】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/90/detail/1376


Apache Hive--DML--insert&多重插入&动态分区

 

简介:

1.   Lnsert

2.   Multi lnserts多重插入

3.   Dynamic partition inserts动态分区插入

 

Lnsert:

Hiveinsert 主要是结合 Select 查询语句使用,将查询结果插入到表中,例如:insert overwrite table stu_buck

select * from student cluster by(Sno);

需要保证查询结果列的数目和需要插入数据表格的列数目一致.

如果查询出来的数据类型和插入表格对应的列数据类型不一致,将会进行转换,但是不能保证转换一定成功,转换失败的数据将会为 NULL

可以将一个表查询出来的数据插入到原表中,结果相当于自我复制了一份数据。


Multi lnserts多重插入:

from source_table

insert overwrite tabletablename1 [partition (partcol1=val1,partclo2=val2)]

select_statement1

insert overwrite tabletablename2 [partition (partcol1=val1,partclo2=val2)]

select_statement2..


Dynamic partition inserts动态分区插入:

INSERT OVERWRITE TABLE tablename PARTITION (partcol1[=val1], partcol2[=val2] ...)select_statement FROM from_statement

2.png

3.png

[root@node-1 hivedata]# rzrz waiting to receive.

starting zmodem transfer. Press ctr1+c to cance1.Transferring students.txt....

100%   526 bytes    526 bytes/sec  00:00:01  o Errors

[root@node-1 hivedata]# hadoop fs -mkdir /stu

[root@node-1 hivedataj# hadoop fs -put students.txt /stu

[root@node-1 hivedata]# vi a

动态分区是通过位置来对应分区值的。原始表select出来的值和输出 partition的值的关系仅仅是通过位置来确定的,和名字并没有关系。

动态分区插入

set hive.exec.dynamic.partition=true;-#是否开启动态分区功能,默认false关闭。

set hive.exec.dynamic.partition.mode=nomstrict;动态分区的模式,默认strict,表示必须指定至少一个分区为静态

需求:

dynamic_ partition_table中的数据按照时间(day),插入到目标表d p t的相应分区中。

原始表:

create table dynamic_partition_table(day string, ip string)row format delimited fields terminated by " ,";

load data local inpath '/root/hivedata/dynamic _partition_table.txt' into table dynamic partition_table;

2015-05-10,ip1

2015-05-10,ip2

2015-06-14,ip3

2015-06-14,ip4

2015-06-15,ip1

2015-06-15,ip2

目标表:

create table d_p_t(ip string) partitioned by (month string,day string);

动态插入:

insert overwrite table d_p_t partition (month, day)

select ip, substr (day,1,7) as month, day

from dynamic partition_table;

查询结果导出到文件系统

3、将查询结果保存到指定的文件目录(可以是本地,也可以是hdfsinsert overwrite local directory '/home/hadoop/test'

select * from t_p;

5.png

相关文章
|
1月前
|
SQL Apache HIVE
一文彻底掌握Apache Hudi的主键和分区配置
一文彻底掌握Apache Hudi的主键和分区配置
57 0
|
27天前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
30天前
|
SQL JSON 算法
hive学习笔记
hive学习笔记
|
1月前
|
SQL 分布式计算 Java
Apache Hudi与Hive集成手册
Apache Hudi与Hive集成手册
60 0
|
6月前
|
存储 SQL 算法
一文教你玩转 Apache Doris 分区分桶新功能|新版本揭秘
一文教你玩转 Apache Doris 分区分桶新功能|新版本揭秘
91 0
|
7月前
|
SQL 关系型数据库 MySQL
Hive报错:HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
Hive报错:HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
141 0
|
3月前
|
SQL 分布式计算 安全
HIVE启动错误:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeExcept
HIVE启动错误:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeExcept
130 0
|
4月前
|
SQL 存储 Apache
流数据湖平台Apache Paimon(四)集成 Hive 引擎
流数据湖平台Apache Paimon(四)集成 Hive 引擎
138 0
|
4月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
251 0
|
4月前
|
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
102 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE

推荐镜像

更多