美文网首页
【Hive】DDL

【Hive】DDL

作者: 抬头挺胸才算活着 | 来源:发表于2022-01-29 18:49 被阅读0次

    DDL介绍

    • 什么是DDL
      DDL由CREATE、ALTER、DROP三个所组成,但并不涉及表内数据的操作。

    • 建表语法




      创建的表在HDFS的/user/hive/warehouse/dbname.db

    • 原生数据类型


    • 复杂数据类型


    • SerDe
      包含序列化和反序列化对象、读取和写入对象

    • 显式类型转换
      CAST('100' as INT)
      转换不成功为NULL

    • 内部表与外部表
      内部表删除的时候会删除元数据和具体数据,外部表删除的时候会只会删除元数据,HDFS的数据不会被删除。


    • 分区表
      为什么需要分区表?分区表可以像索引一样减少全表扫描
      分区字段不能是表中的字段
      分区表可以避免全表扫描

    • 多重分区表


    • 分区表总结


    • 分桶表
      分区表是拆分成若干个独立的文件夹
      分桶表是拆分成若干个独立的小文件

    语法练习

    1、分隔符为\t
    row format delimited fields terminated by "\t";

    2、分割
    木偶奇遇记:288-俘虏兄弟:299
    使用下面的创表语句,有一个字段是map类型,元素之间用-分割,key和value用:分割

    collection item terminated by '-'
    map keys terminated by ':'
    

    3、分区表加载数据(静态分区)
    load data local inpath 'xxx' into table table_name partition(role='xxx')
    在HDFS上生成文件夹


    4、分区表加载数据(动态分区)
    insert into table t_all_hero_part_dynamic partition(role)
    select tmp.*, tmp.role_main from t_all_hero tmp;
    根据查询结果自动分区,将t_all_hero的role_main列作为分区列,进去HDFS可以看到按照列划分文件夹

    事务表

    早期没有设计事务功能,后来的事务表可以插入和修改

    视图

    虚拟表,没有实际的数据
    create view v_usa_covid19 as select * from t_usa_covid19 limit 5;

    • 好处
      1、保护数据。比如只暴露用户名不暴露密码,只暴露某个部门的
      2、降低查询的复杂度,优化查询语句,但没有优化查询小v了。把子查询的封装为视图

    物化视图

    提前计算好,将结果保存起来,可以加快查询效率。
    物化视图是一个真实的表。
    开启重写功能可以利用物化视图。

    相关文章

      网友评论

          本文标题:【Hive】DDL

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