一、向管理表中装载数据

1、向表中装载数据load

1)load语法

2)LOCAL  指的是操作系统的文件路径,否则默认为HDFS的文件路径

3)overwrite关键字

如果用户指定了overwrite关键字,那么目标文件夹中之前存在的数据将会被先删除掉。

如果指定,仅仅会把新增的文件增加到目标文件夹中,而不会删除之前的数据。

如果目标文件夹已经存在和装载的文件同名的文件,那么旧的同名文件将被覆盖写。

4)分区表

如果目标表是分区表那么需要使用partition子句,而且用户还必须为每个分区的键指定一个值

此列子,数据现在将会存放在这个文件夹中:

2、通过查询语句向表中装载数据

1)数据分区

数据库分区的主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间,主要包括两种分区形式:水平分区与垂直分区。水平分区是对表进行行分区。而垂直分区是对列进行分区,一般是通过对表的垂直划分来减少目标表的宽度,常用的是水平分区。
        hive建立分区语法:       
 
 create external table if not exists tablename(
         a string,
         b string)
  partitioned by (year string,month string)
  row format delimited fields terminated by ',';

2)hive通常有三种方式对包含分区字段的表进行数据插入

(1)静态插入数据:要求插入数据时指定与建表时相同的分区字段,如:
 
 insert overwrite tablename (year='2017', month='03') select a, b from tablename2;
 
        (2)动静混合分区插入:要求指定部分分区字段的值,如:
 
 insert overwrite tablename (year='2017', month) select a, b from tablename2;
 
        (3)动态分区插入:只指定分区字段,不用指定值,如:
 
 insert overwrite tablename (year, month) select a, b from tablename2;
 
        hive动态分区设置相关参数:
 
 Hive.exec.dynamic.partition  是否启动动态分区。false(不开启) true(开启)默认是 false
 hive.exec.dynamic.partition.mode  打开动态分区后,动态分区的模式,有 strict和 nonstrict 两个值可选,strict 要求至少包含一个静态分区列,nonstrict则无此要求。各自的好处,大家自己查看哈。
 hive.exec.max.dynamic.partitions 允许的最大的动态分区的个数。可以手动增加分区。默认1000
 hive.exec.max.dynamic.partitions.pernode 一个 mapreduce job所允许的最大的动态分区的个数。默认是100
 

3)数据插入之insert into 和 insert overwrite

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。通常hive包括以下四种数据导入方式:
(1)、从本地文件系统中导入数据到Hive表;
(2)、从HDFS上导入数据到Hive表;
(3)、在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中;
(4)、从别的表中查询出相应的数据并导入到Hive表中。
 INSERT INTO 
使用样例
 
                 insert into table tablename1 select a, b, c from tablename2;
 
 INSERT OVERWRITE 
使用样例
 
                 insert overwrite table tablename1 select a, b, c from tablename2;
 
 两者的异同 
        insert into 与 insert overwrite 都可以向hive表中插入数据,但是insert into直接追加到表中数据的尾部,而insert overwrite会重写数据,既先进行删除,再写入。如果存在分区的情况,insert overwrite会只重写当前分区数据。

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

二、导出数据

1.使用insert导出

这种方式的优点在于既可以导出到hdfs上还可以导出到本地目录

下面以导出emp表中数据为例

insert overwrite local directory "/opt/module/data/export/emp" 如果去除local,则是导出到hdfs上

row format delimited fields terminated by "\t"   (格式,可选)

select * from emp;

导出结果

2.使用export导出

这种方式只能导出到hdfs上

export table emp to "/emp";

但是速度比较快

部分转载自:

https://blog.csdn.net/su83362368/article/details/78502542

https://www.cnblogs.com/tele-share/p/9861151.html

HiveQL 数据装在与导出的更多相关文章

  1. C#变成数据导入Excel和导出Excel

    excel 基础 •整个excel 表格叫工作表:workbook:工作表包含的叫页:sheet:行:row:单元格:cell. •excel 中的电话号码问题,看起来像数字的字符串以半角单引号开头就 ...

  2. 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理

    在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率.我在较早时期的EasyUI的Web框架上, ...

  3. 基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出

    数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,我曾经在之前的一篇文章<Winform开发框架之通用数据导入导出操作>介绍了在Winform ...

  4. Oracle 数据的导入和导出(SID service.msc)

    一:版本号说明: (1)(Oracle11  32位系统)Oracle - OraDb11g_home1: (2)成功安装后显演示样例如以下:第一个图是管理工具.创建连接.创建表:第二个是数据库创建工 ...

  5. Matlab文件和数据的导入与导出

    ref: https://blog.csdn.net/zengzeyu/article/details/72530596 Matlab文件和数据的导入与导出 2017年05月19日 15:18:35  ...

  6. Thinkphp框架下PHPExcel实现Excel数据的批量化导入导出

    第一步:下载官方的PHPExcel文件,下载地址https://github.com/PHPOffice/PHPExcel 第二步:解压打开,将PHPExcel\Classes\全部文件拷贝到thin ...

  7. Oracle用imp和exp实现数据的导入和导出

    使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...

  8. 一、SQL系列之~使用SQL语言导出数据及实现定时导出数据任务

    一般情况下,SQL数据库中带有导入与导出数据的直接按键操作,点击数据表所在的数据库--任务--导出/导入数据,根据导入/导出向导直接将数据导出即可. 但导出的数据格式多为Excel格式,如果需要导出的 ...

  9. (转)基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理

    http://www.cnblogs.com/wuhuacong/p/4777720.html 在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能 ...

随机推荐

  1. idea 代码热启动配置方法

    Restart Server:代码已更新重启tomcat服务器

  2. MySql取消密码强度验证功能

    一.修改MySql配置文件(my.cnf)一般情况下,MySql的配置文件 my.cnf 会在  /etc/ 目录下,如果没有,可以使用以下命令查找位置: find / -name my.cnf 编辑 ...

  3. Unity的学习笔记(鼠标移动控制视角移动)

    using UnityEngine; public class MouseLook : MonoBehaviour { , MouseX = , MouseY = } //定义一个枚举,移动xy,或者 ...

  4. 系統启动直接进BIOS

  5. activiti串行会签的使用

    1.串行任务的配置 2.当任务走到串行会签节点时,会从你之前保存的流程变量中找集合(我这里设置的assigneeList),串行会签会根据这个集合设置一系列该节点的流程变量 3.结束条件的设置,若满足 ...

  6. C# vb .net实现透视反射效果

    在.net中,如何简单快捷地实现Photoshop滤镜组中的透视反射效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  7. 【面试突击】- SpringMVC那些事(一)

    1.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合 ...

  8. 【转载】 C#中通过Where方法查找出所有符合条件的元素集合

    在C#的List集合对象中,FirstOrDefault方法可以用于查找List集合中符合条件的第一个元素,如果需要根据条件查找到List集合中的所有符合条件的元素对象集合,则需要使用到List集合的 ...

  9. 【转载】Extjs设置Ajax请求的超时时间timeout

    在Extjs中的Ajax请求中,Ext.Ajax.request 默认超时时间是30秒,有时候我们有比较耗时的操作需要设置更长时间,此时我们就需要修改Ext.Ajax.Requset的超时时间为更长, ...

  10. 各种GAN的学习和总结

    GAN: https://www.cnblogs.com/kk17/p/10046884.html WGAN: https://www.cnblogs.com/Allen-rg/p/10305125. ...