hive入门笔记

1.hive简介:

Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言.

2.hive如何存储数据:

hive是将元数据保存到数据库中,例如mysql或者derby数据库中,

3.hive的内部表和外部表:

内部表hive本身管理,外部表由hdfs管理,

内部表会保存在默认路径,外部表自己设定路径。

内部表在删除数据时会把元数据和存储数据都删除,外部表不会删除存储在hdfs上的文件。

内部表建表语句

create table t_order(id string,create_time string,amount float,uid string)
row format delimited
fields terminated by’,’;  #以,为分隔号,不用指定路径

外部表建表语句

create external table t_lxq (ip string,url string,access_time string)
row format delimited
fields terminated by ‘,’;
location ‘/lxq /log’;  #需要指定路径

分区表

create table t_lxqs(ip string,url string,access_time string)
partitioned by(dt string)
row format delimited
fields terminated by ‘,’;

4.hive建表

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 

(‘id‘ tinyint comment ‘商品id‘)partitioned by ('dt' string) row format serde  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'

WITH SERDEPROPERTIES (
  'field.delim'='\u0001',
  'serialization.format'='\u0001') (hive默认分隔符)

(建表的文件存储格式,有ORC,RE,CSV,JsonSerDe等,我司用的orc,用于降低Hadoop数据存储空间和加速Hive查询速度,以字典形式存储,方便mapreduce计算,ORC是列式存储,有多种文件压缩方式,并且有着很高的压缩比,提供了多种索引,row group index、bloom filter index,)sorted as inputformat 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'(ORC (Optimized Record Columnar)是RC File 的改进,主要在压缩编码、查询性能上进行了升级; 在ORC格式的hive表中,记录首先会被横向的切分为多个stripes,然后在每一个stripe内数据以列为单位进行存储)OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'

LOCATION 'hdfs://nameservice1/user/hive/warehouse/dmax_ods.db/table_name    

TBLPROPERTIES('last_modified_by'='datax',
  'last_modified_time'='1576464537',
  'transient_lastDdlTime'='1576464314') (实际上就是table properties,TBLPROPERTIES允许开发者定义一些自己的键值对信息,comment:可以用来定义表的描述信息;hbase.table.name:hive通过 storage handler(暂放)将hive与各种工具联系起来,这是是使用hive接入hbase时,设置的属性(暂放);immutable:顾名思义‘不可变的’,当表的这个属性为true时,若表中无数据时可以insert数据,但是当表已经有数据时,insert操作会失败。不可变表用来防止意外更新;EXTERNAL:通过修改此属性可以实现内部表和外部表的转化。)

5.hive 的insert into和insert overwrite

insert into只是简单的插入数据到后面,insert overwrite覆盖之前的数据。

插入语法

INSERT overwrite TABLE dmax_mds.mds_lsh_trade_order partition (dt = '$DATE(0)')

6.查看建表语句

show create table tablename;

7.hive的数据类型

类型描述示例
TINYINT一字节整数, -128 ~ 12712
SMALLINT二字节整数,-32768 ~ 32767255
INT/INTEGER4字节整数 -2,147,483,648 ~ 2,147,483,6472555
BIGINT4字节整数,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807-250 000 000 000
FLOAT4字节单精度小数3.1415
DOUBLE8字节双精度小数3.141529
DECIMAL任意数字10
STRING字符串"abc"
VARCHAR字符串,字符串长度只能为1~65355"abc"
CHAR字符串,字符串长度只能为1~255"a,bc"
TIMESTAMP时间戳,格式为yyyy-mm-dd HH:mm:ss2019-2-28 13:25:25
DATE日期,格式为yyyy-mm-dd2019-2-28
arrays数组,ARRAY(data_type)
maps键值对,Map(primitive_type, data_type)
structs结构体,STRUCTcol_name : data_type)
union联合体,UNIONTYPE(data_type, data_type)

8. hive正则

正则匹配字符解释:

^ 表示开头

$ 表示结尾

. 表示任意字符

* 表示任意多个

regexp_extract(str,regexp[,idx])字符串正则表达式解析函数

str是被解析的字符串,regexp是正则表达式,idx是返回结果。返回结果为0默认全部返回,为1匹配一次

小括号( )标记一个子表达式的开始与结束的位置
**1表示返回正则表达式中第一个() 对应的结果 **。
2表示返回正则表达式中第二个() 对应的结果

0表示把整个正则表达式对应的结果全部返回

regexp_replace函数regexp_replace(string A, string B, string C) 

把A字符串中的B部分转为C部分

9. hive \001 是默认分隔符

10.hive:文本中的特殊字符处理\t\r\n

\t:tab,跳格(移至下一列) 
\r:回车 
\n:换行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值