首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DROP PARTITION是否删除配置单元中外部表中的数据?

DROP PARTITION是否删除配置单元中外部表中的数据?
EN

Stack Overflow用户
提问于 2016-07-12 09:11:48
回答 2查看 19.1K关注 0票数 6

HIVE中的外部表按年、月、日进行分区。

那么,下面的查询是否从外部表中删除此查询中引用的特定分区的数据?:-

代码语言:javascript
复制
ALTER TABLE MyTable DROP IF EXISTS PARTITION(year=2016,month=7,day=11);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-23 02:08:57

分区方案不是数据。分区方案是存储在元数据中的表DDL的一部分(简单地说:分区键值+存储数据文件的位置)。

数据本身存储在分区位置(文件夹)的文件中。如果您删除外部表的分区,则该位置保持不变,但作为分区卸载(有关此分区的元数据将被删除)。您可以有几个版本的分区位置被卸载(例如以前的版本)。

您可以删除分区并挂载另一个位置作为分区(alter table add partition)或更改现有分区位置。drop external table请勿删除包含文件的表/分区文件夹。稍后,您可以在此位置上创建表。

为了更好地理解外部表/分区的概念,请看下面的答案:It is possible to create many tables (both managed and external at the same time) on top of the same location in HDFS.

票数 5
EN

Stack Overflow用户

发布于 2016-07-12 14:30:14

没有外部表,只有将被删除的引用,实际文件仍将保留在该位置。

外部表数据文件不归表所有,也不会移动到配置单元仓库目录

仅分区元将从配置单元元存储表中删除。

内外表的差异:

用于外部表的 -

外部表将文件存储在HDFS服务器上,但表并未完全链接到源文件。

如果删除外部表,文件仍保留在HDFS服务器上。

例如,如果您使用HIVE-QL在HIVE中创建了一个名为“table_test”的外部表,并将该表链接到文件“file”,那么从HIVE中删除“table_test”不会从HDFS中删除“file”。

有权访问HDFS文件结构的任何人都可以访问外部表文件,因此需要在HDFS文件/文件夹级别管理安全性。

元数据在主节点上维护,从配置单元中删除外部表,仅删除元数据,而不删除数据/文件。

内部表的-

内部表存储在基于hive.metastore.warehouse.dir中设置的目录中,默认情况下,内部表存储在以下目录“/user/hive/warehouse”中。您可以通过更新配置文件中的位置来更改它。删除表将分别删除主节点和HDFS中的元数据和数据。内部表文件安全性仅通过配置单元进行控制。安全性需要在配置单元中进行管理,可能是在模式级别(取决于组织和组织)。

配置单元可能有内部表或外部表这是一个影响数据加载、控制和管理方式的选择。

在以下情况下使用外部表:

这些数据也可以在Hive之外使用。例如,数据文件由不锁定文件的现有程序读取和处理。即使在DROP TABLE之后,数据也需要保留在底层位置。如果您将多个模式(表或视图)指向单个数据集,或者您正在迭代各种可能的模式,则这一点可能适用。配置单元不应拥有数据和控件设置、目录等,您可能有另一个程序或进程来执行这些操作。您没有基于现有表(AS SELECT)创建表。

在以下情况下使用内部表:

数据是临时的。您希望Hive完全管理表和数据的生命周期。

注意:如果您要查看数据库(已配置的details),请使用元表

代码语言:javascript
复制
|BUCKETING_COLS      |
| COLUMNS            |
| DBS                |
| NUCLEUS_TABLES     |
| PARTITIONS         |
| PARTITION_KEYS     |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS   |
| SDS                |
| SD_PARAMS          |
| SEQUENCE_TABLE     |
| SERDES             |
| SERDE_PARAMS       |
| SORT_COLS          |
| TABLE_PARAMS       |
| TBLS               | 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38318513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档