《Programming Hive》读书笔记(两)Hive基础知识
《Programming Hive》读书笔记(两)Hive基础知识
:第一遍读是浏览。建立知识索引,由于有些知识不一定能用到,知道就好。感兴趣的部分能够多研究。
以后用的时候再具体看。并结合其它资料一起。
Chapter 3.Data Types and File Formats
原始数据类型和集合数据类型
Select出来的数据,列与列之间的分隔符能够指定
Chapter 4.HiveQL:Data Definition
创建数据库,创建和修改表,分区的操作
Chapter 5.HiveQL:Data Manipulation
1 载入数据和导出数据,应该从本地和HDFS都能够。
2 创建表和将查询结果插入到表中
Chapter 6.HiveQL:Queries select的各种语法,join,cluster by等
Where支持正則表達式like,rlike
JOIN:On条件不支持不等号,不支持OR
1 先join再where,会依据join过滤一批数据,然后依据where过滤一批
2 The partition filters are ignored for OUTER JOINTS. However, usingsuch filter predicates in ON clauses for inner joins does work!
在outer join中。在on里面写分区条件是无用的。假设想通过分区条件加高速度,能够通过子查询再join的方法。
Inner join,left outer join,right outerjoin,left semi join(in的作用,但貌似高版本号的hive支持in子查询)
hive >SELECT
*FROM
stocksJOIN
dividends
> WHEREstock.symbol=
dividends.symboland
stock.symbol='AAPL';
Hive里面,这条sql会先算笛卡尔积的再依据where过滤。
In Hive,this query computes the full Cartesianproduct before applying the WHERE
clause. Itcould take a very long time to finish. When the property hive.mapred.modeis
set to strict, Hive prevents users from inadvertentlyissuing a Cartesian product query.
两个表join,假设当中一个较小。能够通过map-side-join的方法加高速度。
只是这样的优化不支持right-join和full-join。
Hive does not support theoptimization for right- and full-outer joins.
优化:满足一定条件,设置相应的參数开启。
The ORDER BY clause is familiar from other SQL dialects. It performs atotal orderingof
the query result set.This means that all the data is passed through a single reducer,
which may take an unacceptablylong time to execute for larger data sets.
Order by的排序是全局的,最后所有数据通过一个reducer来排序。
Because ORDER BY can result in excessively long run times, Hive willrequire a LIMIT
clause with ORDER BY if the property hive.mapred.mode is set to strict. Bydefault, it is
set to nonstrict.(注意事项)
sort by的排序是局部的
DISTRIBUTEBY controls how map output isdivided among reducers.
DISTRIBUTEBY能够指定map输出之后怎样分配到各个reducer中。
一般是某个字段同样放在同一个reducer中,有点像groupby的思想。
常常跟sort by一起用(DISTRIBUTEBY放前面)。达到先分组再内部排序的效果。
Cluster by相等于distribute by加上sort by的效果。
额外资料:
http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843243.html
cast(valueAS TYPE)
强制性转换时,得注意转换后的值。看看是否达到你所须要的效果。
Queries from sample data
随机抽取数据
部分未不懂。先无论。
BlockSampling
Input Pruningfor Bucket Tables
Union all合并两个表
本文作者:linger
本文链接:http://blog.csdn.net/lingerlanlan/article/details/41153799
版权声明:本文博客原创文章,博客,未经同意,不得转载。
《Programming Hive》读书笔记(两)Hive基础知识的更多相关文章
- Java 8实战之读书笔记二:基础知识
好记性不如烂笔头,整理一些个人觉得比较重要的东西. 一.基础知识 第1章 为什么要关心Java 8 Java 8提供了一个新的API(称为"流", Stream),它支持许多处理数 ...
- 《Java并发编程实战》读书笔记-第一部分 基础知识小结
并发技巧清单 可变状态是至关重要的 所有的并发问题都可以归结为如何协调对并发状态的访问.可变状态越少,就越容易确保线程安全性. 尽量将域声明为final类型,除非需要它们是可变的. 不可变对象一定是线 ...
- Spring笔记01(基础知识)
1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现“一站式”的企业应用开发 ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- [terry笔记]data guard基础知识
如下介绍了data guard的基础知识,整理自网络: Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时 ...
- MySQL必知必会笔记——查询的基础知识
查询基础知识 第七章 数据过滤 组合where子句 MySQL允许给出多个WHERE子句.这些子 句可以两种方式使用:以AND子句的方式或OR子句的方式使用. AND操作符 可使用AND操作符给WHE ...
- FreeRTOS学习笔记——FreeRTOS 任务基础知识
RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习RTOS 系统的工程师或者学生主要就是为了使用RTOS 的多任务处理功能,初步上手RTOS 系统首先必须掌握的也是任务的创建 ...
- Hive入门笔记---1.Hive简单介绍
1. Hive是什么 Hive是基于Hadoop的数据仓库解决方案.由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性.这是来自官方的解 ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- hive读书笔记
笔记来源<Hive编程指南> 一.hive命令行界面: ‘一次使用’命令:执行一个或多个(分号分隔)查询后hive CLI立即退出: hive -e "select * from ...
随机推荐
- HDU——B-number(数字DP)
标题效果: 要了解1至n如何号码之间有许多含有13,并13可分 记忆化搜索: dp[pos][pre][mod][statu],pos位数,pre前一位,mod余数,statu状态 有2个状态:含13 ...
- atitit.基于组件的事件为基础的编程模型--服务器端控件(1)---------服务器端控件和标签之间的关系
atitit.基于组件的事件为基础的编程模型--服务器端控件(1)---------服务器端控件和标签之间的关系 1. server控件是要server了解了标签.种类型的server控件: 1 1. ...
- MVC中的Views下面的视图放到Views文件夹外
实战:把ASP.NET MVC中的Views下面的视图放到Views文件夹外 园子里写的文章的都是把控制器从传统的项目中的Controllers拿出来单独放,但很少几乎没有把视图从Views拿出去 ...
- Java并发编程:线程池的使用(转)
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了, ...
- Android的相关的源代码的方法
这里给大家介绍一个非常方便的相关法源代码. 1.打开Android SDK Manager.把你所使用的版本号的API给下载下来,例如以下图所看到的... 2.关联源代码时,将源代码关联到相应API的 ...
- 关于system()的一些用法
C语库函数 函数名: system 功 能: 发出一个DOS命令 用 法: int system(char *command); 它包含头文件<stdlib.h> system ...
- 手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发
我们坐在地铁.经常拿出新浪手机查看新闻.腾讯新闻,或者看新闻,等刷微信功能.你有没有想过如何实现这些目标. 移动互联网.更活泼. 由于HTML5未来,jQuery Moblie未来. 今天我用jqm的 ...
- Android基础之——MacOSX下elipse开发环境的配置
前不久换了台macbook,然后自己就把开发环境给配好了,本来这事就这么过去了,今天有位博友留言让我写一篇关于配置的文章,考虑到这个东西确实以后可能还会用,那就写下来,分享给大家,正好自己也再次回想一 ...
- HTML5多图片拖拽上传带进度条
前言 昨天利用css2的clip属性实现了网页进度条觉得还不错,但是很多情况下,我们在那些时候用进度条呢,一般网页加载的时候如果有需要可以用,那么问题就来了,怎么才算整个加载完毕呢,是页面主要模块加载 ...
- HDU多赛学校9 HDU4969 Just a Joke 【数学积分】
数学题目 意甲冠军:的男孩向圆上的女孩跑去,保持男孩女孩圆心在同一条直线上.这过程中,男孩女孩均匀速 给出男孩女孩速度,圆的半径,男孩最长能跑的距离 问男孩是否能跑到女孩那里 能够用积分来解这道题,我 ...