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, ...)]
相关推荐
一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...
### Hive外部表创建详解 #### 一、引言 在大数据处理领域,Hive作为一款广泛使用的数据仓库工具,能够高效地对存储在Hadoop文件系统中的数据进行查询与管理。...希望本文能帮助读者更好地理解和运用Hive外部表功能。
首先,理解Hive内部表和外部表的区别是关键。内部表的数据由Hive完全管理,删除内部表会同时删除其对应的数据。而外部表仅仅是一个指向实际数据的引用,删除外部表不会影响数据。在这个场景下,我们关注的是内部表,...
Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4
Hive 的存储结构主要包括内部表和外部表两种。内部表的数据由 Hive 自身管理,而外部表的数据由 HDFS 管理。内部表的元数据存储在关系型数据库中,而表数据存储在 HDFS 上。删除内部表会直接删除元数据和存储数据,...
内部表的删除会同时移除数据和元数据,而外部表只移除元数据,数据保持不变。 7. **加载数据**: Hive提供了`LOAD DATA`命令来加载数据到表中。`LOAD DATA LOCAL INPATH`可以从本地文件系统加载数据,`LOAD DATA ...
创建内部表CREATE TABLE ods.u_data (FIELDS TERMINATED BY '\t'当你建表成功并且把数据load 进去之后,你发现数
通过这个实验,学生能够掌握Hive的基本操作,包括创建表(内部表和分区表)、数据导入、数据查询以及动态分区的使用,这些都是大数据分析中的关键步骤。同时,了解如何在Windows环境下配置和使用Ubuntu虚拟机,以及...
Hive支持内部表和外部表。内部表由Hive完全管理,数据存储在HDFS上,删除内部表时,数据也会被一同删除。而外部表只是对HDFS上数据的引用,删除外部表不会影响原始数据,这对于数据共享和管理非常有用。 在“分区表...
内部表:Hive中的表和传统数据库中的表在概念上是类似的,Hive的每个表都有自己的存储目录,除了外部表外,所有的表数据都存放在配置在hive-site.xml文件的${hive.metastore.warehouse.dir}/table_name目录下。...
- 使用DDL创建内部表和外部表,内部表的数据存储在HDFS中,由Hive管理;外部表的数据存储在用户指定位置,不随表删除而删除。 - DML操作包括查看表、查看表结构,以及插入、更新和删除数据。 - 分区表的创建有助...
在Hive的命令行界面,你可以使用SQL语句来创建数据库和表,加载数据,执行查询等操作。 8. **Hive和Windows兼容性问题**: 在Windows上运行Hive可能会遇到一些与Unix/Linux不同的问题,例如路径分隔符、文件权限...
外部表的元数据由Hive管理,但数据本身的位置由用户指定,这使得数据可以独立于Hive存在。 5. 利用Hive的自动分区功能,将`dividends_unpartitioned`表中的数据按特定条件插入到`dividends`的各个分区中,这样可以...
Hive 表可以是内部表,也可以是外部表。下面将详细介绍 Hive 创建表语法的使用。 EXTERNAL 关键字 在 Hive 中,使用 EXTERNAL 关键字可以创建外部表。外部表是指存储在 HDFS 上的表,数据可以来自于多个来源。使用...
3. **Hive内部表和外部表的区别** - **内部表**:数据与元数据一起管理,删除时会同时删除数据和元数据。 - **外部表**:仅管理元数据,数据存储在用户指定的位置,删除时仅删除元数据。 4. **Hive建表语句** - ...
Hive的数据存储主要分为两种方式:内部表和外部表。内部表存储在Hive的元数据库中,而外部表存储在HDFS中。Hive还提供了多种数据存储格式,如TEXTFILE、SEQUENCEFILE、ORCFILE等。 Hive基本操作 Hive的基本操作...
基于Hive的数据分析实验报告 本实验旨在熟悉Hive的基本操作,通过实验,了解Hive在Hadoop体系结构中的角色担当,熟悉Hive中的...同时,我们也可以了解到Hive内部表和外部表的区别,并掌握了MapReduce统计任务的实现。
Hive的数据存储可以分为两种:内部表和外部表。内部表是Hive自己管理的表,外部表是Hive引用的外部数据源。 1.6其它HIVE操作 Hive还提供了一些其他的操作,包括查询语句、数据导出、数据导入等。Hive的查询语句...
- **外部表**(External Table):与内部表不同,外部表的数据不是存储在Hive的仓库目录中,而是指向HDFS中已经存在的文件或目录。这意味着即使删除了外部表,HDFS中的数据也不会被删除。这为数据备份和恢复提供了...
### Hive内部表与外部表的区别 #### 内部表特性 - **数据管理**:内部表的数据由Hive自身管理,这意味着数据的增删改查等操作完全由Hive控制。 - **存储位置**:默认情况下,内部表的数据存储于`hive.metastore....