Hive与ETL基础—学习笔记[3]

来源:互联网 发布:fdd lte网络 编辑:程序博客网 时间:2024/06/07 05:58

Hive与ETL基础

1、日志收集
2、Hive数据类型
3、Hive表与分区
4、Hive基本操作
5、Hive常用函数
6、HDFS文件格式
7、Hive表压缩存储
8、ORCFile
9、Hive SerDe


1、Flume:日志收集
这里写图片描述
常见的收集日志的工具有两种:(1)最早收集日志的是Facebook开发的 Scribe。开源。(2)Flume更加完善如上图所示。HDFS批处理。Kafka是实时性处理,消息队列。Flume_bypass主要是帮我们做测试,查看日志是否打上。


2、Hive数据类型
(1)当日志收集到HDFS上,实际上是使用Hive来做相关分析。对海量原始数据的操作的是ETL。那么Hive可用于ETL。
(2)Hive本质上是基于SQL的查询引擎。
(3)对于列的数据有原始数据类型:Tinyint、smallint、bigint、boolean、float、double、string、timestamp、、、
(4)数据库和数据仓库查询中数据类型:Struct/map/array
(5)分隔符:\n,行分隔符;\A,列分隔符;\B,array、Struct分隔符;\C,Map的key和value分隔符。


3、Hive-table、Partition、Buckets和External table
(1)Hive中的table与数据库中table一样,每一个table在Hive中都对应一个目录来存储数据。

(2)Hive中的partition与Partition列的密集索引。表中的一个Partition对应于表下的一个目录。

(3)Hive中的Buckets与对指定列计算hash,根据hash值切分数据,目的是为了并行,每一个Bucket对一个文件。

(4)External table指想已存在HDFS中存在的数据,创建Partition。

(5)External table权限不够使用数据。


4、Hive-table 创建
与传统的sql创建表格式差不多,但要指定格式,比如行、列分隔符等。


5、Hive record的存储(JSON)
与传统的sql创建表格式差不多,但要指定格式,比如行、列分隔符等。


6、Hive 外部表
只删除元数据。


7、分区、导入数据
Partition。


8、Hive DML(数据操纵语言)
(1)Select … from
(2)where
(3)group by
(4)join
(5)order by & sort by
(6)distribute by with sort by
(7)cluster by
(8)cast
(9)union all
(10)sample data:采样,对也很了解。


9、HDFS文件格式
(1)TextFile(XML/JSON):解析开销大,不具备类型和模式;
(2)SequenceFile:

0 0
原创粉丝点击