`
flyingdutchman
  • 浏览: 358475 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

深入学习《Programing Hive》:Hive的DDL数据定义操作

    博客分类:
  • Hive
阅读更多
         在上一节《深入学习《Programing Hive》:Hive的数据模型(表)》中,已经学习过表的定义,接下来接着学习Hive的DDL操作。
         复制表结构:
         CREATE TABLE IF NOT EXISTS students2 LIKE students;         
         
               
         查看表结构:
         DESCRIBE TABLE students;
         
 
         删除表:
         DROP TABLE students;
         

         创建视图:
         Hive中的视图(view)的概念和传统数据库中的表是相同的,是只读的,目前还不支持不支持物化视图。
         如果在创建试图后,再将基本表中被视图引用的列修改,那么修改后的数据列将不会体现在视图中;如果基本表被删除或以不兼容的方式被修改,则查询该视图时会失败。      
         CREATE VIEW IF NOT EXISTS view_students (user_no,name,score)
         AS 
         SELECT user_no,name,score FROM students;
         

         删除视图:
         DROP VIEW view_students;
         
              
         定制表存储方式:
         CREATE TABLE IF NOT EXISTS employees(
             no STRING,
             name STRING,
             salary FLOAT,
             subordinates ARRAY<STRING>,
             deductions MAP<STRING,FLOAT>,
             address STRUCT<street:STRING,district:STRING,city:STRING,province:STRING,ZIP:STRING>
         )
         ROW FORMAT DELIMITED
         FIELDS TERMINATED BY '\001'
         COLLECTIN ITEMS TERMINATED BY '\002'
         MAP KEYS TERMINATED '\003'
         LINES TERMINATED BY '\n'
         STORED AS 
         INPUTFORMAT 'org.linkedin.haivvreo.AvroContainerInputFormat'
         OUTPUTFORMAT 'org.linkedin.haivvreo.AvroContainerOutputFormat';   
         
             
         修改表结构:
         1)、重命名表
         ALTER TABLE table_name RENAME TO new_table_name;
         

         只修改了表名,不会改变表结构和数据存放的位置。
         2)、修改列名、类型、位置及注释
         CREATE TABLE IF NOT EXISTS test(a INT,b STRING,c FLOAT);//创建测试表
         //修改列名
         ALTER TABLE test CHANGE a a2 INT;
         /*将a列的名字改为a2,并将其数据类型改为STRING,然后将之放在b列之后;修改
          *   后的表结构为:b INT,a2 STRING,c FLOAT
          */
         ALTER TABLE test CHANGE a a2 STRING AFTER b;
         /* 
          * 将b列的名字改为b2,并将其数据类型由FLOAT改为DOUBLE,然后将之
          * 放在第一列;修改后的表结构为:
          * b2 DOUBLE,a STRING,c FLOAT
          */
         ALTER TABLE test CHANGE b b2 DOUBLE FIRST; 
         

         列的改变只会修改Hive的元数据,而不改变实际的数据。
         用户应该确保元数据的定义和实际的数据结构保持一致。
         3)、增加新列
         ALTER TABLE test ADD COLOMNS(d INT,e STRING);         
         

         4)、改变表的数据存储格式
         ALTER TABLE test SET FILEFORMAT SEQUENCEFILE;         
         

         5)、添加分区Partition
         ALTER TABLE students ADD PARTITION(ds = '2013-05-07',country = 'china')
              LOCATION '/usr/test/data/test.txt'; 
         
   
         6)、删除分区Partition
         ALTER TABLE students DROP PARTITION(ds = '2013-05-07',country = 'china');    
         

         7)、创建函数
         CREATE TEMPORARY FIUNCTION aFunc as class_name;    
         

         8)、删除函数
         DROP TEMPORARY FIUNCTION aFunc;    
         

         9)、显示表
         SHOW TABLES students;    
         

         9)、显示分区
         SHOW PARTITIONS students;    
         
分享到:
评论

相关推荐

    HIVE编程指南

    HIVE编程指南中文版,是由programing hive翻译过来

    Hive编程中文版

    Hive编程指南中文版翻译,Hive programing

    Programing1:编程的最终评估1

    无论是Python、Java、C++还是其他语言,掌握变量定义、数据类型(如整型、浮点型、字符串、布尔型等)、控制流程(如条件语句if-else、循环for和while)、函数定义与调用,以及数组或列表的使用,这些都是编程入门的...

    Programing with MFC Programing with MFC

    2. **定义文档类**:如果应用程序处理数据,可以定义一个继承自CDocument的类来存储和操作数据。 3. **定义视图类**:视图类(继承自CView)负责数据的显示和用户交互。 4. **定义框架窗口类**:框架窗口类(继承自...

    hive-programing

    azure-hive描述:“如何使用Azure蜂巢,如何编写脚本以及如何使用python预处理数据。” urlFragment: #this-用于与蜂巢接口中的蜂巢连接 直线-u'jdbc:hive2:// headnodehost:10001 /; transportMode = ...

    leetcode手册JAVA-test-programing-:测试-编程-

    只要它可以帮助正在学习新算法的人,它是否从某个地方复制并不重要。 图形示例也将非常有帮助。 不要忘记包括测试。 不要删除以前的算法实现。 只需使用您自己的实现添加一个新文件。 美化和清理您的代码以便于阅读...

    The c programing language

    9. **文件操作**:学习如何打开、关闭文件以及进行读写操作。 书中还包含了大量示例代码,让读者能够通过实践加深理解。CHM格式的电子书《C Programming Language(K&R).chm》包含了完整的文本内容,便于读者查阅和...

    the c programing

    根据提供的文件信息,我们可以梳理出该书籍主要涵盖了C语言编程...综上所述,本书籍系统地介绍了C语言的基础知识与高级特性,不仅适合初学者学习C语言的基本语法,也适用于有一定经验的开发者深入了解C语言的高级用法。

    集体智慧编程原书代码-programing collective intelligence

    总的来说,《集体智慧编程》不仅涵盖了丰富的理论知识,还提供了实践操作的指导,是学习如何利用集体智慧进行机器学习和数据分析的宝贵资源。通过对压缩包中的代码进行研究和实践,读者可以深入掌握如何在实际问题中...

    c++ programing and c

    c++ programingc++ programing and cc++ programing and cc++ programing and cc++ programing and cc++ programing and cc++ programing and cc++ programing and cc++ programing and cc++ programing and cc++ ...

    The C Programing language

    根据提供的文件信息,实际内容与要求的C...C语言作为一门历史悠久且应用广泛的编程语言,其基础知识涵盖了从简单的数据类型到复杂的文件操作等多个方面。掌握这些基础概念对于学习更高级的语言和技术也是非常有帮助的。

    Python-programing:Python代码

    以上只是Python编程中的一些基础知识点,Python的生态庞大,还有更多高级特性和框架,如网络编程、并发处理、网络爬虫、机器学习、深度学习等,都需要进一步深入学习。Python-programing-main这个压缩包可能包含了...

    how to programing c source_code

    "how to programming c source_code"这个主题聚焦于如何学习和理解C语言的源代码,这对于任何想要深入计算机科学的人来说都是一个宝贵的资源。这本书中的代码实例可以帮助你更好地掌握C语言的核心概念和编程技巧。 ...

    C-programing.rar_C programing答案

    3. **指针**:C语言的精髓之一,指针能直接操作内存地址,这使得C语言能够实现高效的数据处理。理解指针的声明、解引用、指针运算以及动态内存分配(malloc, free)至关重要。 4. **数组与字符串**:数组是一组相同...

    Algorithm-competitive-programing.zip

    "Algorithm-competitive-programming.zip"这个压缩包文件,显然是为了帮助学习者深入理解和掌握算法以及如何在竞争编程中运用它们。让我们一起探讨其中蕴含的知识点。 1. **算法基础**:算法是一系列精确的步骤,...

    The C programing language

    The C programing language 发明C的科学家写的书

    programing-GIS:代码和笔记本

    通过深入研究这个"programing-GIS:代码和笔记本",学习者不仅可以掌握GIS编程的基本技能,还能了解如何将这些技能应用于实际问题,比如城市规划、环境保护、交通分析等领域。这将是一个宝贵的学习资源,帮助开发者将...

Global site tag (gtag.js) - Google Analytics