HIVE 走近大数据之Hive入门---慕课网---个人笔记总结

HIVE学习笔记
    1、创建表
        create table emp(
            id int,
            name string,
            gender string
        )

    2、创建表写入想要存放的位置
        create table emp(
            id int,
            name string,
            gender string
        )
        location '/usr/data/hive/emp'

    3、创建表指定分隔符,默认是制表符('\t')
        create table emp(
            id int,
            name string,
            gender string
        )
        //用逗号作为分隔符(',')
        row format delimited fields terminated by ','  

    4、快速复制表
        create table emp_copy
        as
        select * from emp;

        create table emp_copy
        //用逗号作为分隔符(',')
        row format delimited fields terminated by ',' 
        as
        select * from emp;


    5、增加表列
        alter table emp add columns(class string)

    6、删除表 如果开启了回收机制,删除后会移动到里面,然后定期删除
        drop table emp 

    7、创建分区表
        1)内部表:Partition对应于数据库的partition列的密集索引,在hive中表中的一个partition对应于表下的一个目录,所有的partition的数据都存储在对应的目录中;
        explain可以查询执行效率是否提升,执行过程从下往上,从右往左
            insert into table emp_table partition(gender = 'M')  select id, name from emp where gender = 'M';
            insert into table emp_table partition(gender = 'F')  select id, name from emp where gender = 'F';
        2)外部表(External Table):指向已经在HDFS中存在的数据,可以创建partition,外部表只有一个过程,加载数据和创建表时同时完成,并不会移动到数据库目录中,
        只是与外部数据建立一个链接。当删除一个外部表时,仅删除该链接
            external table emp(
                id int,
                name string,
                gender string
            )
            //用逗号作为分隔符(',')
            row format delimited fields terminated by ',' 
            //指定数据存放位置
            location '/usr/data/hive/emp'
        3)不同点:外部表和内部表在元数据组织上是相同的,而实际数据的存储则有较大的差异
        4)桶表(Bucket Table)
            桶表是对数据进行哈希取值,然后放到不同文件中存储
            create table emp(
                id int,
                name string,
                gender string
            )
            //根据name字段进行放置5个桶
            clustered by(name) into 5 buckets;
        5)视图(View)
            视图是一种虚表,是一个逻辑概念;可以跨越多张表,视图简历在已有的表的基础上,视图赖以建立的这些表称谓基表,
            视图可以简化复杂的查询
            //emp、dept两个表为基表,由视图展示出来---只能做展示
            create view empInfo 
            as
            select e.id, e.name, e.gender, dept.age
            from emp e, dept d
            where e.id = dept.id
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

猜你喜欢

转载自blog.csdn.net/walykyy/article/details/83041843