当前位置:   article > 正文

Hive表操作_alter table add partition location

alter table add partition location

一:背景

和传统的数据库表的概念类似,hive表由表数据和描述表结构等的元数据组成。表数据一般存储在HDFS中,当然也可以存储在其他文件系统中,比如S3中;表的元数据存储在一个关系型数据库中,比如MYSQL中,而不是存储在HDFS中。

Hive中表分为两大类托管表(Managed table)也称之为受控表或内部表另外一种表是外部表(External table)。默认情况下,创建hive表时,hive会把数据存储到它的数据仓库目录下,这种方式创建的表我们称之为受控表。另外一种方式是创建一个外部表(External table)。此时,我们只需要告诉hive数据的外部引用地址,hive本身不会在自己的数据仓库目录下存储这些数据。


二:Hive表处理

1.创建表的语法:

  1. Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name
  2. [(col_name data_type [COMMENT col_comment], ...)]
  3. [COMMENT table_comment]
  4. [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  5. [CLUSTERED BY (col_name, col_name, ...) [SORTED ,BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  6. [ROW FORMAT row_format]
  7. [STORED AS file_format]
  8. [LOCATION hdfs_path]
create table表示创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以使用if not exists选项来忽略这个异常。

external关键字表示用户可以创建一个外部表,在建表的同时通过location来指定实际数据的路径,hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除真实数据。

如果文件数据是纯文本,可以使用stored as textfile。如果数据需要压缩,使用stored as sequencefile。

有分区的表可以在创建的时候使用Partitioner by语句。一个表可以拥有一个或者多个分区,每个分区会单独存在一

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/692481
推荐阅读
相关标签
  

闽ICP备14008679号