第四章: HQl的数据定义

1:创建数据库

  create database financials;

  create database  if not exists financials;





2: 查看数据库

  show databases;

   模糊查询数据库

  show databases like 'h.*' ;





3:创建数据库改动数据库的默认位置

   create database financials localtion '/my/preferred/directory'





4:添加数据库的描写叙述信息

   create database financials comment 'holds all financials tables'

5: 显示数据库的描写叙述的信息

  describe database financials;

6: 添加一些和相关属性的键-值对属性信息

  create database financials

  with dbproperties ('create'= 'Mark Moneybags', 'data'='2012-12-12');

  describe database  extended  financials;

  

7:没有命令提示让用户查看当前所在的是那个数据库。能够反复使用use

  use financials。

  能够通过设置一个属性值来在提示符里面显示当前所在的数据库

  set hive.cli.print.current.db = true;

  set hive.cli.print.current.db= false;

  

8:删除数据库

 drop database if exists financials;

 Hive是不同意删除一个包括表的数据库。

 当时假设加上keyword: cascade。就能够了,hive自己主动删除数据库中的表

  drop database if exists financials  cascade; 

 

9:改动数据库,设置dbproperties键值对属性值

 alert database financials set  dbproperties('edited-by'='joe dba');

 

10:创建表:

 create table if not  exists employees (

  name string comment 'employee name',

  salary float comment 'employee salary ',

  subordinates array<string> comment 'employee name of subordinates ' ,

  deductions Map<string,FLOAT>,

  address struct<street:string,city:string,state:String,zip:int>

  )

  comment ' description  of the table ' 

  tblproperties ('creater'= 'me', 'created_at'='2012-12-12');

  location '/user/hive/warehouse/mydb.db/employees'

  

  -- tblproperties 的主要作用是:按键-值对的格式为表添加额外的文档说明

  

11: 列举某个表的tblproperties 属性信息

  show  tblproperties employees;

 

12: 拷贝表

create table if not exists mydb.employees2 like mydb.employees2  





13:选择数据库

    use mydb

   显示表

show tables;

show tables  IN  mydb;

14: 查看这个表的具体结果信息

describe extended mydb.employees

    使用formatted keyword取代 extended

describe formatted mydb.employees



15: 管理表:内部表:删除表时,会删除这个表的数据

   创建一个外部表:其能够读取全部位于/data/stocks文件夹下的以逗号切割的数据

   create external table if not exists stocks(

   exchange string,

   symbol string,

   ymd String,

   price_open float,

   price_hight float,

   price_low float,

   price_close float,

   volume int,price_adj_close float)

   row  format delimited fields terminated by ','

   location '/data/stocks'



16: 查看表是否是管理表还是外部表

 describe extended tablename

   输出信息:

   tableType.managed_table--管理表

   tableType.external_table--外部表

   

   -- 复制表但不会复制数据

create table if not exists mydb.employees3(新表)

like mydb.employees2(原表)    location '/data/stocks'

   



17: 创建分区表

  create table employees (

  name string,

  salary float,

  subordinates array<string>,

  deductions Map<string,FLOAT>,

  address struct<street:string,city:string,state:String,zip:int>

  )

  partitioned by (country String,state string);



  分区自段:

  country String,state string 和普通字段一样。相当于索引字段。

  依据分区字段查询,提交效率。提高查询性能

  

18: set hive.mapred.mode=strict;

   假设对分区表进行查询而where子句没有加分区过滤的话,

   将会禁止提交这个任务。

   能够设置为:nostrict

  

19: 查看表中存在的全部分区

   show partitions employees;

   

20: 查看是否存储某个特定分区键的分区的话

show partitions employees   partition(country='US');

     describe extended employees 命令也会显示分区键





  管理大型生产数据集最常见的情况:使用外部分区表

21:在管理表中用户能够通过加载数据的方式创建分区:

   load data local inpath '/home/hive/California-employees'


   INTO table employees

   partition(country='US',state='CA');





   hive 将会创建这个分区相应的文件夹..../employees/country=US/state=CA





22:创建外部分区表

   

   create table  if not exists log_messages (

hms  int,

severity string,

server string,

process_id  int,

message  string

 

  )

  partitioned by (year int,month int,day int) 

  row  format delimited fields terminated by '\t'











1:order by  会对输入做全局排序



2: sort能够控制每一个reduce产生的文件都是排序。再对多个排序的好的文件做二次归并排序。



sort by 特点例如以下:

 1) . sort by 基本受hive.mapred.mode是否为strict、nonstrict的影响,但若有分区须要指定分区。

 2). sort by 的数据在同一个reduce中数据是按指定字段排序。

 3). sort by 能够指定运行的reduce个数,如:set mapred.reduce.tasks=5 ,对输出的数据再运行归并排序。即能够得到所有结果。

