1、插入于法 insert into 和insert overwrite

INSERT INTO TABLE tablename1
[PARTITION (partcol1=val1, partcol2=val2 ...)]
select_statement1 FROM from_statement;
INSERT OVERWRITE TABLE tablename1
[PARTITION (partcol1=val1, partcol2=val2 ...)
[IF NOT EXISTS]]
select_statement1 FROM from_statement;

INSERT INTO用于附加数据到配置单元表和分区表和,INSERT OVERWRITE用来从表中删除现有的数据并插入新的数据。

2、静态插入

2.1 无分区插入

出入新增值

INSERT INTO employee VALUES
(13,'Mari',51,'M'),
(14,'Pat',34,'F');

从查询语句中插入

INSERT INTO employee_tmp SELECT * FROM employee;

2.2 带分区表

2.2.1插入特定分区

INSERT INTO zipcodes PARTITION(state='FL') VALUES
(891,'US','TAMPA',33605);

3、动态分区插入

在插入前,需要开启hive的动态插入功能,

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

在这里,必须将partition列保留为最后一列。
动态分区插入主要是由于如果分区太多,手动写入分区很麻烦,因此可以基于查询参数推测除需要创建的分区。

insert overwrite table sport2 partition(year) select split(n1,'\t')[0],split(n1,'\t')[2],split(n1,'\t')[3],split(n1,'\t')[4],split(n1,'\t')[5],split(n1,'\t')[6],split(n1,'\t')[7],split(n1,'\t')[1] from sport;

在上面的语句中,partition(year)和在查询中和分区匹配的split(n1,'\t')[1]名称是不一样的,这也说明了在查询插入过程中,是基于位置插入,而不是名称插入。

4、静动混合

如果同时使用静态和动态,这个必须静态在前,动态在后。

INSERT OVERWRITE TABLE order_partition
partition (year='2019',month)SELECT order_id, order_date, order_status,
substr(order_date,1,4) ye, substr(order_date,5,2) mon
FROM orders
WHERE substr(order_date,1,4) ="2019";

单个查询语句中创建表并加载数据

create table 2012_sport as select n1,n2,n3 from sport2 where year=2012;
describe formatted 2012_sport;
OK
2021-05-18 21:05:02,303 INFO  [9b64abd8-c822-4803-ab03-dd4a27670202 main] mapred.FileInputFormat: Total input files to process : 1
# col_name              data_type               comment             n1                      string
n2                      string
n3                      string                                      # Detailed Table Information
Database:               default
Owner:                  root
CreateTime:             Tue May 18 21:03:22 CST 2021
LastAccessTime:         UNKNOWN
Retention:              0
Location:               hdfs://hacluster/user/hive/warehouse/2012_sport
Table Type:             MANAGED_TABLE
Table Parameters:        COLUMN_STATS_ACCURATE  {\"BASIC_STATS\":\"true\"}numFiles              1                   numRows                 74                  rawDataSize             1768                totalSize               1842                transient_lastDdlTime   1621343003          # Storage Information
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat:            org.apache.hadoop.mapred.TextInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed:             No
Num Buckets:            -1
Bucket Columns:         []
Sort Columns:           []
Storage Desc Params:         serialization.format   1
Time taken: 0.385 seconds, Fetched: 32 row(s)

这个功能适合从一个宽表中导出一个小表

导出数据

insert overwrite local directory '/tmp/ca_eemm'
select name from sport2

hive学习之数据插入操作相关推荐

  1. SQL查询的艺术学习笔记--数据插入操作

    use seldata --insert 使用 --insert 基本语法 /* insert into table_anem [column1,colunm2,...columnN] values  ...

  2. python数据导入hive_Python操作HIve,将数据插入到Mysql

    Python操作HIve,将数据插入到Mysql import sys from hive_service import ThriftHive from hive_service.ttypes imp ...

  3. Docker学习之数据卷操作:Day4

    数据卷基本操作 数据卷定义 数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录文件. 图解 操作命令语法 docker volume [COMMAND] docker volume命 ...

  4. hive学习笔记-数据操作

    hive数据操作 hive命令行操作 hive -d --define <key=value> 定义一个key-value可以在命令行中使用 hive -d database <da ...

  5. SQL语言之DML语言学习(一) 数据插入与修改操作语言

    数据操作语言: 插入: insert 修改: update 删除:delete -.插入语句 方式一 语法: insert into表名(列名,-) values(值1,- ) ; INSERT IN ...

  6. MyBatis之数据插入操作

    在goods.xml中添加insert标签 <insert id="insert" parameterType="com.mybatis.entity.Goods& ...

  7. 〖Python 数据库开发实战 - MySQL篇㉔〗- 数据插入操作 - INSERT语句

    万叶集

  8. 【MySQL系统学习专栏】- 数据表操作 - 表定义选项 - 索引

    文章目录 前言 一.索引概述 (一)什么是索引 (二)索引优点 (三)索引缺点 二.索引类型及对应操作 (一)主键索引 (二)普通索引 (三)唯一索引 (四)全文索引 (五)多列索引(组合.复合.联合 ...

  9. mysql随机生成数据并插入_python生成随机数据插入mysql

    import random as r import pymysql first=('张','王','李','赵','金','艾','单','龚','钱','周','吴','郑','孔','曺','严' ...

最新文章

  1. winform chart 添加数据报错_C# win Form开发 构造指定格式数据表字段值
  2. POWERPCB常用技巧
  3. Operations on Numbers Strings
  4. php is resource,PHP有没有is_type()函数?该如何解决 - is_resource
  5. windows 2012 如何设置取消禁拼ping
  6. win8.1出现 called runscript when not marked in progress
  7. 阿里巴巴叔同谈云原生和云计算
  8. C# EntityFramework连接Sqlite (Database First)
  9. awk命令和grep命令的使用
  10. “云计算和大数据”重点专项2017年度项目安排公示
  11. 解决jsp无法用el表达式的问题
  12. 数据分析统计工具有哪些?
  13. linux怎么查看hwaddr_Linux查看MAC地址方法
  14. 验证整数和小数的正则表达式
  15. 团队开发过程中的一点感想
  16. 智能优化及其应用——课程实验(粒子群算法)
  17. kylin如何支持flink_Flink 在快手实时多维分析场景的应用
  18. 120G+训练好的word2vec模型(中文词向量)
  19. 小程序 | 优惠券样式
  20. 2021-CVPR-图像修复论文导读《TransFill: Reference-guided Image Inpainting by Merging Multiple Color and ~~~》

热门文章

  1. vsync与hsync
  2. JAVA-ApplicationContext的使用
  3. 【JMS】JMS支持的模式讲解
  4. nuxt 设置路由的meta属性,nuxt 怎么设置路由的meta,nuxt 怎么设置router的meta
  5. 物联网LoRa系列-13:无线电磁波概述以及核心概念的澄清(速度、频率、周期、波长、幅度、功率、相位、干涉)
  6. 安装SQL server出现“服务没有及时响应启动或控制请求”
  7. R6034问题的解决
  8. 详解AUTOSAR:Green Hills Software(GHS)编译下载瑞萨RH850程序(环境配置篇—2)
  9. 如何设计好的RESTful API 之好的RESTful API 特征
  10. 一文读懂SIMD指令集 目前最全SSE/AVX介绍