hive操作小记(未完成……)

一、CLI操作:

1、普通设置:

set hive.cli.print.header=true;    // 打印查询头,需要显示设置
set hive.mapred.mode=strict;     // hive strict模式,分区表必须在where中分区过滤,不允许笛卡尔积查询
set hive.mapred.mode=nostrict;    // 与上一行相反 
// 分区已经对应目录结构,因此在数据文件就可以不用存分区的数据了;
set hive.exec.dynamic.partition = true;    // 动态分区
set hive.exec.dynamic.partition.mode = nonstrict;

2、性能设置:

set hive.map.aggr=true // 提高聚合性能,需要更多内存。允许map阶段进行“顶级”聚合,(非顶级聚合将会在执行一个GROUP BY后执行) 《HIVE编程指南》P86
set hive.auto.convert.join=true;    // 开启map-side-join

PS: 分区已经对应目录结构,因此在数据文件就可以不用存分区的数据了。

二、元数据:

1、显示所有表:

SHOW TABLES;
SHOW TABLES IN bi;    // 查看某个schema下所有表
SHOW TABLES ‘*rathan*‘;    // 正则匹配表名

2、表结构:

DESC bi.rathan_table_name;    // 最简,只显示数据列信息
DESC EXTENDED bi.rathan_table_name;     // 查看完整表结构,Detailed Table Information 压缩显示
DESC FORMATTED bi.rathan_table_name;    // 查看完整表结构,Detailed Table Information展开显示
// DESC == DESCRIBE
SHOW PARTITIONS bi.rathan_table_name;    // 查看所有分区
SHOW PARTITIONS bi.rathan_table_name PARTITION(hp_cal_dt=‘2015-08-06‘);     //某个分区是否存在

三、DDL:

1、建表:

CREATE TABLE IF NOT EXISTS bi.rathan_table_name LIKE bi.rathan_another_tablename;

四、DML:

INSERT INTO TABLE bi.rathan_table_name;    // 追加数据
INSERT OVERWRITE TABLE bi.rathan_table_name;    //覆盖数据
// 如果target目录不存在,则创建。使用了OVERWRITE就会把目标文件夹的数据全部删掉,使用INTO则不会删掉(重名的话会把之前文件重命名为“之前文件名_序列号”);

五、其他:

发现了写了很多的关于hive的blog,在此偷偷mark一下,留待慢慢消化:

http://my.oschina.net/leejun2005/blog/308427#OSC_h2_12

时间: 2024-10-10 08:31:27

hive操作小记(未完成……)的相关文章

【原】hive 操作笔记

1.建表: hive> CREATE TABLE pokes (foo INT, bar STRING);hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);由于很多数据在hadoop平台,当从hadoop平台的数据迁移到hive目录下时,由于hive默认的分隔符是/u0001,为了平滑迁移,需要在创建表格时指定数据的分割符号,语法如下:create table ooo(uid string,n

hive操作DML

-- 向数据表中加载文件,不会对数据进行任何转换,load操作只是复制(本地到hdfs).移动(hdfs上的文件)-- 如果表包含分区,则必须指定每个分区的分区名,filepath可以引用一个文件或一个目录-- 如果数据在hdfs上,且filepath不是绝对的,则hive会相对于/user/进行解释,会移动(记住)-- 如果指定了overwrite,会先删除目标表,再移动数据.如果没有且有文件名冲突,那么现有的文件会被新文件替换.load data [local] inpath 'filepa

hive操作语句使用详解

#创建表人信息表  person(String name,int age) hive> create table person(name STRING,age INT)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' STORED AS TEXTFILE; OK Time taken: 0.541 seconds#创建表票价信息表 ticket(int age,float price) hive> create tab

Hive操作之HQL语句

HQL操作1.Distribute by    distribute by col按照col列把数据分散到不同的reduce    sort    sort by col 按照col列把数据排序    select col,co2 from table_name distribute by col1 sort by col1    asc,col2 desc;    两者结合出现,确保每个reduce的输出都是有序的     应用场景:    * map输出的文件大小不均    * reduce

【hadoop】16、学习hive操作语句

学习DDL语句 创建对象的语句 Create/Drop/Alter Database Create Database CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)]; Drop Database DROP (DATABASE|SC

SVN分支/主干Merge操作小记

一.前言 说来惭愧,鄙人从事开发多年,使用svn已经好几个年头了,但是却仅限于update.commit.compare之类的操作,最近想到github上学习别人写的NIO源码,顺便去熟悉git的使用,但是一想到svn,我心里虚了:用了那么多年却对其一知半解,就连最基本的权限分配都没有做过,更别说进行分支拉取和合并了,何谈去get其他技能?做技术的还是要踏实一点,近一年来,我都在对之前未深入的领域进行扫盲,所以,注定svn是绕不过的坎,于是乎开始各种查资料,安装svn服务端(Virtual SV

通过JDBC驱动连接Hive操作实例 笔记

package com.yuxipacific; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Hive {     public static void main(String[] args) throws Exception {                  Class.forName

Hive操作笔记

hive库清表,删除数据 insert overwrite table lorry.bigdata select * from lorry.bigdata where 1=0

irc操作小记

IRC客户端 HexChat 跨平台支持,目前正在Windows上使用,暂无不满意的地方 polari 支持的命令太少了,功能有限. Empathy 重量级,支持各种消息协议 weechat/irssi 命令行界面,其中weechat架构是可扩展的,并且支持当前流行的脚本语言,如python, perl, ruby:同时高度可配置.以后着重在Linux上使用. IRC服务器 用户量最大的,频道最多的应该是freenode,大的开源软件一般在上面都有对应的频道.本文以freenode网络为例,其他