Hive编程指南_学习笔记01
第四章: 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的更多相关文章
- 《高质量C++&C 编程指南》学习笔记
		
这本电子书是在国科大上课时候,老师在课件资源里边提供的.之所以会重视这个文件,是因为本科时候,有个老师提到过:那个学生遍的代码很整齐,看起来让人舒服,我就知道工大留不下他.因此,我就格外注意这件事,但 ...
 - 《Hive编程指南》读书笔记 | 一文看懂Hive的数据类型和文件格式
		
Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型. 和大多数数据库相比,Hive具有一个独特的功能,那就是其对于数据在文件中的编码方式具有非常大的灵活 ...
 - javascriptDOM编程艺术_学习笔记_知识点 动态创建标记
		
传统技术:document.write 和 innerHTML 深入剖析DOM方法:createElement.createTextNode.appendChild 和 insertBefore ...
 - javascriptDOM编程艺术_学习笔记_知识点 DOM
		
第三章 getElementById 返回一个与那个有着给定id属性值的元素节点对应的对象. document.getElementById(id) 下面一个例子: document.get ...
 - 软件测试之loadrunner学习笔记-01事务
		
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
 - SaToken学习笔记-01
		
SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...
 - hive编程指南--employees表数据定义
		
hive编程指南中有个employees表,默认的分隔符比較繁杂,编辑起来不太方便(普通编辑器编辑的控制字符^A等被当成字符串处理了,没有起到分隔符的作用). 收集的解决方式例如以下: http:// ...
 - 《jQuery权威指南》学习笔记之第2章 jQuery选择器
		
2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制 1.代码更简单 示例2-1 使用javascript实现隔行变色 < ...
 - 《JavaScript面向对象编程指南》读书笔记②
		
概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...
 
随机推荐
- linux驱动之poll操作
			
POLL操作 1.POLL运行过程: poll是一个系统调用,其内核入口函数为sys_poll,sys_poll差点儿不做不论什么处理直接调用do_sys_poll,do_sys_poll的运行过程能 ...
 - 使用记事本开发第一个java程序
			
记事本是开发java程序最基础的一个工具 第一步:编写 新建一个文件名为Hello的文本文档,并将文件扩展名改为.java. 在文本框内输入我们的程序代码 ——————————————我是分割线——— ...
 - hdoj--1171--Number Sequence(KMP)
			
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
 - Oracle SQL性能优化系列
			
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.o ...
 - 4.vim操作
			
你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法. 我建议下面这四个步骤: 存活 感觉良好 觉得更好,更强,更快 使用VIM的超能力 当 ...
 - javascript前端如何使用google-protobuf
			
1.首先下载google的protobuf的compiler,通过编译器可以将.proto文件转换为想要的语言文件. 下载地址:https://repo1.maven.org/maven2/com/g ...
 - C#比较二个数组并找出相同或不同元素的方法
			
这篇文章主要介绍了C#比较二个数组并找出相同或不同元素的方法,涉及C#针对数组的交集.补集等集合操作相关技巧,非常简单实用, 具有一定参考借鉴价值,需要的朋友可以参考下 " }; " ...
 - HD-ACM算法专攻系列(15)——Quoit Design
			
问题描述: 源码: 经典问题——最近邻问题,标准解法 #include"iostream" #include"algorithm" #include" ...
 - USACO 保护花朵 Protecting the Flowers, 2007 Jan
			
Description 约翰留下了 N 只奶牛呆在家里,自顾自地去干活了,这是非常失策的.他还在的时候,奶牛像 往常一样悠闲地在牧场里吃草.可是当他回来的时候,他看到了一幕惨剧:他的奶牛跑进了他的花园 ...
 - Axios 网络请求组件封装 (鉴权、刷新、拦截)
			
一.前言 注意:本教程需要你对axios有一定的了解,不适用于小白(只能借鉴,希望你能自己动手),注释都写的很清楚.此封装并非完整版,已进行部分删减修改操作,但仍然适用于大部分业务场景,如果不适用于你 ...