hive 介绍

1.概述

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

  Hive 定义了简单的类SQL查询语言HQL,它允许熟悉SQL的用户查询数据,也允许熟悉Map/Reduce的开发者开发自定义的mapperreducer来处理内建的mapperreducer无法完成的复杂的分析工作

  Hive不是一个完整的数据库,受限于Hadoop和HDFS的约束和局限性,Hive可以在HDFS上存储的大规模数据集上运行查询,但是不能提供实时查询。Hive可以通过查询或文件将数据导入表中,但是不支持记录级别的更新、插入和删除操作。

  Hive被设计用来处理大规模数据,因此提交查询到返回结果所需的时间可能很长,所以,Hive最适合用来维护海量数据,对数据进行数据挖掘,给出意见和报告

  不同于其他传统数据库的写时模式(即在数据写入数据库时对模式进行检查),Hive在数据加载时不会进行数据模式检查,而是在查询时进行,也就是读时模式


2.常用概念

1)內表、外表:

    关键字external 区分,外表无控制权,外表用Location 确定路径;內表drop 会同时drop 元数据和关联数据;外表只是drop 元数据;对于元数据有独立的关系型数据库维护(MYSQL)


3.使用

 - desc

 - hive strict

 - 调用Hive时,添加-S(大写)参数,可以开启静默模式

 - 以--开头的行会被注释掉

mysqlsql执行顺序,hive可以参考:

    1)FROM

    2)ON

    3)OUTER(JOIN)

    4)WHERE

    5)GROUPBY

    6)CUBE|ROLLUP

    7)HAVING

    8)SELECT

    9)DISTINCT

    10)ORDERBY

    11)TOP

4.数据加工

对数据进行深加工,一般使用transformudfreflectUDF三种方法

- Transform能在mapreduce阶段运行,输入为mapreduce阶段的所有数据,输出即为该阶段的输出。方便、快捷,只要一个程序能从标准输入读数据并输出到标准输出,就可以通过transform调用,能完成复杂的逻辑数据处理任务,成本低


- Reflect能够直接调用java中已有的class和方法来完成数据的简单处理,大大丰富了hive的简单数据处理能力


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值