• 【Hive】建表


    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]

            [LOCATION hdfs_path]

      参数解析:

    1. PARTITIONED 表示的是分区,不同的分区会以文件夹的形式存在,在查询的时候指定分区查询将会大大加快查询的时间。
    2. CLUSTERED表示的是按照某列聚类,例如在插入数据中有两项“张三,数学”和“张三,英语”,若是CLUSTERED BY name,则只会有一项,“张三,(数学,英语)”,这个机制也是为了加快查询的操作。
    3. STORED是指定排序的形式,是降序还是升序。
    4. BUCKETS是指定了分桶的信息,这在后面会单独列出来,在这里还不会涉及到。
    5. ROW FORMAT是指定了行的参数。还要指定列的信息,如ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY ' '
    6. STORED AS是指定文件的存储格式。Hive中基本提供两种文件格式:SEQUENCEFILE和TEXTFILE,序列文件是一种压缩的格式,通常可以提供更高的性能。
    7. LOCATION指的是在HDFS上存储的位置

      示例:

        create table if not exists studentno  

        (  

            stuno string comment 'student number',  

            stuname string comment 'student name'  

        )  

        comment 'student information'  

        row format delimited fileds terminated by ' ' lines terminated by ' '  

        stored as textfile  

        location '/ex_tmp/student';  

    2.建立外部表

      建外部表时要加external关键字

      create external table tablename(...)

    3.删除表

      drop table [IF EXISTS] tablename;

    4.内部表和外部表的区别

      创建外部表需要添加 external 字段。而内部表不需要。

      删除外部表时,HDFS中的数据文件不会一起被删除。而删除内部表时,表数据及HDFS中的数据文件都会被删除。

    5.建立临时表

      create temporary table tablename as(...)

       临时表建立只能提供给当前使用,退出的时候就会被自动删除掉。

    6.一些操作

      desc tablename;查看表结构信息

      describe tablename;查看表的信息

      show partitions tablename;查看表分区

  • 相关阅读:
    AngularJs用户登录的一些处理
    百度地图api-查询周边
    Git常用命令整理
    AngularJs控制器运行前方法,操控导航栏隐藏
    AngularJs中,如何在数据加载完成后,执行Js脚本
    ZZ:Linux的chattr与lsattr命令详解
    ZZ:实战 SSH 端口转发
    Python 删除 恢复 Redshift
    [原创]Python 命令 恢复 删除 RDS
    AWS CLI 命令学习 之 bat 控制EC2 启停
  • 原文地址:https://www.cnblogs.com/zzhangyuhang/p/8698353.html
Copyright © 2020-2023  润新知