【转】HiveQL:对数据定义的学习
1.Hive中的数据库:
它是表的一个目录或者命名空间,用来避免表命名冲突,我们通常使用数据库来将生产表组织成逻辑组。
基本命令:
(1)创建一个数据库(如果不存在该数据库):
create database if not exists time;
(2)查看Hive中所包含的所有数据库:
show databases;
注:Hive会为每个数据库创建一个目录,数据库中的表将会以这个数据库目录的子目录形式存储,有一个例外是default数据库中的表,default目录中的表会默认直接存储在hive.metastore.warehouse.dir之下。
我们可以设置属性hive.cli.print.current.db=true来让hive的CLI显示的指出当前工作在哪一个数据库下:
如上,先是在default目录下,使用use time;命令后切换到time数据库下。
2. Hive中数据的保存:
分为元数据、“真实”数据和日志:
(1)元数据:默认情况下,Hive元数据保存在内置的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会
话,则需要一个独立的元数据库,笔者使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持。
我们可以进入mysql中查看hive中表的元数据:
默认的元数据的表有:
其中主要涉及的表有:
例如:我们在mysql中查看hive元数据信息的TBLS表:
作为对照,我们查看hive中是否存在log表和hive_test表:
注:在hive的安装过程中有三种模式:
内置模式:元数据保持在内嵌的Derby模式,只允许一个会话连接
本地独立模式:在本地安装Mysql,把元数据放到Mysql内
远程模式:元数据放置在远程的Mysql数据库
(2)“真实”数据:存在hdfs上。
(3)日志:存在本地/tmp/${user_name}/hive.log (例如:/tmp/hadoop/hive.log 是笔者的存放路径)
3. Hive中的表:分为内部表(又叫管理表)和外部表。
(1)若创建内部表,会将数据移动到数据仓库指向的路径。在删除内部表的时候,内部表的元数据和数据会被一起删除;
(2)若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变(即数据已经存在hdfs上,新创建的表指向它)。外部表只删除元数据,不删除数据。这样外部表相对来
说更加安全些,数据组织也更加灵活,方便共享源数据。
4. 对表进行分区:
(1)在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因
此建表时引入了partition概念——>更快的查询,提高性能!
(2)分区表指的是在创建表时指定的partition的分区空间。如果需要创建有分区的表,需要在create表的时候调用可选参
partitioned by。
eg:create table employees (name string , salary string) partitioned by (country string , state string);
此时我们只是声明了employees表有分区结构,但还没有创建分区,我们可以通过载入数据的方式创建分区,也可以通过alter命令增加、修改、删除分区。如下笔者使用第一种方法创建分区并上传数据:
eg:load data local inpath '/home/hadoop/extend/data_employees' into table employees partition (country='US',state='CA');
Hive会创建这个分区对应的目录,并上传文件到这个目录下。
注:Hive并不会验证用户装载的数据和表的模式是否匹配。然而,Hive会验证文件格式是否和表结构定义的一致,即如果在表创建时定义的存储格式是SEQUENCEFILE,那么装载进去的文件也必须是sequencefile格式。
【转】HiveQL:对数据定义的学习的更多相关文章
- Python学习记录----数据定义
摘要: 描述Python中数据定义格式,需要注意的东东. 一 数据声明 Python木有一般语言的具体数据类型,像char,int,string这些通通木有.这有点像javascript,但又不同,j ...
- SQL语言学习-数据定义语言
Sql语言至今已经有6个版本.SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)和嵌入式SQL语言. 数据定义语言(D ...
- oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...
- 【大数据】Hive学习笔记
第1章 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表, ...
- Hive 官方手册翻译 -- Hive DDL(数据定义语言)
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...
- ClickHouse数据库数据定义手记之数据类型
前提 前边一篇文章详细分析了如何在Windows10系统下搭建ClickHouse的开发环境,接着需要详细学习一下此数据库的数据定义,包括数据类型.DDL和DML.ClickHouse作为一款完备的D ...
- Oracle language types(语言种类) 表的相关操作 DDL数据定义语言
数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...
- 《how to design programs》15章 相互引用的数据定义
由结构体组成的表与结构体中的表. 在用追溯形式建立家家谱树时,我们通常从某个后代除法,依次处理它的父母,组父母等.而构建树时,我们会不断添加谁是谁的孩子,而不是写出谁是谁的父母,从而建立一颗后代家谱树 ...
- 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式
今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 jquery中的serialize() 方法 该方法通过序列化表单值,创建 URL 编码文本字符串 序列化的值可在 ...
随机推荐
- XCode日常使用备忘录
0. Introduction XCode是macOS上开发app不可缺少的开发者工具,不管是开发macOS上的应用,还是iOS上的应用,都离不开XCode环境.尽管其易用性广受诟病,但由于苹果app ...
- URL的组成格式
最近在学习js的Ajax方面的内容,发现自己对基础的计算机网络知识认识不足,所以大概了解了下. URL组成格式 图中中括号是可选项 protocol 协议,常用的协议是http hostname 主机 ...
- OpenCV2:特征匹配及其优化
在OpenCV2简单的特征匹配中对使用OpenCV2进行特征匹配的步骤做了一个简单的介绍,其匹配出的结果是非常粗糙的,在这篇文章中对使用OpenCV2进行匹配的细化做一个简单的总结.主要包括以下几个内 ...
- ADO.net 更新和插入数据 遇到null 执行不成功
首先交代下背景,遇到一个问题:SqlCommand新增记录时,参数为null时,运行并不报错,只是返回(0),也就是更新失败. 在用C#往数据库里面插入记录的时候, 可能有的字段我们并不赋值(有可能是 ...
- CSS魔法堂:重拾Border之——图片作边框
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- 分享一个UI与业务逻辑分层的框架(一)
序言 .NET(C#)的WinForm如何简单易行地进行UI与业务逻辑分层?本系列文章介绍一个WinForm分层框架,该框架针对WinForm中的TextBox,CheckBox,RadioButto ...
- 鼠标移到导航上面 当前的LI变色 处于当前的位置
鼠标移到导航上面 当前的LI变色 处于当前的位置,广泛应用于当前导航. 点击这里查看效果 以下是源代码: <html> <head> <meta http-equiv=& ...
- jQuery仿阿里云购买选择购买时间长度
效果:http://hovertree.com/texiao/jquery/61/ jQuery仿阿里云购买服务器选择时间长度,操作简单,只需点击所要选的时间段 代码: <!doctype ht ...
- Netty(四)分隔符与定长解码器的使用
TCP以流的形式进行数据传输,上层的应用协议为了对消息进行划分,往往采用如下的4种方式. (1)消息长度固定,累计读到长度总和为定长len的报文后,就认为读取到了一个完整的消息:然后重新开始读取下一个 ...
- 鼠标滑过图片变暗文字链接滑出jQuery特效
效果体验:http://hovertree.com/texiao/jquery/7.htm HTML文件代码: <!DOCTYPE html> <html xmlns="h ...