欢迎投稿

今日深度:

hive入门,

hive入门,


=====hive入门=====

1. 概念

  • Apache Hive™数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。可以将结构投影到已存储的数据上。提供了一个命令行工具和JDBC驱动程序来将用户连接到Hive
  • 主要面向查询操作,一般不进行删除和更新操作,因为hive处理的数据一般都是历史数据
  • hive允许开发者自定义mapreduce处理复杂的分析工作
  • hive是SQL解析引擎,它将SQL转换成M/R 程序,然后在hadoop执行
  • hive的表和数据其实就是hdfs的目录和文件
  • hdfs日志文件(数据源)-- mapreduce将结构投影到已存储数据上(解析引擎) -- 命令行工具和JDBC使用SQL(数据统计)
  • 数据仓库:数据仓库是一个面向主题的,集成的,不可更新的,随时间不变化的数据集合,它用于支持企业或者组织的决策分析处理
  • hive和hbase区别

    • Hive适合用来对一段时间内的数据进行分析查询or统计查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果
    • Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库。HBase可以用来进行实时查询,
    • 数据也可以从Hive写到Hbase,设置再从Hbase写回Hive。

2. hive的体系结构

3. hive的安装

4. hive之CLI命令行方式

5. hive数据类型

hive数据类型有一下5种

* 数字类型
* 时间类型
* 字符串类型
* 其他类型
* 复杂类型
        创建一张表,包含基本数据类型

        create table t_user
            (u_id int,
            u_name string,
            married boolean,
            salary double,
            birthday date
            ); -- 这里不能创建user表,换个表名t_user

        创建一张表,包含数组类型

        create table student (sid int,sname string,project array<string>); 

        -- {1,"tom",["语文","数学","英语"]}

        创建一张表,包含map数据类型

        create table stu2(id int,name string,project map<string,float>);

        -- {1,"tom",<'大学语文',65>}


        创建一张表,用array<map<string,float>>

        create table stu3(id int,name string,grades array<map<string,float>>);

        -- {1,'tom',[<'语文',85>,<'数学',85>]


        创建一张表,包含struct数据类型

            create table stu4(id int,info struct <name:string,age:int,sec:string>);

            --{1,{'tom',10,'男'}}

6. hive的数据存储

  • 基于hdfs
  • 没有专门的数据存储格式
  • 存储结构主要包括:数据库,文件,表,视图
  • 可以直接加载文本文件(.txt文件等)
  • 创建表时,指定hive数据的列分隔符和行分隔符
  • 表分类:内部表,分区表,外部表,桶表 + 视图

www.htsjk.Com true http://www.htsjk.com/hive/35685.html NewsArticle hive入门, =====hive入门===== 1. 概念 Apache Hive™数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。可以将结构投影到已存储的数据上。提供了...
相关文章
    暂无相关文章
评论暂时关闭