hive创建数据库

hive创建数据库

create  database  IF NOT EXISTS  sip_data_drc  COMMENT '测试数据库'  LOCATION '/tmp/hive/root/' WITH DBPROPERTIES ('creater'='liuzd','date'='20191010');

    IF NOT EXISTS:如果不存在则创建

    COMMENT:添加注释

    LOCATION:指定hdfs存放路径

    WITH DBPROPERTIES:添加自定义属性

hive 启动服务命令及连接

启动元数据服务
  ./hive --service metastore &
启动server
  ./hive --service hiveserver2   -hiveconf hive.server2.thrift.port=10000 &
连接hive服务
beeline -u "jdbc:hive2://主机名:端口/default;hive.server2.proxy.user=hive"

查询数据库信息

desc database  extended sip_data_drc;

删除数据库

drop database sip_data_drc CASCADE;

数据库切换

use sip_data_drc

常用数据类型


    int:整型 

    bigint:长整型

    float:浮点型

    double:双精度

    string:字符串

创建hive表

外部表
CREATE EXTERNAL TABLE IF NOT EXISTS resource 
    (id int COMMENT '编号',name string COMMENT '姓名') 
    COMMENT '人员表' 
    STORED AS TEXTFILE 
    LOCATION '/user/hdfs/'
内部表
CREATE TABLE IF NOT EXISTS person 
    (id int COMMENT '编号',name string COMMENT '姓名') 
    COMMENT '人员表' 
    STORED AS TEXTFILE;
临时表
CREATE TEMPORARY TABLE IF NOT EXISTS person_tmp 
    (id int COMMENT '编号',name string COMMENT '姓名') 
    COMMENT '人员临时表' 
    STORED AS TEXTFILE 
    LOCATION '/user/hdfs/';

    EXTERNAL:创建外部表的关键字,默认是内部表

    comment:添加注释,跟在字段后就是字段的注释,跟在表后就是表的注释

    ROW FORMAT DELIMITED  FIELDS TERMINATED BY '\t':指定加载数据的列分隔符为制表符

    location:指定表数据存放路径
like方式创建表,复制表结构
 CREATE external table table_test1 like hive_table location '/user/hive/warehouse/test.db/emp';

删除表

DROP TABLE [IF EXISTS] table_name [PURGE];

如果被删除的表有视图引用,在删除时不会警告,需要手动检查或重建视图
如果指定了PURGE,删除表时数据会从HDFS上完全清除,而不会转入回收站

insert方式插入数据(追加)

 insert into new_table select * from hive_table;

insert方式插入数据(覆盖)

insert overwrite  new_table select * from hive_table;

注:hive_table和new_table结构要一致,字段顺序要一致。

加载hdfs文件到hive

 LOAD DATA INPATH '/user/hive/warehouse/ts_drc_catalog_resource_20191010.txt' OVERWRITE INTO TABLE table_resource;

版权声明:本文为JOLBA原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。