HIVE快速入门教程5Hive创建,更改和删除表

作者: python测试开发 | 来源:发表于2019-06-11 15:16 被阅读31次

    表操作

    ive> create table sample(empid int, empname string);
    OK
    Time taken: 2.709 seconds
    hive> show tables;
    OK
    guru99
    sample
    Time taken: 0.082 seconds, Fetched: 2 row(s)
    hive> alter table sample rename to sample_new;
    OK
    Time taken: 1.058 seconds
    hive> show tables;
    OK
    guru99
    sample_new
    Time taken: 0.08 seconds, Fetched: 2 row(s)
    hive> drop table sample_new;
    OK
    Time taken: 1.549 seconds
    hive> 
    

    参考资料

    表类型及其用法:

    类似PostgreSQL、MYSQL等。 可以在表上执行过滤,连接等功能。

    Hive处理两种类型的表结构,如内部表和外部表,具体取决于Hive中模式的加载和设计。

    内部表格

    • 内部表本质上是强耦合的。在这种类型的表中,首先我们必须创建表并加载数据。
    • 们可以将此称为模式数据 。
    • 通过删除此表将删除数据和结构。
    • 该表的位于/user/hive/warehouse。

    何时选择内部表格:

    • 如果处理数据在本地文件系统中可用
    • 如果我们希望Hive管理数据的完整生命周期,包括删除

    内部表的示例代码片段

    hive> CREATE TABLE guruhive_internaltable (id INT,Name STRING) Row format delimited   Fields terminated by '\t';
    OK
    Time taken: 0.491 seconds
    $ hdfs dfs -put data.txt /user/hduser/
    $ hdfs dfs -cat /user/hduser/data.txt
    1   Bob
    2   Angela
    
    hive> LOAD DATA INPATH '/user/hduser/data.txt' INTO table guruhive_internaltable;
    Loading data to table default.guruhive_internaltable
    OK
    Time taken: 0.715 seconds
    hive> select * from guruhive_internaltable;
    OK
    1   Bob
    2   Angela
    Time taken: 0.372 seconds, Fetched: 2 row(s)
    hive> DROP TABLE guruhive_internaltable;
    OK
    Time taken: 0.653 seconds
    

    外部表格

    • 外部表本质上是松耦合的。 数据将在HDFS中提供。该表将在HDFS数据上创建。
    • 换句话说,我们在数据上创建模式 。
    • 在删除表时它只删除模式,数据仍然可以像以前一样在HDFS中使用。
    • 外部表提供了为存储在HDFS中的数据创建多个模式的选项,而不是每次模式更新时都删除数据

    何时选择外部表:

    • 如果处理HDFS中可用的数据
    • Hive外部使用文件

    外部表的示例代码片段

    hive> CREATE EXTERNAL TABLE guruhive_external(id INT,Name STRING) Row format delimited  Fields terminated by '\t';
    OK
    Time taken: 0.369 seconds
    hive> LOAD DATA INPATH '/user/hduser/data.txt' INTO TABLE guruhive_external;
    FAILED: SemanticException Line 1:17 Invalid path ''/user/hduser/data.txt'': No files matching path hdfs://localhost:54310/user/hduser/data.txt
    hive> LOAD DATA INPATH '/user/hduser/data.txt' INTO TABLE guruhive_external;
    Loading data to table default.guruhive_external
    OK
    Time taken: 0.798 seconds
    hive> select * from guruhive_external;
    OK
    1   Bob
    2   Angela
    
    特征 内部 外部
    Schema Data on Schema Schema on Data
    存储位置 /usr/hive/warehouse HDFS
    数据可用性 在本地文件系统中 HDFS

    相关文章

      网友评论

        本文标题:HIVE快速入门教程5Hive创建,更改和删除表

        本文链接:https://www.haomeiwen.com/subject/fnkqfctx.html