zoukankan      html  css  js  c++  java
  • Hive记录-Hive常用命令操作

    1.hive支持四种数据模型
    • external table ---外部表:Hive中的外部表和表很类似,但是其数据不是放在自己表所属的目录中,而是存放到别处,这样的好处是如果你要删除这个外部表,该外部表所指向的数据是不会被删除的,它只会删除外部表对应的元数据;而如果你要删除表,该表对应的所有数据包括元数据都会被删除。
    • table ---表,存储在HDFS的一个目录中。
    • partition ---分区:在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中。

    • bucket ---桶,对指定的列计算其hash,根据hash值切分数据,目的是为了并行,每一个桶对应一个文件(注意和分区的区别)。

    2.hive支持的数据类型

    • 基本类型:tinyint, smallint, int,bigint, boolean, float, double, string,date

    • 复杂类型:struct,map,array

    3.创建Create语句

    3.1.创建表

    create table test (id int, name string); 
    3.2.创建外部表

    create external table page(id int,page string,  ip string comment 'IP Address of the User')
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '54'  STORED AS TEXTFILE  LOCATION '/usr/hive/external';

    3.3.创建分区表

    create table pageurl(id int,page string,  ip string comment 'IP Address of the User')
    PARTITIONED BY(date STRING, pos STRING) ROW FORMAT DELIMITED ‘	’  FIELDS TERMINATED BY '
    '  STORED AS SEQUENCEFILE;

    3.4.创建bucket表

    create table pageu(id int,page string,  ip string comment 'IP Address of the User')
    PARTITIONED BY(date STRING, pos STRING)
    CLUSTERED BY(userid) SORTED BY(id) INTO 32 BUCKETS
    ROW FORMAT DELIMITED ‘	’
    FIELDS TERMINATED BY '
    '
    STORED AS SEQUENCEFILE;

    3.5 创建数据库:create database test

    4.show语句

    show databases ---查询数据库

    show tables ---查询数据表

    show role grant user root ---查询用户拥有的角色

    show grant user  root ---查询用户拥有的权限

    show functions ---查询hive所有支持的函数

    DESCRIBE FUNCTION max---查询max方法的介绍

    DESCRIBE FUNCTION EXTENDED max ---查询max方法的详细介绍

    DESCRIBE test ---查询test表的结构

    describe database test;--- 查询test数据库的结构

    use test ---用test数据库

    5.drop语句

    5.1 删除表 drop table test;

    5.2 删除数据库 drop database test;

    5.3 删除角色 drop role role1;

    6.load语句

    load data (local) inpath '/usr/test.txt'  (overwrite覆盖)   into table test;

    7.insert语句

    insert overwrite local  directory '/opt/test/data'    select * from test;

    insert overwrite table test2  select * from test;

    insert into table test3 select * from test







  • 相关阅读:
    在ubuntu 12.04 中配置java环境(安装jdk, tomcat, maven, eclipse)
    java 对EXCEL表格的处理
    JAVA下载文件中文乱码问题
    Java 判断文件夹、文件是否存在、否则创建文件夹
    jspSmartUpload上传下载全攻略
    intellJ实用技巧
    main 方法,
    老师,有没有类似微信布局的好的开源库?
    Android 日常开发总结的技术经验 60 条
    新的android studio创建的fragment工程跟老师讲的结构有区别
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7684599.html
Copyright © 2011-2022 走看看