zoukankan      html  css  js  c++  java
  • Hive中库和表的常见操作

    @

    库的常见操作

    1.增

     CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
      [COMMENT database_comment]  // 库的注释说明
      [LOCATION hdfs_path]        // 库在hdfs上的路径
      [WITH DBPROPERTIES (property_name=property_value, ...)]; // 库的属性
    
      
      create database  if not exists mydb2 
      comment 'this is my db' 
      location 'hdfs://hadoop101:9000/mydb2' 
      with dbproperties('ownner'='jack','tel'='12345','department'='IT');
    

    2.删

    drop database 库名: 只能删除空库
    drop database 库名 cascade: 删除非空库
    

    3.改

    use 库名: 切换库
    		
    dbproperties: alter database mydb2 set dbproperties('ownner'='tom','empid'='10001');
    同名的属性值会覆盖,之前没有的属性会新增
    

    4.查

    show databases: 查看当前所有的库
    show tables in database: 查看库中所有的表
    desc database 库名: 查看库的描述信息
    desc database extended 库名: 查看库的详细描述信息
    

    表的常见操作

    1.增

    CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 
    [(col_name data_type [COMMENT col_comment], ...)]   //表中的字段信息
    [COMMENT table_comment] //表的注释
    
    [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 
    [CLUSTERED BY (col_name, col_name, ...) 
    [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] 
    
    [ROW FORMAT row_format]  // 表中数据每行的格式,定义数据字段的分隔符,集合元素的分隔符等
    
    [STORED AS file_format] //表中的数据要以哪种文件格式来存储,默认为TEXTFILE(文本文件)
    					可以设置为SequnceFile或 Paquret,ORC等
    [LOCATION hdfs_path]  //表在hdfs上的位置
    
    • 建表时,不带EXTERNAL,创建的表是一个MANAGED_TABLE(管理表,内部表)
    • 建表时,带EXTERNAL,创建的表是一个外部表!

    外部表和内部表的区别是:

    • 内部表(管理表)在执行删除操作时,会将表的元数据(schema)和表位置的数据一起删除!
    • 外部表在执行删除表操作时,只删除表的元数据(schema),不会删除在hive上的实际数据。

    在企业中,创建的都是外部表!在hive中表是廉价的,数据是珍贵的!

    建表语句执行时:

    • hive会在hdfs生成表的路径;
    • hive还会向MySQl的metastore库中掺入两条表的信息(元数据)

    管理表和外部表之间的转换:
    将表改为外部表:

    alter table p1 set tblproperties('EXTERNAL'='TRUE');
    

    将表改为管理表:

    alter table p1 set tblproperties('EXTERNAL'='FALSE');
    

    注意:在hive中语句中不区分大小写,但是在参数中严格区分大小写!

    2.删

    drop table 表名:删除表

    3.改

    4.查

    desc  表名: 查看表的描述
    desc formatted 表名: 查看表的详细描述
    
  • 相关阅读:
    matplotlib.pyplot.gca().set_xlim(初始值,末值) 与 matplotlib.pyplot.xticks()的区别
    MySql学习-5.查询2
    MySql学习-4.查询1
    SQL函数学习(一):substring()函数
    SQL函数学习(二):DATEADD() 函数
    SQL函数学习(三):convert()函数
    sql标识符和格式
    PIVOT就是行转列,UNPIVOT就是列传行
    行列转换之静态、动态、PIVOT方法
    sql Server函数大全
  • 原文地址:https://www.cnblogs.com/sunbr/p/13759205.html
Copyright © 2011-2022 走看看