结果说明:严格模式下,sort by 不指定limit 数,能够正常运行。

sort by 受hive.mapred.mode=sctrict 的影响较小。




3:distribute by 

distribute by 是控制在map端怎样拆分给reduce端。

依据distribute by 后面的列及reduce个数进行数据分发,默认採用hash算法。distribute能够使用length方法会依据string类型的长度划分到不同的reduce中。终于输出到不同的文件里。 length 是内建函数,也能够指定其它的函数或这使用自己定义函数。




4:    cluster by 



cluster by 除了distribute by 的功能外,还会对该字段进行排序,所以cluster by = distribute by +sort by

Hive编程指南_学习笔记01的更多相关文章

  1. 《高质量C++&C 编程指南》学习笔记

    这本电子书是在国科大上课时候,老师在课件资源里边提供的.之所以会重视这个文件,是因为本科时候,有个老师提到过:那个学生遍的代码很整齐,看起来让人舒服,我就知道工大留不下他.因此,我就格外注意这件事,但 ...

  2. 《Hive编程指南》读书笔记 | 一文看懂Hive的数据类型和文件格式

    Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型. 和大多数数据库相比,Hive具有一个独特的功能,那就是其对于数据在文件中的编码方式具有非常大的灵活 ...

  3. javascriptDOM编程艺术_学习笔记_知识点 动态创建标记

    传统技术:document.write 和 innerHTML 深入剖析DOM方法:createElement.createTextNode.appendChild 和 insertBefore   ...

  4. javascriptDOM编程艺术_学习笔记_知识点 DOM

    第三章   getElementById    返回一个与那个有着给定id属性值的元素节点对应的对象. document.getElementById(id) 下面一个例子: document.get ...

  5. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  6. SaToken学习笔记-01

    SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...

  7. hive编程指南--employees表数据定义

    hive编程指南中有个employees表,默认的分隔符比較繁杂,编辑起来不太方便(普通编辑器编辑的控制字符^A等被当成字符串处理了,没有起到分隔符的作用). 收集的解决方式例如以下: http:// ...

  8. 《jQuery权威指南》学习笔记之第2章 jQuery选择器

    2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制  1.代码更简单   示例2-1     使用javascript实现隔行变色 < ...

  9. 《JavaScript面向对象编程指南》读书笔记②

    概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...

随机推荐

  1. Qt 图像处理之 灰度变换

    对图像的亮度.对照度进行变换是非经常常使用的一种图像处理操作,可是Qt 本身却没有提供对应的功能代码.因此我写了个简单的类来实现这些操作.我把这个类称为 BrightnessMapper. 代码例如以 ...

  2. php面向对象之__isset和__unset

    php面向对象之__isset和__unset 一.简介 __isset和__unset都是对不可访问属性的操作,前者是检验的时候自动调用,后者是销毁的时候自动调用. 比如说在类外访问private的 ...

  3. http server优雅启停原理及验证

    问题背景 在 http应用程序重启时,如果直接 kill -9 使程序退出,然后再启动,会存在的问题: 旧的请求未处理完,如果服务端进程直接退出,会造成客户端连接中断(收到 RST) 新请求打过来,服 ...

  4. js接收文件流并下载

    js接收文件流并下载 标签(空格分隔): js 在此输入正文 <script type="text/javascript"> function download(fil ...

  5. 移动端H5页面编辑器开发实战--原理结构篇

    很久前的写的文章了,转载下发到这里 原文地址: https://blog.csdn.net/tech_meizu/article/details/52288797

  6. MarkDown 语法备份

    标题 标题1 标题2 标题3 标题4 标题5 无序列表 飞雪连天射白鹿 书神侠倚碧鸳 有序列表 飞雪连天射白鹿 笑书神侠倚碧鸳 超链接 百度 图片 粗体和斜体 粗体 斜体 表格 左对齐标题 右对齐标题 ...

  7. centos7 usually use

    firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.22.103 port port=8 ...

  8. 后端向服务器发送客户端请求--HttpWebRequest

    HttpWebRequest类与HttpRequest类的区别 HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息. HttpWebReques ...

  9. struts2学习之基础笔记5

    第十章 Struts 2的输入校验 1 Struts 2 输入校验原理 a . 分类 validate()方法校验 b . validation框架校验 2 valibate()方法校验实现 步骤  ...

  10. jqury中$("#div").index($this)在setTimeoutt中返回值一直是-1的问题解决方案

    今天遇到一个十分蛋疼的问题,花了我一个多小时才解决,其实十分简单,但我是新手,好了,事情是这样的: 我想让鼠标停留在某个元素一定时间再显示它隐藏的内容(不然你鼠标快速滑上滑下,反反复复,如果碰上sli ...