• hive基础


    hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,提供简单的sql查询功能,可以将sql语句转换为mapreduce任务进行运行

    Metastore(hive 元数据)

    hive将元数据存储在数据库中,比如mysql,derby,hive中的元数据包括表的名称,表的列和分区及其属性,表的数据所在的目录

    hive将数据存储在hdfs,大部分的查询,计算由mapreduce来完成

    hive数据仓库与数据库的异同

    1)由于hive采用了sql的查询语言hql,因此很容易将hive理解为数据库,其实从结构上来看,hive和数据库除了拥有类似的查询语言,再无类似之处

    2)数据存储的位置

    3)数据格式

    4)数据更新,hive读多写少 ,hive中不支持对数据的改写和添加,所有的额数据都是在加载的时候中确定好的

    不支持使用update修改数据

    hdfs一次写入多次读写

    5)执行 .hive通过mapreduce来实现,而数据库通常有自己的执行引擎

    6)执行延迟,由于没有索引,需要扫描整个表,因此延迟较高,另外一个导致延迟高的因素是mapreduce框架

    7)可扩展性

    8)数据规模

    hive几种基本表类型:内部表,外部表,分区表,桶表

    创建表

    外部表创建表的时候,不会移动数据到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径

    内部表会把数据复制或剪切到表的目录下

    删除表

    外部表在删除表的时候只会删除表的元数据信息,不会删除表数据

    内部表删除时会将元数据信息和表数据同时删除

    几种导出数据的方式

    1 insert overwrite ...导出到本地目录 insert overwrite lcoal directory '/home/...'  select * from..

    2 insert overwrite ...导出到hdfs目录 insert overwrite directory '/home/...' select * from..

    3 hive -e 'Hql query' >> test         bin/hive -e 'select * from db01.student' >> test.txt

    4)sqoop

    三种分组的区别

    row_number 不管col2字段的值是否相等,行号一致递增,比如:有两条记录的值相等,但一个是第一,一个是第二

    rank 上下两条记录的col2相等时,记录的行号是一样的,但下一个col2值得行号递增N(N是重复次数),比如:两条并列第一,下一个是第三,没有第二

    dense_rank 上下两条记录的col2相等时,下一个col2值得行号递增1,比如:有两条并列第一,下一个是第二

  • 相关阅读:
    iOS 发送位置消息
    集成 jpush-react-native 常见问题汇总 (iOS 篇)
    RESTful API 最佳实践
    RESTful API 设计指南
    理解RESTful架构
    PHP 调用 shell
    Laravel Model updating&updated 事件使用注意事项
    sudo 命令报 unable to resolve host 导致反应速度变慢
    Nginx设置禁止通过IP访问服务器并且只能通过指定域名访问
    Homestead can not mount nfs on macos catalina
  • 原文地址:https://www.cnblogs.com/fengyouheng/p/15416693.html
Copyright © 2020-2023  润新知