美文网首页
招聘岗位上到处都要求熟练的Hive究竟是何方神圣?

招聘岗位上到处都要求熟练的Hive究竟是何方神圣?

作者: 及未来 | 来源:发表于2020-04-15 14:19 被阅读0次

    简介

        Hive是基于Hadoop的数据仓库大数据组件。将易上手的SQL语句转化成MapReduce作业

    数据结构

    1. 元数据
      Hive存储的是一张张的数据表,而元数据就是其中的表结构
      存储形式:存于Derby数据库,或MySQL,Oracle数据库。

    2. 表数据
      表中存储的数据。
      存储形式:每张表存于HDFS中的一个目录中

    数据类型

    • 基本数据类型
      • tinyint / smallint / int / bigint : 整数类型
      • float / double : 浮点数类型
      • boolean : 布尔类型
      • string : 字符串类型
    • 复杂数据类型
      • Array : 数组类型
      • Map : 集合类型,键值对Key / Value形式
      • Struct : 结构类型,包含不同数据类型的元素,跟C语言中的Struct类似
    • 时间数据类型
      • Date : 只包含到天的数据,没法精确到时分秒。
      • Timestamp : 长整型数字,从(格林威治时间)1970年1月1日0时0分0秒到现在的总毫秒数

    数据模型

        MySQL,Oracle用表作为数据模型存储数据。Hive自然也有。下面简要介绍一下Hive的几种常用的表吧。

    1. 内部表
      最接近普通关系型数据库的数据模型;
      删除数据时会将元数据与表数据一同删除,HDFS中的数据文件一同被删除;
    create table bucket_table
    (sid int, sname string, age int)
    row format delimited fields terminated by '\t';
    -- 指定数据间分隔符,默认为制表符'\t'
    
    1. 外部表
      与HDFS中某个目录下的数据文件建立连接;
      比较像指针,指向HDFS中某个目录;
      删除数据时,会删除元数据,与该目录的连接,但不会真正删除HDFS中的数据
    create external table external_student
    (sid int, sname string, age int)
    row format delimited fields terminated by '\t'
    location '/input';  --指定表数据所在 HDFS目录
    
    1. 桶表
      用哈希算法将表数据分到5个中,一般可以将数据打乱放到各个桶中,可以处理数据倾斜问题
    create table bucket_table
    (sid int, sname string, age int)
    clustered by(sname) into 5 buckets --将数据通过哈希算法分成5部分
    row format delimited fields terminated by '\t';
    

    相关文章

      网友评论

          本文标题:招聘岗位上到处都要求熟练的Hive究竟是何方神圣?

          本文链接:https://www.haomeiwen.com/subject/cujcvhtx.html