《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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-12-14 09:41:19

《Programming Hive》读书笔记(两)Hive基础知识的相关文章

Java并发编程实践读书笔记--第一部分 基础知识

目前关于线程安全性没有一个统一的定义,作者自己总结了一个定义,如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 在并发编程中,由于不恰当的执行时序而出现不确定的结果的情况被称为竞态条件(Race Condition).最常见的竞态条件就是“先检查后执行(Check-Then-Act)”操作,即通过一个可能已经失效的观察来决定下一步的动作.比较简单的例子就是两

[terry笔记]data guard基础知识

如下介绍了data guard的基础知识,整理自网络: Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时,同步,异步多种形式.Data Gurad 常用于异地容灾和小企业的高可用性方案,虽然可以在Standby 机器上执行只读查询,从而分散Primary 苏菊哭的性能压力,但是Data Gurad 决不是性能解决方案. 在Data Gurad 环境中,至少有两个数据库,一个处于Open 状态对外提供服

《CLR via C#》读书笔记 之 线程基础

第二十五章 线程基础 2014-06-28 25.1 Windows为什么要支持线程 25.2 线程开销 25.3 停止疯狂 25.6 CLR线程和Windows线程 25.7 使用专用线程执行异步的计算限制操作 25.8 使用线程的理由 25.9 线程调度和优先级 25.10 前台线程和后台线程 参考 25.1 Windows为什么要支持线程 返回 Microsoft设计OS内核时,他们决定在一个进程(process)中运行应用程序的每个实例.进程不过是应用程序的一个实例要使用的资源的一个集合

手游发展进攻性——两、基础知识

<手游发展进攻性--两.基础知识>端已被更新.主要是通过一个官方DEMO,分析Unity3D开发与应用的一些知识.注意要点.你可以去看看. 什么可以使通信. http://blog.csdn.net/kakashi8841/article/details/39451739 版权声明:本文博主原创文章,博客,未经同意不得转载.

深入理解计算机系统读书笔记一 ---&gt; 计算机基础漫游

一.程序编译的不同阶段. 通常我们是以高级程序开发易于阅读的代码,我们通过语法规则推断代码的具体含义.但是计算机执行代码的时候就需要把代码解析成既定的可执行问题,计算机是如何处理的呢?这里以C语言hello.c文件为例来说明中间过程. #include <stdio.h> int main() { printf("hello world!\n"); } 先上张图. C语言源程序----预处理解析头文件和函数  --- 编译器解析成汇编语言 ---   翻译机器语言指令,打包

APUE 学习笔记(一) Unix基础知识

1. Unix 体系结构 内核的接口被称为系统调用 公用函数库构建在系统调用接口之上 应用软件既可以调用公用函数库,也可以直接进行系统调用 2. 文件和目录 目录操作函数:opendir---> readdir---> closedir struct dirent 结构体 stat 系统调用 3.程序.进程.线程 程序:存放在磁盘上.并处于某个目录中的一个可执行文件.使用exec系列函数将程序从磁盘读入存储器,并使其执行 进程:程序的执行实体.进程控制的3个函数:fork.exec.waitp

【读书笔记】性能测试基础

读书笔记:<零成本实现Web性能测试>第1~3章随手记 第1章 性能测试基础 性能测试的基本流程: 1.明确性能测试需求 2.制定性能测试方案 性能测试方案应该详尽地描述如何进行性能测试,其中应该至少包括: 1)测试背景 2)测试目的 3)测试范围           4)测试进入条件           5)测试退出条件 6)测试指标要求 7)测试策略 8)测试时机 9)测试风险 10)测试资源      3.编写性能测试案例 4.执行性能测试案例 5.分析性能测试结果 6.生成性能测试报告

马哥2013年运维视频笔记 day01 系统基础知识

没有什么可说的,马哥的Linux视频真的是精品,这里把我学习以后的笔记整理到这里,以备不时之需. day01 ①.Linux学习的一些方法论 做好总结,必须学习完一个知识点以后要用自己的思想把它彻底的给别人讲明白,这样这个知识就真的融入你们的知识体系了,否则看着会了,其实是一知半懂.比较好的方法就是写总结,记笔记,然后汇总成博客,这样可以锻炼你对问题条理化理解,这会影响你们的一生,是隐形的影响. 都说Linux很难,不然怎么体现你的价值啊?只有基础打牢,之后的中高级内容才能从容不迫.要做好知识结

《图解TCP/IP》读书笔记1 - 网络基础

第一章:网络基础知识 1 协议: 互联网 ->TCP IP HTTP LAN -> IPX/SPX 2 分组通信/分组交换协议->Packet 3 OSI ->层与层之间通过某种协议通信 4 数据逐层添加首部,接受后逐层分离 5 表示层识别编码 6 传输方式: 有连接 - 建立连接后发送数据 无连接 - 直接发送 TCP:面向有连接的分组发送协议 7 网络通信方式: 电路交换:电话网 分组交换:TCP/IP 分解成数据包,使多个计算机可以同时交换数据 8 分组交换: 路由器连接通信

学习笔记-《Linux基础知识之挂载详解(mount,umount及开机自动挂载)》

<Linux基础知识之挂载详解(mount,umount及开机自动挂载)>来源:Linux社区  作者:chawan 原文链接 http://www.linuxidc.com/Linux/2016-08/134666.htm 以下是学习作者这篇文章做的一些摘要及学习体会. 重要概念(经典原文引述) 挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载",此目录即为"挂载点