第四章: 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. ubuntu14.04无法安装Curl

    ubuntu14.04无法安装Curl apt-get install curl 提示没有这个软件 源 更换软件源到163也不行,更新软件源也不行. 解决:參考http://www.linuxidc. ...

  2. 多线程编程TSL相关的技术文档

    线程本地存储 (TLS) https://msdn.microsoft.com/zh-cn/library/6yh4a9k1(v=vs.80).aspx Using Thread Local Stor ...

  3. Java-MyBatis:MyBatis 3 配置

    ylbtech-Java-MyBatis:MyBatis 3 配置 1.返回顶部 1. XML 映射配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings) ...

  4. 从极大似然估计的角度理解深度学习中loss函数

    从极大似然估计的角度理解深度学习中loss函数 为了理解这一概念,首先回顾下最大似然估计的概念: 最大似然估计常用于利用已知的样本结果,反推最有可能导致这一结果产生的参数值,往往模型结果已经确定,用于 ...

  5. 浅谈SpringCloud (一) 什么是微服务和不使用SpringCloud怎么访问服务提供者

    微服务和SpringCloud介绍 1.什么是微服务? 看过一遍介绍的很清楚的博客:https://blog.csdn.net/wuxiaobingandbob/article/details/786 ...

  6. Golden Gate 相关组件介绍:

    OGG组件: Manager: 启动其它进程 Collector Extract Data Pump:可选进程,建议使用 Replicat Trails: 可以压缩,加密 Checkpoint OGG ...

  7. struct和class两个关键字的区别

    1. <C++ Primer> 用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private. 2. ...

  8. Data type-数据类型

    操作方式.含义.存储方式. In computer science and computer programming, a data type or simply type is a classifi ...

  9. 树、递归、广度优先搜索(BFS)————二叉树的最小深度

    解法一:递归 遇到叶子节点不递归,否则接着往子树递归,每次递归层数加1 要确定的是,一定要保证初始输入的节点是有子节点的.因为可能出现只有单子树的情况,所以要先确认这种情况. 具体过程: 1.分析初始 ...

  10. es6——Proxy和Reflect

    Proxy代理,Reflect反射 Proxy对属性的读取 { //供应商,原始对象 let obj={ time:'2017-1-1', name:'net', _r:123 } //代理商,新生成 ...