我是靠谱客的博主 雪白自行车,最近开发中收集的这篇文章主要介绍Hive SQL DML语法之加载数据一、Hive SQL-DML-Load加载数据 二、Hive SQL-DML-Insert插入数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Hadoop离线是大数据生态圈的核心与基石,是整个大数据开发的入门。本次分享内容让初学者能高效、快捷掌握Hadoop必备知识,大大缩短Hadoop离线阶段学习时间,下面一起开始今天的学习!

▼往期内容汇总:

  • 大数据导论
  • Linux操作系统概述
  • VMware Workstation虚拟机使用
  • Linux常用基础命令、系统命令
  • Apache Hadoop概述
  • Apache Hadoop集群搭建
  • HDFS分布式文件系统基础
  • Hadoop技术之HDFS shell操作
  • Hadoop技术之HDFS工作流程与机制
  • Hadoop MapReduce介绍、官方示例及执行流程
  • Hadoop YARN架构、组件及其交互流程

  • 数据仓库概念、主要特征以及主流开发语言SQL

  • Apache Hive入门:模拟实现Hive功能、Hive架构、 组件

  • Apache Hive部署与实战、客户端使用

  • Hive SQL语言: DDL建库、建表


一、Hive SQL-DML-Load加载数据

回顾

  • 在Hive中建表成功之后,就会在HDFS上创建一个与之对应的文件夹,且文件夹名字就是表名;     
  • 文件夹父路径是由参数hive.metastore.warehouse.dir控制,默认值是/user/hive/warehouse;

  •     不管路径在哪里,  只有把数据文件移动到对应的表文件夹下面,  Hive才能映射解析成功;
  •     最原始暴力的方式就是使用hadoop fs – put|-mv等方式直接将数据移动到表文件夹下;
  •     但是,  Hive官方推荐使用Load命令将数据加载到表中。

 Load语法功能

  •     Load英文单词的含义为:  加载、装载;
  •     所谓加载是指:  将数据文件移动到与Hive表对应的位置,  移动时是纯复制、移动操作。
  •     纯复制、移动指在数据load加载到表中时,  Hive不会对表中的数据内容进行任何转换,任何操作。

Load语法规则

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename;

语法规则之filepath

filepath表示待移动数据的路径。可以指向文件(在这种情况下,  Hive将文件移动到表中),也可以指向目录(在这种情况下,  Hive将把该目录中的所有文件移动到表中)  。

filepath文件路径支持下面三种形式,要结合LOCAL关键字一起考虑:
1.    相对路径,例如:  project/data1
2.    绝对路径,例如:  /user/hive/project/data1
3.    具有schema的完整URI,例如:  hdfs://namenode:9000/user/hive/project/data1

语法规则之LOCAL

    指定LOCAL,   将在本地文件系统中查找文件路径。

  •    若指定相对路径,将相对于用户的当前工作目录进行解释;
  •     用户也可以为本地文件指定完整的URI-例如:  file:///user/hive/project/data1。

    没有指定LOCAL关键字。

  •    如果filepath指向的是一个完整的URI,会直接使用这个URI;
  •    如果没有指定schema,  Hive会使用在hadoop配置文件中参数fs.default.name指定的(不出意外,都是HDFS)

LOCAL本地是哪里?

  •     如果对HiveServer2服务运行此命令

本地文件系统指的是Hiveserver2服务所在机器的本地Linux文件系统,不是Hive客户端所在的本地文件系统。

Step1:建表 

Step2:load加载数据 

 加载数据日志信息

 二、Hive SQL-DML-Insert插入数据

Insert语法功能

  •     Hive官方推荐加载数据的方式:

清洗数据成为结构化文件,再使用Load语法加载数据到表中。这样的效率更高。

    也可以使用insert语法把数据插入到指定的表中,最常用的配合是把查询返回的结果插入到另一张表中。

insert+select

  •     insert+select表示:将后面查询返回的结果作为内容插入到指定表中。

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

INSERT INTO TABLE tablename select_statement1 FROM from_statement;

最后

以上就是雪白自行车为你收集整理的Hive SQL DML语法之加载数据一、Hive SQL-DML-Load加载数据 二、Hive SQL-DML-Insert插入数据的全部内容,希望文章能够帮你解决Hive SQL DML语法之加载数据一、Hive SQL-DML-Load加载数据 二、Hive SQL-DML-Insert插入数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部