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

相关文章
|
7月前
|
SQL Apache HIVE
一文彻底掌握Apache Hudi的主键和分区配置
一文彻底掌握Apache Hudi的主键和分区配置
205 0
|
2月前
|
SQL 分布式计算 Hadoop
Apache Hive 帮助文档
Apache Hive 帮助文档
110 9
|
2月前
|
存储 分布式计算 大数据
大数据-145 Apache Kudu 架构解读 Master Table 分区 读写
大数据-145 Apache Kudu 架构解读 Master Table 分区 读写
51 0
|
4月前
|
SQL 存储 HIVE
hive分区与分桶
hive分区与分桶
72 1
|
5月前
|
SQL DataWorks 监控
DataWorks产品使用合集之同步数据到Hive时,如何使用业务字段作为分区键
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
消息中间件 Kubernetes Kafka
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
78 0
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
|
6月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在进行Hive分区truncate操作时遇到权限不足,怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
88 0
|
6月前
|
存储 SQL 数据管理
基于阿里云数据库 SelectDB 版内核 Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解
自动分区的出现进一步简化了复杂场景下的 DDL 和分区表的维护工作,许多用户已经使用该功能简化了工作流程,并且极大的便利了从其他数据库系统迁移到 Doris 的工作,自动分区已成为处理大规模数据和应对高并发场景的理想选择。
|
7月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
|
7月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记

推荐镜像

更多