`
小网客
  • 浏览: 1244276 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hive之内部表和外部表

 
阅读更多

hive的建表语句如下:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]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]
  [SKEWED BY (col_name, col_name, ...) ON ([(col_value, col_value, ...), ...|col_value, col_value, ...]) [STORED AS DIRECTORIES] (Note: Only available starting with Hive 0.10.0)]
  [
   [ROW FORMAT row_format] [STORED AS file_format]
   | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  (Note: Only available starting with Hive 0.6.0)
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]  (Note: Only available starting with Hive 0.6.0)
  [AS select_statement]  (Note: Only available starting with Hive 0.5.0, and not supported when creating external tables.)

如果对存在表cp那么其语句为:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  LIKE existing_table_or_view_name
  [LOCATION hdfs_path]

此处的外部表和内部表的标示为是否在建表语句中是否有:EXTERNAL

区别如下:

1.内部表的数据存储在hive的hive.metastroe.warehouse.dir下,如果在创建database的时候指定了LOCATION 那么其内部表的数据会在此目录下;外部表仅仅记录数据位置,不对其位置走任何修改;

2.删除表时,如果是外部表那么只删元数据,不损坏其实际hdfs数据;而内部表会删除元数据和实际数据

3.数据源发生变化时外部表的数据也会变化;如果外部hdfs数据被删那么此表数据也就没了;

 

举例:

create EXTERNAL TABLE  IF NOT EXISTS hive.dual(
id STRING COMMENT 'id'
)
STORED AS RCFile 
LOCATION 'hdfs:///hive/dual/';

基于外部数据:

create EXTERNAL TABLE  IF NOT EXISTS hive.book(
ISBN STRING COMMENT 'ISBN',
title STRING COMMENT 'title',
author STRING COMMENT 'Author',
year STRING COMMENT 'Year-Of-Publication',
publisher STRING COMMENT 'Publisher',
img_s STRING COMMENT 'Image-URL-S',
img_m STRING COMMENT 'Image-URL-M',
img_l STRING COMMENT 'Image-URL-L'
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\073' 
STORED AS TEXTFILE
LOCATION 'hdfs:///hive/book/';

 

 

其他:

file_format:

  : SEQUENCEFILE

  | TEXTFILE

  | RCFILE     (Note: Only available starting with Hive 0.6.0)

  | ORC        (Note: Only available starting with Hive 0.11.0)

  | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname

 

row_format:
  : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
        [NULL DEFINED AS char] (Note: Only available starting with Hive 0.13)
  | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
0
0
分享到:
评论

相关推荐

    Hive内部表和外部表

    一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...

    hive外部表创建

    ### Hive外部表创建详解 #### 一、引言 在大数据处理领域,Hive作为一款广泛使用的数据仓库工具,能够高效地对存储在Hadoop文件系统中的数据进行查询与管理。...希望本文能帮助读者更好地理解和运用Hive外部表功能。

    Hive内部表合并小文件Java程序

    首先,理解Hive内部表和外部表的区别是关键。内部表的数据由Hive完全管理,删除内部表会同时删除其对应的数据。而外部表仅仅是一个指向实际数据的引用,删除外部表不会影响数据。在这个场景下,我们关注的是内部表,...

    Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4

    Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4

    hive入门级详解

    Hive 的存储结构主要包括内部表和外部表两种。内部表的数据由 Hive 自身管理,而外部表的数据由 HDFS 管理。内部表的元数据存储在关系型数据库中,而表数据存储在 HDFS 上。删除内部表会直接删除元数据和存储数据,...

    13-Hive基本操作1

    内部表的删除会同时移除数据和元数据,而外部表只移除元数据,数据保持不变。 7. **加载数据**: Hive提供了`LOAD DATA`命令来加载数据到表中。`LOAD DATA LOCAL INPATH`可以从本地文件系统加载数据,`LOAD DATA ...

    kingcall#all-kinds-book#4 Hive—基础—内部表和外部表1

    创建内部表CREATE TABLE ods.u_data (FIELDS TERMINATED BY '\t'当你建表成功并且把数据load 进去之后,你发现数

    大数据实验六实验报告:熟悉Hive的基本操作

    通过这个实验,学生能够掌握Hive的基本操作,包括创建表(内部表和分区表)、数据导入、数据查询以及动态分区的使用,这些都是大数据分析中的关键步骤。同时,了解如何在Windows环境下配置和使用Ubuntu虚拟机,以及...

    hive搭建及使用入门简介(内含PPT、各种表创建sql及hive搭建使用笔记)

    Hive支持内部表和外部表。内部表由Hive完全管理,数据存储在HDFS上,删除内部表时,数据也会被一同删除。而外部表只是对HDFS上数据的引用,删除外部表不会影响原始数据,这对于数据共享和管理非常有用。 在“分区表...

    hive语法和常用函数[归纳].pdf

    内部表:Hive中的表和传统数据库中的表在概念上是类似的,Hive的每个表都有自己的存储目录,除了外部表外,所有的表数据都存放在配置在hive-site.xml文件的${hive.metastore.warehouse.dir}/table_name目录下。...

    hive实验报告.docx

    - 使用DDL创建内部表和外部表,内部表的数据存储在HDFS中,由Hive管理;外部表的数据存储在用户指定位置,不随表删除而删除。 - DML操作包括查看表、查看表结构,以及插入、更新和删除数据。 - 分区表的创建有助...

    Hive-2.3.3在window安装需要的cmd相关

    在Hive的命令行界面,你可以使用SQL语句来创建数据库和表,加载数据,执行查询等操作。 8. **Hive和Windows兼容性问题**: 在Windows上运行Hive可能会遇到一些与Unix/Linux不同的问题,例如路径分隔符、文件权限...

    大数据技术原理及应用课实验6 :熟悉Hive的基本操作

    外部表的元数据由Hive管理,但数据本身的位置由用户指定,这使得数据可以独立于Hive存在。 5. 利用Hive的自动分区功能,将`dividends_unpartitioned`表中的数据按特定条件插入到`dividends`的各个分区中,这样可以...

    hive 创建表语法.docx

    Hive 表可以是内部表,也可以是外部表。下面将详细介绍 Hive 创建表语法的使用。 EXTERNAL 关键字 在 Hive 中,使用 EXTERNAL 关键字可以创建外部表。外部表是指存储在 HDFS 上的表,数据可以来自于多个来源。使用...

    hive学习必备经典(百度)

    Hive的数据存储主要分为两种方式:内部表和外部表。内部表存储在Hive的元数据库中,而外部表存储在HDFS中。Hive还提供了多种数据存储格式,如TEXTFILE、SEQUENCEFILE、ORCFILE等。 Hive基本操作 Hive的基本操作...

    大数据面试 Hive 八股文

    3. **Hive内部表和外部表的区别** - **内部表**:数据与元数据一起管理,删除时会同时删除数据和元数据。 - **外部表**:仅管理元数据,数据存储在用户指定的位置,删除时仅删除元数据。 4. **Hive建表语句** - ...

    实验4. 基于Hive的数据分析.doc

    基于Hive的数据分析实验报告 本实验旨在熟悉Hive的基本操作,通过实验,了解Hive在Hadoop体系结构中的角色担当,熟悉Hive中的...同时,我们也可以了解到Hive内部表和外部表的区别,并掌握了MapReduce统计任务的实现。

    Hive学习笔记整理.pdf

    Hive的数据存储可以分为两种:内部表和外部表。内部表是Hive自己管理的表,外部表是Hive引用的外部数据源。 1.6其它HIVE操作 Hive还提供了一些其他的操作,包括查询语句、数据导出、数据导入等。Hive的查询语句...

    hive原理1介绍

    - **外部表**(External Table):与内部表不同,外部表的数据不是存储在Hive的仓库目录中,而是指向HDFS中已经存在的文件或目录。这意味着即使删除了外部表,HDFS中的数据也不会被删除。这为数据备份和恢复提供了...

    hive面试题(Hadoop)

    ### Hive内部表与外部表的区别 #### 内部表特性 - **数据管理**:内部表的数据由Hive自身管理,这意味着数据的增删改查等操作完全由Hive控制。 - **存储位置**:默认情况下,内部表的数据存储于`hive.metastore....

Global site tag (gtag.js) - Google Analytics